8.8 Itô Calculus, Intuitively
Stochastic calculus is one twist on the integral you know. Riemann weights rectangles by equal width, Riemann-Stieltjes by a function g, Itô by Brownian motion. Random weights make the integral a process Y(t).
Aligrithm is an independent research publication on systematic trading, quantitative research, market microstructure, and adaptive systems. Long-form essays, code notebooks, and architecture breakdowns across eight pillars, built for traders who care more about how markets behave than about hype.
More about the publication →Read in order. Each pillar walks you out of one trap with one new ability. The newest article is the worst place to begin.
Stochastic calculus is one twist on the integral you know. Riemann weights rectangles by equal width, Riemann-Stieltjes by a function g, Itô by Brownian motion. Random weights make the integral a process Y(t).
Profiling a slow algo points at JSON decode, not your alpha. Put the simple hot path (decode, filter, forward) in Rust and keep the complex stateful brain (OMS, reporting, unwinding) in Python. Split at the JSON, forward binary, and match your backtest exactly.
Fixed-lag cross-correlation assumes the delay between two markets never moves. It does. Dynamic time warping aligns two series with a stretchable path, scoring shape similarity and recovering a lead-lag that varies through time.
Real prices are random numbers with memory, so an EMA of noise plus a cumulative sum makes a passable synthetic chart. Generate thousands to put error bars on a backtest, but never to prove edge.
Scoring strategies four ways then averaging the weights isn't rigorous: the metrics collapse to two correlated families and every input is a noisy in-sample estimate. Beat equal-weight out of sample.
You can't simulate a limit fill that never happened. Maker/taker on historical trades works only on thin venues; pure making is just prod tuning. And Avellaneda-Stoikov is risk times root holding time.
A quote stamped newer than light can travel isn't fast, your clocks disagree. Fix chrony first, then use an empirical latency floor (half the fastest ping) to catch and correct cross-venue drift.
A NATGAS daytrader legend claims a guaranteed 20-25h sell-wave cycle, 44 trades a month. Run it through the gauntlet: cause test, multiple-comparisons, permutation null, and cost arithmetic. It is folklore until proven otherwise.
Trend and reversion are one process split by the sign of beta. Regress a series on its own lag and OLS understates beta's magnitude in both cases, because the lagged regressor shares error terms with the target. You end up believing in less trend and less reversion than the market carries.
Replace the volatility term with volume in most alphas and the backtest barely moves, because they ride the same information clock. Feeding a model both is double-counting one factor. Keep one scale, and add their ratio, Amihud illiquidity, as the residual that actually carries new information.
Pick the model by interaction strength: ridge when near-additive, XGBoost when interactions dominate. XGBoost also handles NaNs natively, avoiding imputation lookahead; else use an IC-weighted ensemble.
A decision tree mines conditional alphas by carving feature space into boxes. It picks each split to maximize a similarity gain and predicts the mean return per leaf. Stop early or it memorizes noise.