Richard Donchian’s channels are among the oldest systematic trading tools. The Turtle Traders used them in the 1980s. The rules were simple: buy when price breaks above the 20-bar high, sell when it breaks below the 20-bar low. The math is equally simple: Three lines. No smoothing, no ratios, no weighting. Just the extremes and… Continue reading
Why %K Broke the O(1) Pattern (and How I Fixed It)
Every indicator in quantedge-ta before the Stochastic Oscillator shares a design pattern: each new bar’s contribution decays over time. SMA: uniform average, old bars age out as the window slides. EMA: exponential weight, old contributions shrink but never hit zero. RSI: Wilder’s smoothing, same story. MACD: two EMAs composing. ATR: Wilder’s smoothing on True Range. None of… Continue reading
48 Builds and a Crash from the Grave
Some bugs are hard because they’re complex. Some are hard because they’re intermittent. The worst ones are both. This one took three months. Forty-eight builds. An iOS crash that appeared under conditions that resisted every attempt to reproduce it reliably. If you read the first post, you know the setup: a third-party Flutter-backed ticketing SDK embedded… Continue reading
The Glorified Iframe: Embedding a Flutter SDK in an Expo App
Implementing Expo apps can sometimes feel boring. Yet another view, yet another component, yet another Zustand store. Not often do you get a chance to venture out from the safe and comfortable Expo stack. But sometimes, you get the opportunity to do something you never thought would happen: embed a full native view into an… Continue reading
quantedge-ta: Real-Time Technical Analysis for Rust
Most technical analysis libraries work on closed bars. Feed in 200 closing prices, get 200 SMA values back. Clean, simple, works for backtesting. But in a live environment, you get OHLCV updates every second before the bar closes. A naive implementation counts each update as a new bar and produces garbage. The safe alternative is… Continue reading