Blog
-
What a Reddit Sentiment Feature Actually Measures
Scraping a subreddit is easy; the feature you build from it is a model you never validated, sampled from a population that keeps changing.
-
Backtesting on a News Archive You Queried Today
A news archive answers the question you ask now, not the one your strategy asked then. The timestamp, survivorship, and duplication traps.
-
One Equity Curve Is One Sample
A backtest gives you a single path, not a distribution. How to bootstrap trades and blocks to see the range of outcomes the same strategy could produce.
-
Running More Than One Strategy at Once
Two strategies that each work can be worse together. How correlation, overlapping exposure, and capital allocation decide whether combining helps.
-
What to Compare a Strategy Against
A performance figure alone means nothing. How to choose a benchmark, build null models, and match them to a strategy so the comparison is fair.
-
Testing a Backtester With Data You Made Up
Your engine is untested code sitting inside every result. How synthetic series with hand-computable answers catch fill, cost, and alignment bugs.
-
Backtesting a Strategy That Can't Fill at Once
When one decision becomes many child orders, a single-fill backtest overstates it. How to model a slicing schedule and find a strategy's capacity.
-
Is Algorithmic Trading Profitable?
The honest answer is that it is profitable for some participants and not most retail ones. What the question leaves out, and what the real costs are.
-
Regime Change and Why Strategies Decay
Strategies stop working for four distinguishable reasons. How to tell decay from a normal drawdown, and why the distinction has to be defined in advance.
-
Multiple Testing: Why Your Best Result Is Probably Noise
The maximum of many noisy estimates is biased upward. Why the count of strategies you tested changes what the winner means, and how to account for it.
-
Modelling Transaction Costs in a Backtest
Costs are the difference between a backtest and a fantasy. How to model fees, spread, slippage, and holding costs, and why turnover decides everything.
-
A Reproducible Workflow for Strategy Research
Immutable raw data, config-driven runs, seeded randomness, and a research log that counts your attempts. The setup that makes a result mean something.
-
What Sits Between a Backtest and a Live Bot
The components a backtest never needs: a real-time feed, persistent state, position reconciliation, idempotent ordering, monitoring, and a kill switch.
-
What Paper Trading Catches, and What It Misses
Paper trading validates plumbing, not edge. The failure classes it reliably exposes, the ones it structurally cannot, and how long to run it.
-
The Python Tooling Stack for Crypto Quant Research
The Python libraries quant researchers use for crypto: data access, pandas wrangling, backtesting engines, and a reproducible research workflow.
-
How to Evaluate a Backtesting Library
Judge a backtesting library by its fill model, cost model, and auditability rather than its feature list. The questions to ask before you trust one.
-
The Exchange Abstraction Layer, and What It Hides
A unified exchange client normalizes symbols, candles, and errors across venues. What that abstraction genuinely gives you, and what it cannot paper over.
-
Position Sizing and Risk Management Basics
Survival comes before edge. How position sizing, drawdown math, and volatility targeting decide whether an account lives long enough to matter.
-
Where Historical Crypto Data Comes From
The four categories of crypto price history, what each is good for, and the pagination, rate-limit, and coverage problems you inherit from each one.
-
Data Quality Checks for Crypto Price History
A validation suite for OHLCV history: index integrity, invariant violations, gaps, duplicates, stale bars, and outliers you should not delete blindly.
-
Momentum vs. Mean-Reversion, Explained
Two opposite bets about what price does next. What momentum and mean-reversion assume, the market regimes each needs, and how they fail.
-
Resampling OHLCV Candles Without Corrupting Them
Aggregating candles to a longer interval has exact rules per column, and label conventions that silently shift your data a whole bar into the future.
-
Event-Driven vs. Vectorized Backtests
Vectorized backtests are fast and lie easily; event-driven ones are slow and honest. What each can and can't represent, and how to use both together.
-
How Maximum Drawdown Is Calculated
Maximum drawdown is the deepest peak-to-trough fall in an equity curve. The four-line calculation, the variants worth reporting, and what the number hides.
-
What Backtesting Is, and Why Naive Backtests Lie
A backtest is a hypothesis test against the past. The biases — lookahead, survivorship, overfitting — that make naive backtests overstate results.
-
Sortino vs. Sharpe: Two Ways to Divide by Risk
Sortino replaces Sharpe's standard deviation with downside deviation. What changes, what doesn't, and when the distinction is worth the extra complexity.
-
What the Sharpe Ratio Actually Measures
The Sharpe ratio is excess return divided by its own standard deviation. How to compute it, how annualization works, and the assumptions it quietly makes.
-
How Overfitting Hides in a Trading Strategy
Overfitting rarely looks like overfitting. The forms it takes in strategy research, the tells that give it away, and the habits that limit it.
-
How Walk-Forward Validation Works
Walk-forward validation tunes on a window and tests on the window after it, rolling forward. How to structure it, and what it does and doesn't prove.
-
Survivorship Bias in Crypto Datasets
Crypto datasets quietly delete their failures. Why a point-in-time universe matters more here than in equities, and how to build one from what you have.
-
Auditing Your Code for Lookahead Bias
Lookahead bias is a code bug, not a concept. A practical audit for the places future information leaks into a backtest, and how to catch each one.