Backtesting Data Sources

You do not need a broker account to backtest. LumiBot backtests run on historical data from one of these sources. Pick the one that covers your assets and bar size.

What BotSpot MCP adds

Use Claude, ChatGPT, Codex, Cursor, VS Code or another MCP-compatible assistant? Connect the free BotSpot MCP for:

  • Skills: build LumiBot strategies.

  • Free data: news, economics and SEC filings.

  • Backtests: run tests and read charts.

  • Cloud hosting: low-cost scheduled bots.

  • Community: share bots and discuss trades.

  • Marketplace: discover and publish strategies.

  • Broker linking: connect accounts through BotSpot.

Connect your AI assistant

Backtesting data sources

Data source

Good for

Setup

Yahoo

Daily stocks and ETFs

No account or key

ThetaData

Intraday stocks and options

ThetaData subscription

Polygon.io

Stocks, options, forex and crypto

Polygon.io API key

Databento

Futures

Databento API key

Interactive Brokers

Interactive Brokers history

Client Portal access

Alpaca

Stocks and options with your Alpaca account

Alpaca API key

Pandas

Your own CSV or DataFrame data

Your files

Polymarket

Prediction contract prices

Polymarket market ids

CCXT

Spot crypto candles

Exchange id

Choose the source with BACKTESTING_DATA_SOURCE or pass a data source class in Python. The full guide is Backtesting Trading Strategies in Python with LumiBot.

Frequently asked questions

Do I need a broker to backtest?

No. Backtests use historical data only. Yahoo daily data needs no account and no key.

Which data source should I start with?

Yahoo, for daily stock and ETF strategies. For intraday stocks or options, use ThetaData, Polygon or Alpaca. For futures, use Databento or Interactive Brokers.

How do I pick the data source without changing my code?

Set BACKTESTING_DATA_SOURCE in your .env file. The environment setting takes precedence over the data source class in code.

Do backtest results tell me how a strategy will do live?

No. A backtest is a simulation on past data. Fills, fees and market conditions can differ in live trading.

Can I use my own CSV data?

Yes. Load it into a pandas DataFrame and use the Pandas backtester. See Pandas (CSV or other data).