Building the Backtester Part 1 — A Historical Data Pipeline with yfinance and ccxt
📘 Educational — not financial advice. This post walks through the data layer of an open-source backtesting harness for personal use. It is not investment advice, a trade signal, or a claim that any specific strategy will be profitable. Backtested results — including any produced later in this series — describe past behaviour on historical data and do not guarantee future performance. See full Disclaimer . "Every honest backtest disagreement I have ever had with someone — mine included — turned out, on inspection, to be a disagreement about the data. Different symbols, different sessions, different adjustments, different timezones. The strategy code was almost never the problem." In post 2 I laid out the four-layer architecture of the Python backtester: data, engine, metrics, viz. This post fills the first layer. By the end of it there is a small, three-file data/ package that pulls OHLCV from yfinance and ccxt , normalises it to UTC, caches it to Parquet, and r...