解决方案 · 量化交易
量化交易行情方案:从回测到实盘,一个 API 打通
用历史K线与Tick数据回测,再通过 WebSocket 在相同品种上实盘运行。iTick 以统一格式覆盖股票、外汇、加密货币、指数与期货,研究代码与执行网关无需对接第二家数据商。
- 历史 OHLCV 与 Tick,直接用于 Backtrader、VectorBT、vn.py
- WebSocket 推送报价、逐笔与 Level 2 深度,驱动实盘信号
- 跨市场价差与套利实时监控
- 美股、港股、A 股、外汇、加密货币、期货统一代码格式
import requests, pandas as pd
H = {"accept": "application/json", "token": "YOUR_API_TOKEN"}
def bars(asset, region, code, ktype=8, limit=1000):
r = requests.get(f"https://api.itick.org/{asset}/kline", headers=H,
params={"region": region, "code": code, "kType": ktype, "limit": limit})
df = pd.DataFrame(r.json()["data"]).rename(columns={"t": "time", "o": "open",
"h": "high", "l": "low", "c": "close", "v": "volume"})
df["time"] = pd.to_datetime(df["time"], unit="ms")
return df.set_index("time")
# Same loader for stocks, forex and crypto - one data source for every backtest
df = bars("stock", "US", "AAPL")
df["fast"], df["slow"] = df.close.rolling(10).mean(), df.close.rolling(30).mean()
df["pos"] = (df.fast > df.slow).astype(int).shift()
equity = (1 + df.close.pct_change() * df.pos).cumprod()
print("strategy return:", round(equity.iloc[-1] - 1, 4))
# Feed df straight into Backtrader (bt.feeds.PandasData), VectorBT or vn.py6大资产类别,统一格式
1分钟-月线K线周期
Tick + L2执行级颗粒度
REST + WS研究与实盘
可以搭建什么
大多数量化团队需要的三个核心模块,共用同一套数据。
策略回测平台
拉取任意支持市场的多年日线或日内分钟K线,载入 Python / Java 回测框架。
实盘策略执行网关
订阅报价、逐笔与深度,信号触发后对接券商或交易柜台下单。
多市场套利监控
对比跨市场价格与盘口:期现价差、ETF 与标的,价差扩大即告警。
适配各类策略
日内、网格、均值回归、双均线、RSI、马丁等策略,数据源与策略无关。
无需逐个对接交易所
一个 Token、一种 JSON 格式,取代与每个交易所的单独连接。
研究即生产
回测用的品种和字段就是实盘交易的品种和字段,实盘表现与研究一致。
参考架构
量化团队如何把 iTick 接入策略全生命周期。
- 1
采集历史
REST /kline 与 Tick 历史落地到 Parquet 或数据库。
- 2
策略回测
在 Backtrader、VectorBT 或 vn.py 中基于存储的K线回测。
- 3
实时订阅
WebSocket 订阅相同品种的 quote / tick / depth。
- 4
信号与执行
策略引擎生成订单,发送至券商或交易柜台。
需要的数据与对应接口
全部数据使用同一个 Token。
| 需求 | iTick 接口 | 典型用途 |
|---|---|---|
| 日 / 周 / 月K线 | REST /{asset}/kline kType 8-10 | 波段与中长线回测 |
| 日内K线 | REST /{asset}/kline kType 1-7 | 日内回测与信号 |
| 逐笔成交 | REST /{asset}/tick,WebSocket tick | 微观结构与高频研究 |
| 盘口深度 | REST /{asset}/depth,WebSocket depth | 执行与滑点建模 |
| 实时报价 | WebSocket quote | 实盘信号与风控校验 |
用 Python 从研究走到实盘
一个加载函数适配所有市场,再实时订阅相同品种。
- 免费获取 API Token
- 下载历史数据并回测
- 通过 WebSocket 订阅并执行信号
import requests, pandas as pd
H = {"accept": "application/json", "token": "YOUR_API_TOKEN"}
def bars(asset, region, code, ktype=8, limit=1000):
r = requests.get(f"https://api.itick.org/{asset}/kline", headers=H,
params={"region": region, "code": code, "kType": ktype, "limit": limit})
df = pd.DataFrame(r.json()["data"]).rename(columns={"t": "time", "o": "open",
"h": "high", "l": "low", "c": "close", "v": "volume"})
df["time"] = pd.to_datetime(df["time"], unit="ms")
return df.set_index("time")
# Same loader for stocks, forex and crypto - one data source for every backtest
df = bars("stock", "US", "AAPL")
df["fast"], df["slow"] = df.close.rolling(10).mean(), df.close.rolling(30).mean()
df["pos"] = (df.fast > df.slow).astype(int).shift()
equity = (1 + df.close.pct_change() * df.pos).cumprod()
print("strategy return:", round(equity.iloc[-1] - 1, 4))
# Feed df straight into Backtrader (bt.feeds.PandasData), VectorBT or vn.py量化交易数据常见问题
iTick 支持哪些回测框架?
任何能读取 pandas DataFrame 或 CSV 的框架都可以,包括 Backtrader、VectorBT、vn.py 以及自研 Java 回测引擎。
可以用 Tick 数据回测吗?
可以。支持市场提供逐笔成交与盘口深度,同时提供 1 分钟至月线的K线。
iTick 能直接下单吗?
不能。iTick 是行情数据服务商,策略引擎使用 iTick 数据,再把订单发送到你的券商或交易系统。
一个套餐能同时覆盖股票、外汇和加密货币吗?
可以。综合套餐用一个 Token 覆盖股票、外汇、贵金属、指数与加密货币,限额详见价格页。