如果你刚接触量化交易,想用 Binance、Bybit 这些中心化交易所(CEX)的历史高频数据来回测自己的策略,但又不知道 WebSocket 怎么连、数据怎么存、API Key 从哪来——这篇文章就是为你写的。我会从最基础的 Python 安装开始,一步步带你把 Tardis.dev 的逐笔成交、Order Book、强平、资金费率数据拉到自己电脑里。
文章里我会用一个对国内开发者更友好的方案:立即注册 HolySheep AI。它不仅提供大模型 API 中转(汇率 ¥1=$1 无损,比官方 ¥7.3=$1 节省 85% 以上),还能直接中转 Tardis.dev 的加密货币高频数据,国内直连延迟 <50ms,比裸连国外服务器稳定得多。
一、先搞清楚:Tardis.dev 到底是什么?
Tardis.dev 是一个专门做加密货币历史行情数据的平台。它的数据特点可以用四个字形容:「全、快、准、稳」:
- 全:覆盖 Binance、Bybit、OKX、Deribit 等 9 大主流合约交易所
- 快:WebSocket 实时推送逐笔成交(trades)、Order Book(depth)、强平(liquidations)、资金费率(funding)
- 准:原始 tick 级数据,未做插值或合并
- 稳:API 设计清晰,文档规范
但它有个小问题:服务器在海外,国内直连经常掉线、延迟动辄 300ms 以上。这就是为什么我推荐走 HolySheep 的中转通道。
二、准备工作:装好 Python 和必要的库
假设你电脑是 Windows 系统(Mac 也类似),按下面步骤操作:
步骤 1:下载 Python
- 打开浏览器,访问 python.org
- 点击黄色按钮「Download Python 3.12.x」
- 运行下载好的 .exe 文件
- ⚠️ 关键:在第一个安装界面,勾选「Add Python to PATH」,再点「Install Now」
步骤 2:打开命令行验证
- 按 Win + R,输入 cmd,回车
- 输入
python --version,看到 3.12.x 就成功了
步骤 3:安装 WebSocket 客户端库
在命令行里执行下面这段,把 websockets 和 pandas 一起装上:
pip install websockets pandas nest_asyncio
装完之后,你电脑上就具备了「连接 WebSocket、收数据、存表格」的全部能力。
三、注册 HolySheep 拿到 API Key
访问 HolySheep 注册页面,用微信扫码即可注册,新用户赠送免费额度,足够你跑完一整套回测。
注册完成后:
- 点击右上角头像 → 「API Keys」
- 点击「Create New Key」
- 复制显示的
YOUR_HOLYSHEEP_API_KEY,保存到记事本里(页面关掉就再也看不到了)
四、第一段代码:连接到 Tardis WebSocket
新建一个文件叫 tardis_test.py,把下面代码复制进去。注意把 YOUR_HOLYSHEEP_API_KEY 换成你自己的 key。
import asyncio
import websockets
import json
async def hello_tardis():
# HolySheep 中转的 Tardis WebSocket 地址
uri = "wss://api.holysheep.ai/tardis/v1/data-feeds/binance.futures"
# 订阅 Binance USDT 永续合约的逐笔成交 + 10档深度
subscribe_msg = {
"api_key": "YOUR_HOLYSHEEP_API_KEY",
"data_type": "trades",
"symbols": ["btcusdt", "ethusdt"],
"depth_level": 10 # 仅当订阅 order_book 时生效
}
async with websockets.connect(uri) as ws:
# 发送订阅消息
await ws.send(json.dumps(subscribe_msg))
print("订阅成功,等待数据中...")
# 持续接收 5 条消息就退出(演示用)
for i in range(5):
msg = await ws.recv()
data = json.loads(msg)
print(f"第 {i+1} 条: {data}")
运行
asyncio.run(hello_tardis())
在命令行里运行 python tardis_test.py,你应该能看到类似下面的输出:
订阅成功,等待数据中...
第 1 条: {'symbol': 'BTCUSDT', 'price': 67234.5, 'qty': 0.012, 'side': 'buy', 'ts': 1730000000123}
第 2 条: {'symbol': 'ETHUSDT', 'price': 3456