Deribit
币本位(反向)永续与交割合约、USDC线性永续与交割合约、差价组合合约(future_combo),以及期权与组合期权。
名称与配置
exchange.GetName():Futures_Deribit(期货)。
| 配置项 | 必填 |
|---|---|
| Access Key | 是 |
| Secret Key | 是 |
交易对与合约代码
交易对示例:BTC_USD、ETH_USD、BTC_USDC、XRP_USDC
计价币决定合约类型:BTC_USD、ETH_USD为币本位(反向)合约,原生代码形如BTC-PERPETUAL;BTC_USDC、XRP_USDC等为USDC线性合约,原生代码形如BTC_USDC-PERPETUAL(Deribit的线性合约代码本身带下划线)。
| 合约代码 | 说明 |
|---|---|
swap | 永续合约。 |
today | 按日到期的交割合约中最近到期的一张(Deribit的日合约)。 |
tomorrow | 按日到期的交割合约中第二近的一张。 |
this_week | 周合约中最近到期的一张。 |
next_week | 周合约中第二近的一张。 |
month | 月度合约(含季月)中最近到期的一张。 |
quarter | 3、6、9、12月到期的月度合约中最近的一张,但跳过month已指向的那张。 |
next_quarter | 同上季月序列中的第二张。 |
third_quarter | 同上季月序列中的第三张。 |
fourth_quarter | 同上季月序列中的第四张。 |
交割合约代码不在本地按日期推算,而是按Deribit合约列表的到期周期(日、周、月)和到期时间排序选取(列表缓存10分钟);该周期没有挂出对应序号的合约时报错。
差价组合合约(future_combo)写成"远期代码,近期代码",两个代码以英文逗号分隔,例如"quarter,swap"、"next_week,swap"、"next_quarter,this_week"、"month,next_week";远期一腿必须是交割代码,近期一腿可以是交割代码或swap,对应Deribit的BTC-FS-25DEC26_PERP一类组合合约。组合合约只用于币本位交易对(BTC_USD、ETH_USD),在USDC等线性交易对上写组合代码会报错。
原生合约代码示例:BTC-30JUL26、BTC_USDC-30JUL26、BTC-FS-25DEC26_PERP
任何交割或组合合约都可以直接写Deribit的原生代码(日期为日月年缩写),超出上述代码范围的远期合约就用这种写法,例如交易对BTC_USD、合约代码BTC-30JUL26。查询结果中映射不回上述代码的合约也以原生代码返回。
函数支持差异
不支持(调用时报错并返回空值):exchange.SetMarginLevel。
以回退方式支持:
exchange.GetRecords:原生周期为1分钟、3分钟、5分钟、10分钟、15分钟、30分钟、1小时、2小时、3小时、6小时、12小时、1天;其它周期由托管者合成。
保证金、账户与模拟盘
保证金模式:Deribit按币种的保证金账户统一计算保证金,没有逐合约的保证金模式和杠杆设置:exchange.SetMarginLevel()不支持,exchange.IO("cross", ...)报错。exchange.GetPositions()的MarginLevel取Deribit持仓返回的杠杆,期权持仓为0;Margin为初始保证金与维持保证金之和。
持仓模式:每个合约只有一个净持仓(单向持仓),exchange.IO("dual", ...)报错。
账户:exchange.GetAssets()按币种(BTC、ETH、USDC、USDT等)分别返回余额,各币种以自身计价,不折算汇总。
模拟盘:配置里没有模拟盘选项。使用Deribit测试网时,填入测试网的API Key,并在策略开始时调用exchange.IO("base", "https://test.deribit.com")切换接口地址。
期权
设置期权合约后即可获取行情、下单、撤单、查询持仓,BTC、ETH期权的下单量单位是币数。
exchange.GetMarkets()不传参数时列出全部期权与组合期权;传入期权品种时只查期权。exchange.GetTickers()只返回期货(永续、交割),不含期权和组合合约,期权行情用exchange.GetTicker()逐个获取。- 期权不支持
exchange.GetFundings()。 - 查询范围
USD.option为BTC、ETH期权,USDC.option为USDC结算期权,均包含组合期权。
期权代码示例:BTC-25DEC26-100000-C、SOL_USDC-25DEC26-148-C、XRP_USDC-27NOV26-2d3-P、BTC_USDC-CS-11OCT26-82500_83000
期权代码为Deribit原生代码:标的-到期日(日月年缩写)-行权价-C/P,C为看涨、P为看跌,行权价的小数点写作d(如2d3即2.3)。BTC、ETH期权以币结算,交易对设置为BTC_USD、ETH_USD,完整品种代码形如BTC_USD.BTC-25DEC26-100000-C;USDC结算的期权代码自带_USDC,交易对设置为对应的_USDC交易对,例如SOL_USDC.SOL_USDC-25DEC26-148-C。组合期权(如BTC-CS-6SEP24-57000_57500、BTC-PCAL-20SEP24_13SEP24-55000)同样直接写原生代码。
注意事项
- 下单量单位:币本位(反向)合约是USD金额(
BTC-PERPETUAL最小10且为10的倍数),USDC线性合约与期权是币数。exchange.GetMarkets()的CtVal恒为1,最小下单量与精度以MinQty、AmountPrecision为准。 exchange.GetFundings()传具体永续合约品种(如BTC_USD.swap)返回该合约当前一条;不传参数时按当前合约的计价币查询该计价币的全部永续(如USD.swap为BTC、ETH币本位永续,USDC.swap为全部USDC线性永续),也可直接传这类范围。费率取Deribit按8小时折算的current_interest。Deribit没有批量资金费率接口,范围查询每个永续发一次请求,USDC.swap有一百多个永续、耗时十几秒,频繁调用请传具体品种。交割合约、期权与组合合约没有资金费率,传入会报错。- 条件单只支持止盈、止损单,不支持OCO;支持
exchange.ModifyConditionOrder()。触发价默认按最新成交价,可在附加参数中传trigger(mark_price、index_price)改用标记价格或指数价格。 exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()按品种查询,不支持since参数(传了会报错),返回最近的记录。- 范围查询
USD.swap、USD.futures等的USD覆盖BTC、ETH币本位合约;差价组合合约的范围是USD.futures_combo。当前合约为组合合约时,不传参数默认USD.futures_combo(含以原生代码返回的远月组合);USD.futures不含组合合约。