AllTick
Using a Forex Market Data API to Easily Obtain High-Frequency Data for Strategy Backtesting
Blog

Using a Forex Market Data API to Easily Obtain High-Frequency Data for Strategy Backtesting

In quantitative trading or forex tool development, obtaining only real-time exchange rates is far from sufficient. Developers often need high-frequency data for strategy backtesting, risk analysis, or visual monitoring…

AllTick1 min read



In quantitative trading or forex tool development, obtaining only real-time exchange rates is far from sufficient. Developers often need high-frequency data for strategy backtesting, risk analysis, or visual monitoring. This article uses Python as an example, demonstrating how to connect to AllTick API to obtain high-frequency forex market data and implement candlestick visualization and simple strategy backtesting.

Environment Setup and Dependencies

pip install requests pandas matplotlib mplfinance

  • requests: Call the forex API
  • pandas: Processing High-Frequency Data
  • matplotlib and mplfinance: Plotting Candlestick Charts and Market Data Curves

Ensure that you have registered the AllTick API and obtained the API Key.

Obtaining High-Frequency Forex Data

The example below shows how to obtain high-frequency Tick data for EUR/USD:

import requests
import pandas as pd

API_URL = “https://api.alltick.com/forex/tick”
API_KEY = “your_api_key_here”

params = {
    “symbol”: “EURUSD”,
    “interval”: “1s”,  # one tick per second
    “limit”: 500,      # Get the most recent 500 rows
    “apikey”: API_KEY
}

resp = requests.get(API_URL, params=params)
data = resp.json()

df = pd.DataFrame(data)
df[‘timestamp’] = pd.to_datetime(df[‘timestamp’])
print(df.head())

Using the interval parameter, you can obtain data at different frequencies, making it convenient for backtesting high-frequency strategies or real-time monitoring.

Candlestick Chart Visualization Example

Convert high-frequency tick data into candlesticks:

import mplfinance as mpf

# Aggregate Tick data into OHLC by minute
df_ohlc = df.resample(‘1T’, on=’timestamp’).agg({
    ‘price’: [‘first’, ‘max’, ‘min’, ‘last’],
    ‘volume’: ‘sum’
})
df_ohlc.columns = [‘Open’, ‘High’, ‘Low’, ‘Close’, ‘Volume’]

mpf.plot(df_ohlc, type=’candle’, volume=True, style=’yahoo’, title=’EUR/USD Minute Candlestick Chart’)

  • Use resample to flexibly generate candlesticks for different time periods
  • You can directly observe price fluctuations, providing an intuitive reference for strategy analysis

Simple Strategy Backtesting

Using a moving average crossover as an example, implement simple trading signal backtesting:

df_ohlc[‘MA5’] = df_ohlc[‘Close’].rolling(5).mean()
df_ohlc[‘MA20’] = df_ohlc[‘Close’].rolling(20).mean()

# Generate trading signals
df_ohlc[‘signal’] = 0
df_ohlc.loc[df_ohlc[‘MA5’] > df_ohlc[‘MA20’], ‘signal’] = 1   # Buy signal
df_ohlc.loc[df_ohlc[‘MA5’] < df_ohlc[‘MA20’], ‘signal’] = -1  # Sell signal

print(df_ohlc[[‘Close’, ‘MA5’, ‘MA20’, ‘signal’]].tail())

  • Moving average crossover signals can be used for automated trading strategies
  • You can combine AllTick historical data for backtesting to evaluate strategy performance

Multi-currency pair monitoring and expansion

Developers can monitor multiple currency pairs simultaneously:

symbols = [‘EURUSD’, ‘GBPUSD’, ‘USDJPY’]
dfs = []

for s in symbols:
    params[‘symbol’] = s
    resp = requests.get(API_URL, params=params).json()
    dfs.append(pd.DataFrame(resp))

all_data = pd.concat(dfs)
all_data[‘timestamp’] = pd.to_datetime(all_data[‘timestamp’])
print(all_data.head())

  • Merging data makes it easier to perform multi-instrument analysis or backtest cross-currency-pair strategies
  • Using the high-frequency data from the AllTick API, you can quickly build a trading monitoring dashboard

Developer Tips and Best Practices

  • API rate limiting: For high-frequency requests, it is recommended to add delays or use batch requests
  • Exception handling: Capture network errors and missing data to ensure program stability
  • Caching strategy: For historical data, it can be stored in a local database to improve analysis efficiency
  • Visualization optimization: Combined with Plotly or Dash, interactive real-time monitoring can be achieved

Through this process, developers can quickly practice the entire workflow, from high-frequency tick data to candlestick visualization and then strategy backtesting, using AllTick API to efficiently obtain reliable data that supports quantitative trading and forex tool development.

Start streaming market data today

Generate a free API key in seconds and connect to every market from one endpoint.