说明
1、有持仓时无法切换为其它杠杆。
2、有持仓时无法切换为其它仓位模式(全仓/逐仓)
3、exchange.CancelOrder(ID) 时, 撤单必须切换到该ID订单对应的合约下(exchange.SetContractType 切换)已兼容
4、exchange.GetAccount() 交割合约下调用获取账户资产接口,全仓模式时:会访问四次API 接口,因为挂单冻结币数是单独接口获取的(三种交割合约)。
5、合约代码(即:exchange.SetContractType 时传入的参数)分为四种: “this_week” , “next_week” , “quarter” , “swap” (即:永续合约)
6、调用 exchange.GetOrder(ID) 时,必须为ID对应的合约状态下,否则会报错,永续合约ID和交割合约ID差别比较大。已兼容
7、exchange.GetPosition() 获取仓位时,交割合约全仓模式下, Margin 属性为 0 。
8、初始默认10倍杠杆,交易方向 buy (交易所上的逐仓/全仓,杠杆数,可能有多种情况,是用户自己的设置)
报错信息:
NO. | Error msg | description |
---|---|---|
1 | ContractType Invalid | 没有设置合约,或者合约设置错误。检查是否是在初始启动机器人,没有设置合约的情况下,调用了SetMarginLevel 函数设置杠杆 |
2 | Calc contractType error! | 合约交割日期计算错误 |
3 | response format error | GetRecords 接口获取数据后解析,数据不全报错。 |
4 | Invalid direction | SetDirection 设置交易方向时,参数错误。 |
5 | the contractType not found: | 调用 GetOrder / GetOrders 时,映射合约代码错误。 |
6 | MarginLevel can only be set in the direction for buy/sell , current settings: | 设置杠杆时 ,当前必须是 buy / sell 方向,其它方向报错。 |
7 | ||
8 | Margin Level Invalid | 交割合约 杠杆错误,只有10 / 20 |
9 | the contractType not found | 调用GetPosition时,没有找到实际合约代码对应的 this_week / next_week / quarter / swap 合约代码 |
10 | analysingOrderId error, the orderId: | GetOrder、GetOrders、Buy、Sell 函数返回信息中的订单ID 均为“合约代码|”形式,主要用于撤单、查询订单时识别,并非交易所接口返回的真正订单ID,如果撤单时使用的是非“合约代码|”形式的订单ID,即报错。 |
11 | MarginLevel error. The contract for BTC(或者其他币) Must be a positive integer between 1 and 100(或者其它数值) ." | 永续合约杠杆值设置错误,超出限定范围,并且必须是整数。 |
交易所报错
NO. | Error msg | description |
---|---|---|
1 | Futures_OP 0: 400: {“code”:32010,“message”:“You cannot adjust the leverage when you have open order(s) / position(s).”} | 全仓模式,有挂单时或者持仓时,无法修改为其他杠杆 |
2 | GetOrder(65-9-44101ef02-0): 400: {“code”:30024,“message”:"“order_id” is an invalid parameter"} | GetOrder 、CancelOrder 时,必须切换到 该ID 的合约对应的合约状态下,否则报错。已经兼容 |
3 | {“code”:32007,“message”:“You cannot open short at 20x when you are holding short position(s) and/or open order(s) at 10x.”} | 逐仓时,如果当前方向的合约为10倍(网站上设置的),下单时使用的是20倍,即会报该错误,另外逐仓下设置杠杆时需要注意方向,逐仓有2个杠杆值,一个多仓杠杆,一个空仓杠杆。调用exchange.SetMarginLevel设置杠杆时,和当前的下单方向有关,即buy方向时为设置多仓杠杆值,sell方向时设置空仓杠杆值,closebuy/closesell方向时会报错。 |
… | … | … |
问题汇总
1、下单后马上撤单,订单成交,撤单操作没有报错,返回的是正常撤单成功的信息。 就有类似下图的情况,实际订单已经完全成交,但是撤销操作没有报错,看似撤销成功。
配置 OKEX V3 API KEY ,现货期货配置方式一致。
填写对应的 Access key , Secret key , Passphrase
Passphrase 在申请 V3 API KEY 时要自己设置后保存。
# 注意:如果托管者版本比较旧,需要更新托管者。
# 注意:Futures_OP 4 错误,检查是不是 策略代码中使用了 exchange.IO 调用了 V1 接口(交易所配置API KEY 配置的V3 KEY)。
更新
2019.2.17 更新了 永续合约 杠杆设置 范围的错误限制,原为限制 1-40 。 实际每种币种有不同的杠杆值设置范围:
合约币种 | 杠杆值范围 |
---|---|
BTC | 1 ~ 100 |
LTC | 1 ~ 40 |
ETH | 1 ~ 100 |
ETC | 1 ~ 40 |
XRP | 1 ~ 40 |
EOS | 1 ~ 100 |
BCH | 1 ~ 40 |
BSV | 1 ~ 40 |
TRX | 1 ~ 20 |
新账户申请的 API KEY ,在调用 exchange.GetAccount() 时,报错: GetAccount: type assertion to []interface{} failed 原因是接口返回了 : {“total_avail_balance”:“0”,“contracts”:null,“equity”:“0”,“margin_mode”:“fixed”} contracts 属性是 null 。 对于该问题已经容错处理。
OKEX 优化
4、获取单个/所有合约账户信息接口
GET /api/futures/v3/accounts//GET /api/futures/v3/accounts/{currency}:
原返回参数增加:挂单冻结保证金和持仓已用保证金(同逐仓);
对于该问题已经容错处理。
逐仓下,持仓信息 Profit 属性修正。 逐仓时,合约持仓数据 Profit 属性问题,原因 : GET /api/futures/v3/position 接口 返回的逐仓数据 , long_pnl_ratio ,属性为 收益率小数表示形式,并非 收益率中的小数,即: long_pnl_ratio 为 0.1时代表的是 10%,并非 0.1% 。
更新 季度合约 映射 问题。 更新时间: 2019.3.15 19:30:00 季度合约正确映射为 BTC-USD-190628 , (BTC举例)。
以上更新内容需要下载最新的托管者。
预计更新 暂无
913804005@qq.com Error: GetTicker: Get https://www.okex.com/api/futures/v3/instruments/ETH-USD-190927/ticker: dial tcp 243.185.187.39:443: connect: connection refused GetDepth: Get https://www.okex.com/api/futures/v3/instruments/ETH-USD-190927/book?size=100: dial tcp 243.185.187.39:443: connect: connection refused GetRecords: Get https://www.okex.com/api/futures/v3/instruments/ETH-USD-190927/candles?granularity=86400&start=2019-06-02T07:51:42.000Z: dial tcp 243.185.187.39:443: connect: connection refused
913804005@qq.com 我用okex 就是这样 ,火币的可以
913804005@qq.com /upload/asset/12b85ef5183f25d1f8460.png
qazliruibo 公用托管者(美国)能不能访问到okex
飞天 exchange.GetAccount(); var Account =exchange.GetRawJSON(); Account值为空{}
乔森Joeson Mark
发明者量化-小小梦 Mark
发明者量化-小小梦 OKEX 国内访问不到的。要用国外的服务器。
913804005@qq.com 我是部署在腾讯云 和 阿里云 一个杭州 一个北京
913804005@qq.com 火币为什么是可以的??我搞不懂???
913804005@qq.com 我部署在服务器,本地电脑,和虚拟机 都有 但是都不可以
发明者量化-小小梦 超时,访问不到交易所接口。托管者部署在哪儿的服务器 ?
发明者量化-小小梦 最好 别用,记得OKEX 是限制美国IP 访问的。
飞天 已解决
发明者量化-小小梦 我测试了下,正常呀。 您是不是 访问GetAccount() 的时候超时了,没有数据,然后GetRawJSON 是没有数据的。