TickAtlas

Backtesting API — Historical Indicators & OHLC

Historical OHLCV candles and pre-calculated indicator values across 7 timeframes. Up to 500 bars per request. Clean data for strategy backtesting and analysis.

500 Bars/Request 7 Timeframes 42 Indicators Historical Values JSON to pandas
  • Historical OHLCV

    Up to 500 candlestick bars per request with open, high, low, close, and volume data across all timeframes.

  • Historical Indicators

    Get past RSI, MACD, and all 42 indicator values. No need to recalculate — the historical values are pre-computed.

  • Clean JSON Format

    Structured JSON that maps directly to pandas DataFrames, numpy arrays, or any data processing pipeline.

  • Multi-Timeframe

    Test strategies across M1 to D1. Compare how your rules perform on different timeframes with the same data source.

  • Multi-Symbol

    Backtest across forex, crypto, and commodities. Same API, same format, consistent data quality.

  • Spreadsheet Export

    Feed data into Google Sheets or Excel for visual analysis. See our integration guides.

Backtesting Example

python
import requests
import pandas as pd

headers = {"X-API-Key": "YOUR_API_KEY"}
BASE = "https://tickatlas.com/v1"

# Get 200 daily candles for EURUSD
ohlcv = requests.get(f"{BASE}/ohlcv", headers=headers,
    params={"symbol": "EURUSD", "timeframe": "D1", "bars": 200}).json()

df = pd.DataFrame(ohlcv["data"]["candles"])
df["datetime"] = pd.to_datetime(df["datetime"])

# Get historical RSI values
rsi = requests.get(f"{BASE}/indicator", headers=headers,
    params={"symbol": "EURUSD", "name": "rsi", "timeframe": "D1", "bars": 200}).json()

# Simple backtest: buy when RSI < 30, sell when RSI > 70
signals = []
for i, bar in enumerate(rsi["data"]["values"]):
    if bar["value"] < 30:
        signals.append(("BUY", bar["datetime"], df.iloc[i]["close"]))
    elif bar["value"] > 70:
        signals.append(("SELL", bar["datetime"], df.iloc[i]["close"]))

print(f"Signals generated: {len(signals)}")
for signal in signals[-5:]:
    print(f"  {signal[0]} at {signal[2]:.5f} on {signal[1]}")

Backtesting Endpoints

Endpoint Historical Data Max Bars
/v1/ohlcv OHLCV candles 500
/v1/indicator Single indicator history 500
/v1/indicators All indicators history 500
/v1/ticks Historical ticks Varies by plan

Frequently Asked Questions

How much historical data is available for backtesting?

Up to 500 bars per request. Starter plans offer 30 days of history, Pro offers 45 days, and Enterprise offers full data retention. OHLCV and indicator values are both available historically.

Can I get historical indicator values, not just OHLCV?

Yes. The /v1/indicator and /v1/indicators endpoints support a bars parameter that returns historical indicator values. Get RSI, MACD, and Bollinger Bands for past periods.

What timeframes are available for historical data?

All 7 timeframes: M1, M5, M15, M30, H1, H4, and D1. Choose the timeframe that matches your strategy.

Can I export the data to pandas or Excel?

Yes. The JSON responses map directly to pandas DataFrames. See our Google Sheets and Excel integration guides for spreadsheet workflows.

Is this a replacement for dedicated backtesting platforms?

It is a data source, not a backtesting engine. Use TickAtlas to get clean historical OHLCV and indicator data, then run your backtesting logic in Python, QuantConnect, or any framework you prefer.

Backtest with Clean Data

14-day free trial. Historical OHLCV and indicators for your strategy testing.