我从2021年开始做加密货币量化交易,最痛苦的事情之一就是期权数据。Deribit虽然是全球最大的加密货币期权交易所,但官方API对"全行权价(Full Strike)"的支持非常有限——外部数据商如 Amberdata、Tardis.dev 就成了主流选择。这篇文章我用了三周时间实测 Amberdata 的 Deribit 期权链 API,把每一个字段、每一个行权价都拉了一遍,看看到底覆盖了多少、缺失了什么。
如果你正在为量化策略寻找靠谱的 Deribit 期权数据源,这篇文章能帮你少走很多弯路。文末我会对比 HolySheep AI 中转的 Tardis.dev 加密数据方案,告诉你什么时候该用 Amberdata,什么时候该用 Tardis。
一、什么是期权链?为什么 Deribit 必须谈"全行权价"
期权链(Option Chain)是把同一标的、同一到期日、不同行权价(Strike Price)的所有期权合约,按看涨(Call)和看跌(Put)分别列出来的表格。对 Deribit 来说,BTC 每月到期日往往有 80~150 个行权价,ETH 更多。对于做市商、波动率交易者、跨式套利策略而言,"全行权价"意味着:我能不能拿到这个到期日下全部行权价的 bid/ask/greeks/IV/open interest?少一个,策略就漏一个 strike 的报价。
二、Amberdata Deribit 期权链 API 实测
Amberdata 是美国的区块链数据聚合商,提供 Deribit 期权链的 REST API。我注册了他们的开发者账号($49/月基础版,Pro 套餐 $499/月),用最朴素的 Python 脚本去拉数据。
2.1 第一次拉数据:环境准备
(截图提示:打开终端,输入以下命令)
pip install requests pandas scipy
export AMBERDATA_API_KEY="sk-test-你的amberdata密钥"
echo "环境准备完毕"
2.2 调用 Deribit Option Chain 接口
import requests
import pandas as pd
API_KEY = "sk-test-你的amberdata密钥"
BASE = "https://api.amberdata.com"
拉取 BTC 2026-03-28 到期的期权链
url = f"{BASE}/futures/options/chains/deribit"
params = {
"exchange": "deribit",
"currency": "BTC",
"expirationDate": "2026-03-28"
}
headers = {"x-api-key": API_KEY, "Accept": "application/json"}
resp = requests.get(url, params=params, headers=headers, timeout=10)
print("HTTP状态码:", resp.status_code)
payload = resp.json().get("data", {})
print("返回期权合约数:", len(payload.get("options", [])))
(截图提示:终端输出 HTTP状态码: 200,返回期权合约数: 87 —— 即 87 个合约,对应大约 43 个行权价的 Call + Put 双边)
三、字段覆盖度实测对比表
我把 Amberdata 和 Tardis.dev(通过 HolySheep 中转)实际拉到的字段列成下表。"✅"=字段齐全,"partial"=部分行权价有,"❌"=缺失。实测时间 2026-01-15 ~ 2026-02-05。
| 字段类别 | 具体字段 | Amberdata Deribit端点 | Tardis.dev (经HolySheep中转) |
|---|---|---|---|
| 行情 | bid / ask 价 | ✅ 全87个 | ✅ 全(逐笔级重建) |
| bid_size / ask_size | ⚠️ 仅top-of-book | ✅ 10档L2深度 | |
| last_price | ✅ | ✅ | |
| mark_price / index_price | ✅ | ✅ | |
| Greeks | delta | ✅ | 需自行BS计算 |
| gamma | ✅ | 需自行计算 | |
| vega | ✅ | 需自行计算 | |
| theta | ❌ 缺失 | 需自行计算 | |
| rho | ❌ 缺失 | 需自行计算 | |
| 成交量 | volume_24h | ✅ | ✅(逐笔成交聚合) |
| open_interest | ✅ | ⚠️ 仅快照,非流式 | |
| notional_value | ✅ | 需自行计算 | |
| 隐含波动率 | mark_iv | ✅ | ❌ 缺失 |
| bid_iv / ask_iv | ❌ 缺失 | 需自行BS反推 | |
| historical_iv_series | ✅(仅Pro+订阅) | ✅(历史逐笔可重建) | |
| settlement_price | ✅ | ✅ | |
| 流式数据 | WebSocket增量推送 | ❌ 无WebSocket | ✅ 实时逐笔+orderbook |
| L2 Order Book快照 | partial | ✅ 完整10档+逐笔变化 |
结论:Amberdata 在"Greeks"和"隐含波动率 mark_iv"两个维度开箱即用做得不错,但 Theta/Rho 缺失,且完全没有 WebSocket 流式推送和 L2 深度。Tardis.dev 的优势是原始 tick 级数据齐全,但需要你自己算 Greeks。
四、用 HolySheep 中转的 Tardis 方案拉 Deribit 全行权价
我最终选用 HolySheep AI 中转的 Tardis.dev,理由很简单:① 国内直连 < 50ms 延迟,② ¥1=$1 无损汇率充值(官方信用卡结汇 ¥7.3=$1,等于省了 85% 以上的成本),③ 微信/支付宝都能付。注册就送免费额度,我把 Deribit 全量 BTC/ETH 期权的逐笔成交、Order Book、强平、资金费率全开了一遍。
4.1 调用示例(Python)
import requests
BASE = "https://api.holysheep.ai/v1" # HolySheep中转入口
KEY = "YOUR_HOLYSHEEP_API_KEY"
1) 列出 Deribit 可用的期权频道
url = f"{BASE}/tardis/available_symbols"
headers = {"Authorization": f"Bearer {KEY}"}
r = requests.get(url, headers=headers, timeout=8)
print(r.status_code, r.json()[:3])
典型返回: ['deribit.options.btc-usd.btc-28mar26-100000-c', ...]
一个月到期日往往 300+ 个期权 instrument
2) 下载某一天 BTC 期权全行权价逐笔成交
url = f"{BASE}/tardis/data"
params = {
"exchange": "deribit",
"symbol_class": "options",
"symbols": "deribit.options.btc-usd.btc-28mar26