Type/to search
8
Follow
1364
Followers
OKEX V3 使用汇总
FAQ
Created 2018-11-30 10:18:55  Updated 2019-03-15 21:10:12
 19
 6108

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 msgdescription
    1ContractType Invalid没有设置合约,或者合约设置错误。检查是否是在初始启动机器人,没有设置合约的情况下,调用了SetMarginLevel 函数设置杠杆
    2Calc contractType error!合约交割日期计算错误
    3response format errorGetRecords 接口获取数据后解析,数据不全报错。
    4Invalid directionSetDirection 设置交易方向时,参数错误。
    5the contractType not found:调用 GetOrder / GetOrders 时,映射合约代码错误。
    6MarginLevel can only be set in the direction for buy/sell , current settings:设置杠杆时 ,当前必须是 buy / sell 方向,其它方向报错。
    7MarginLevel error, Must be a positive integer between 1 and 40.永续合约杠杆必须是 1~40 之间
    8Margin Level Invalid交割合约 杠杆错误,只有10 / 20
    9the contractType not found调用GetPosition时,没有找到实际合约代码对应的 this_week / next_week / quarter / swap 合约代码
    10analysingOrderId error, the orderId:GetOrder、GetOrders、Buy、Sell 函数返回信息中的订单ID 均为“合约代码|”形式,主要用于撤单、查询订单时识别,并非交易所接口返回的真正订单ID,如果撤单时使用的是非“合约代码|”形式的订单ID,即报错。
    11MarginLevel error. The contract for BTC(或者其他币) Must be a positive integer between 1 and 100(或者其它数值) ."永续合约杠杆值设置错误,超出限定范围,并且必须是整数。
  • 交易所报错

    NO.Error msgdescription
    1Futures_OP 0: 400: {"code":32010,"message":"You cannot adjust the leverage when you have open order(s) / position(s)."}全仓模式,有挂单时或者持仓时,无法修改为其他杠杆
    2GetOrder(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 。
      实际每种币种有不同的杠杆值设置范围:

      合约币种杠杆值范围
      BTC1 ~ 100
      LTC1 ~ 40
      ETH1 ~ 100
      ETC1 ~ 40
      XRP1 ~ 40
      EOS1 ~ 100
      BCH1 ~ 40
      BSV1 ~ 40
      TRX1 ~ 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 Recommendations
Comment
All comments (15)

    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

    7 years ago

    我用okex 就是这样 ,火币的可以

    7 years ago

    超时,访问不到交易所接口。托管者部署在哪儿的服务器 ?

    7 years ago

    我是部署在腾讯云 和 阿里云 一个杭州 一个北京

    7 years ago

    火币为什么是可以的??我搞不懂???

    7 years ago

    我部署在服务器,本地电脑,和虚拟机 都有 但是都不可以

    7 years ago

    OKEX 国内访问不到的。要用国外的服务器。

    7 years ago

    公用托管者(美国)能不能访问到okex

    7 years ago

    最好 别用,记得OKEX 是限制美国IP 访问的。

    7 years ago

    exchange.GetAccount();
    var Account =exchange.GetRawJSON();
    Account值为空{}

    7 years ago

    我测试了下,正常呀。
    您是不是 访问GetAccount() 的时候超时了,没有数据,然后GetRawJSON 是没有数据的。

    7 years ago

    已解决

    7 years ago

    Mark

    7 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)