DigiFinex
DigiFinex(现货):DigiFinex现货交易,通过DigiFinex OpenAPI v3(openapi.digifinex.com)的REST接口接入,私有接口需要API Key(Access Key、Secret Key)。只交易现货,没有模拟盘;永续合约请使用Futures_DigiFinex。
Futures_DigiFinex(期货):DigiFinex永续合约,通过DigiFinex合约接口(/swap/v2)的REST接口接入:U本位(如BTC_USDT.swap)与币本位反向合约(如BTC_USD.swap),没有交割合约。私有接口需要API Key(Access Key、Secret Key);可勾选「模拟盘」使用DigiFinex合约模拟盘。
名称与配置
exchange.GetName() | 类型 | 别名 |
|---|---|---|
DigiFinex | 现货 | — |
Futures_DigiFinex | 期货 | DigiFinex期货 |
✓ 表示该交易所对象有这个配置项。
| 配置项 | DigiFinex | Futures_DigiFinex | 必填 | 默认值 |
|---|---|---|---|---|
| Access Key | ✓ | ✓ | 是 | — |
| Secret Key | ✓ | ✓ | 是 | — |
| 模拟盘 | ✓ | 否 | 不勾选 |
交易对与合约代码
DigiFinex(现货)
交易对示例:BTC_USDT、ETH_USDT
交易对写作BTC_USDT,对应DigiFinex的原生代码btc_usdt(小写)。本交易所对象只交易现货,带合约后缀的品种会报错,永续合约请使用Futures_DigiFinex。
Futures_DigiFinex(期货)
交易对示例:BTC_USDT、BTC_USD
计价币决定合约类型:BTC_USDT为U本位合约(原生代码BTCUSDTPERP),BTC_USD为币本位反向合约(原生代码BTCPERP)。
| 合约代码 | 说明 |
|---|---|
swap | 永续合约。U本位、币本位都有。 |
DigiFinex只有永续合约,其它合约代码会报错。下单数量单位为张,每张对应的数量为exchange.GetMarkets()中的CtVal(单位见CtValCcy)。
专属IO指令
DigiFinex(现货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
api | method, path[, params[, raw]] | 直接调用DigiFinex接口,path可以写完整URL。(详见表下) | 交易所的完整应答;应答code不为0时报错。 |
表中长说明的其余部分:
api:默认签名,GET参数编入查询串,POST编成表单;签名参数传false时不签名,只能用于GET。raw不是请求体而是参数表(JSON对象),非空时整体替换params并照常参与签名,值为对象或数组时按JSON编码成一个字段。
通用指令base、currency见exchange.IO。
Futures_DigiFinex(期货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
simulate | bool | 模拟盘(true)/实盘(false)切换,只修改本地设置。切换后行情列表(exchange.GetTickers())、合约列表、账户余额和持仓查询带模拟盘参数(type=1),下单、撤单等其它接口不带。 | 成功返回空值。 |
cross | bool[, symbol] | 全仓(true)/逐仓(false),按合约向交易所发出设置请求,不传symbol时作用于当前合约。 | 设置的值(切换为逐仓时返回false),交易所拒绝时返回空值。 |
api | method, path[, params[, raw]] | 直接调用DigiFinex合约接口,只支持GET、POST,path以/开头或写完整URL。(详见表下) | 交易所的完整应答(含code、data);应答code不为0时报错。 |
表中长说明的其余部分:
api:默认签名,GET参数编入查询串,POST编成JSON请求体;签名参数传false时不签名,只能用于GET。raw不是请求体而是参数表(JSON对象或"a=1&b=2"),非空时整体替换params并照常参与签名。
通用指令base、currency见exchange.IO。
函数支持差异
不支持(调用时报错并返回空值):exchange.ModifyOrder、exchange.CreateConditionOrder、exchange.ModifyConditionOrder、exchange.CancelConditionOrder、exchange.GetConditionOrder、exchange.GetConditionOrders、exchange.GetHistoryConditionOrders。
以回退方式支持:
exchange.GetRecords:原生周期为1分钟、5分钟、15分钟、30分钟、1小时、4小时、12小时、1天、1周;其它周期由托管者合成。
保证金、账户与模拟盘
Futures_DigiFinex(期货)
保证金模式:用exchange.IO("cross", bool)按合约切换全仓/逐仓,交易所回执与请求不符时报错。exchange.SetMarginLevel()按合约设置杠杆,不需要额外参数:全仓或单向持仓的账户一次设置完成;逐仓且双向持仓的账户要按方向设置,交易所提示持仓模式错误时,连接器补上保证金模式,把多头、空头两侧都设置为同一杠杆(任一侧失败即报错,错误信息里注明已设置成功的一侧)。补上的保证金模式取本次运行中exchange.IO("cross", bool)对该合约的设置,没有设置过时按逐仓。exchange.SetDirection()设置的方向不影响杠杆设置。
持仓模式:没有切换持仓模式的指令(exchange.IO("dual", ...)报不支持)。下单按exchange.SetDirection()设置的方向使用开多、开空、平多、平空四种方向码。
模拟盘:添加交易所时勾选「模拟盘」使用DigiFinex合约模拟盘;exchange.IO("simulate", true)仍可在运行中切换,用于兼容旧策略。模拟盘只影响行情列表、合约列表、账户余额和持仓查询(带type=1参数)。
注意事项
DigiFinex(现货)
DigiFinex现货没有模拟盘环境,配置里也没有模拟盘选项;模拟盘只有合约(Futures_DigiFinex)支持。
Futures_DigiFinex(期货)
- 不支持批量查询资金费率:
exchange.GetFundings()必须传入具体永续合约品种(例如BTC_USDT.swap),不传或传范围(如USDT.swap)时报错。