OKEX V3 使用汇总

Author: 小小梦, Created: 2018-11-30 10:18:55, Updated: 2019-03-15 21:10:12

OKEX v3 期货汇总

  • 说明 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 MarginLevel error, Must be a positive integer between 1 and 40. 永续合约杠杆必须是 1~40 之间
    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方向时会报错。

OKEX V3 现货汇总

  • 问题汇总

    • 1、下单后马上撤单,订单成交,撤单操作没有报错,返回的是正常撤单成功的信息。 就有类似下图的情况,实际订单已经完全成交,但是撤销操作没有报错,看似撤销成功。

      img

添加交易所

  • 配置 OKEX V3 API KEY ,现货期货配置方式一致。

    填写对应的 Access key , Secret key , Passphrase img

    Passphrase 在申请 V3 API KEY 时要自己设置后保存。

    img

    # 注意:如果托管者版本比较旧,需要更新托管者。
    # 注意: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举例)。

    以上更新内容需要下载最新的托管者。

  • 预计更新 暂无

如有问题,请联系小小梦或者发工单系统。


Related

More

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 是没有数据的。