Backtesting¶
Lumibot has multiple modes for backtesting:
Yahoo Backtesting: Daily stock backtesting with data from Yahoo.
Pandas Backtesting: Intra-day and inter-day testing of stocks and futures using CSV data supplied by you.
Polygon Backtesting: Intra-day and inter-day testing of stocks and futures using Polygon data from polygon.io.
DataBento Backtesting: Backtesting with high-quality data from DataBento for stocks, futures, and options.
ThetaData Backtesting: Backtesting with ThetaData (via the LumiBot Data Downloader).
Interactive Brokers (REST) Backtesting: Backtesting with IBKR Client Portal Gateway (via the LumiBot Data Downloader).
It is recommended to use Yahoo Backtesting for daily stock backtesting, ThetaData Backtesting for stocks/options/index data, and Interactive Brokers (REST) Backtesting for futures and crypto data. Pandas Backtesting is an advanced feature that allows you to test any type of data you have in CSV format but requires more work to setup and is not recommended for most users.
Managed Backtesting on BotSpot¶
Backtesting is better on BotSpot when you want to move faster than a local setup. BotSpot already has the workflow around Lumibot: hosted data setup, parallel backtest workers, generated artifacts, charts, logs, and the path from a passing backtest into paper or live trading.
Backtesting data included. Use supported hosted stock, futures, options, macro, filings, and other data sources without sourcing every vendor, API key, downloader, and local file yourself. Some data is included; premium datasets can be much cheaper than buying direct subscriptions.
Parallel experiments. Launch multiple strategy variants on BotSpot servers and compare results instead of waiting for one local run at a time.
Better artifacts. Inspect charts, trades, logs, files, decisions, and audit history from one place instead of stitching together local output folders.
Lumibot-tuned iteration. BotSpot’s AI workflows and MCP tools understand Lumibot strategy structure, so Codex, Claude Code, Cursor, and other agents can run backtests and inspect results instead of only editing Python.
Ready for deployment. A strategy that survives backtesting can move into paper or live trading with supported broker connections, monitoring, alerts, and kill-switch controls already available.
Agentic Backtesting¶
Lumibot also supports agentic backtesting. A strategy can create one or more AI agents, run them from normal lifecycle methods, analyze point-in-time data with DuckDB, and replay identical agent runs from cache on the next backtest instead of paying for another model call.
This matters if you want:
an AI trading agent that makes decisions inside
on_trading_iteration()an LLM trading bot that can also be tested historically
external MCP tools attached to a strategy
backtest/live parity for agent-driven strategies
See AI Trading Agents and Agentic Backtesting for the full agent runtime guide and usage examples.
Files Generated from Backtesting¶
When you run a backtest, several important files are generated, each prefixed by the strategy name and the date. These files provide detailed insights into the performance and behavior of the strategy.
Contents:
- How To Backtest
- Files Generated from Backtesting
- Backtesting Function
- Backtesting Performance (Speed + Parity)
- Yahoo
- Pandas (CSV or other data)
- Polygon.io Backtesting
- DataBento Backtesting
- ThetaData Backtesting
- Interactive Brokers (REST) Backtesting
- Status
- Quick Start
- Supported Data
- Daily Stocks/Indexes: Warmup + Corporate Actions
- Futures Exchange Routing (auto + override)
- Expired Futures Contracts (conids)
- Caching
- Multi-provider routing (Theta + IBKR)
- Crypto futures and perpetuals
- Market Data Subscriptions (IBKR)
- Authentication / Session Behavior
- Configuration Notes
- Tearsheet HTML
- Trades Files
- Indicators Files
- Logs CSV