天天看点

vnpy okex相关接口说明一、OkexGateway类说明二、SpotApi类说明

vnpy okex相关接口说明

  • 一、OkexGateway类说明
    • 1、主要函数说明
    • 2、使用说明
  • 二、SpotApi类说明
    • 1、主要函数说明
    • 2、使用说明

一、OkexGateway类说明

OkexGateway是vnpy里面okex交易所接口中最上层的接口,它主要的功能有:连接交易所、发单、撤单和连续查询等。

文件位置:gateway/okexGateway.py里面的第1个类。

下面介绍它的主要的函数。

1、主要函数说明

首先,OkexGateway要继承接口通用的模板VtGateway。VtGateway的说明见另一篇文章。

加上__init__方法一共有12个方法。

  1. init()

    初始化。需要输入实例化的事件引擎eventEngine、接口名称gatewayName和时区tz。

    实例化现货接口类SpotApi。

    读取账户信息文件OKEX_connect.json的路径。

  2. connect()

    连接交易所

    读取OKEX_connect.json,中的key和symbols等参数。

    使用spotApi的方法连接交易所

  3. subscribe(subscribeReq)

    订阅行情

    这里没有内容,为pass,估计是在数字货币交易中用不到。

  4. sendOrder(orderReq)

    发单函数

    使用 spotApi的方法发单

    spotApi.sendOrder(orderReq)

  5. cancelOrder(cancelOrderReq)

    撤单函数

    使用 spotApi 的方法撤单

    spotApi.cancelOrder(cancelOrderReq)

  6. qryAccount()

    查询账户资金

    pass,(这里为什么没有内容,数字货币无法查询账户信息?)

  7. qryPosition()

    查询持仓

    spotApi.spotUserInfo() (没有返回)

  8. close()

    断开交易所

    spotApi.close()

  9. initQuery()

    初始化连续查询

  10. query()

    注册到事件处理引擎上的查询函数

    (不懂…)

  11. startQuery()

    启动连续查询

  12. setQryEnabled(qryEnabled)

    设置是否要启动循环查询

注意:第9个函数 initQuery()中调用了剩下的函数,可以把它看作主函数,主要的功能可能是循环查询持仓。

2、使用说明

pass

二、SpotApi类说明

SpotApi为okex现货交易的api,它继承了底层的接口OkexSpotApi,在OkexGateway类里面被实例化,算是中层的接口。内容主要为各种回调函数的定义。

文件位置:gateway/okexGateway.py里面的第2个类。

下面介绍它的主要的函数。

1、主要函数说明

  1. init()

    初始化。实例化的时候需要传入参数gateway对象,这里传入的就是前面的OkexGateway类,以及时区tz。

  2. onMessage(data)

    信息推送函数

    (看不懂…)

  3. onError(data)

    错误推送函数

    创建错误对象VtErrorData,添加信息,调用gateway.onError(error)

  4. onClose()

    接口断开函数

  5. onOpen()

    连接成功函数

    遍历订阅的合约,初始化合约信息,调用gateway.onContract(contract)

  6. initCallback()

    初始化回调函数

    将回调函数(以on开头的)传入cbDict字典中

    该方法会在下面的init()函数中被调用。

  7. onLogin(data)

    登陆成功回调函数

    调用self.spotUserInfo()查询持仓

    遍历合约,self.subscribe(symbol)订阅合约

    在initCallback()函数中被加入cbDict字典中

  8. onTicker(data)

    原始的tick数据处理函数

    将okex推送的原始tick数据转化为JackTickData()对象

    调用gateway.onTick(newtick)推送tick对象

    在initCallback()函数中被加入cbDict字典中

  9. onDepth(data)

    处理深度数据函数

    将盘口数据转化为JackTickData()对象。

    调用gateway.onTick(newtick)推送tick对象

    在initCallback()函数中被加入cbDict字典中

  10. onSpotOrder(data)

    现货委托单回调函数

    如果委托失败,则通知委托被拒单的信息

    在initCallback()函数中被加入cbDict字典中

  11. onSpotCancelOrder(data)

    取消现货委托单回调函数

    调用checkDataError(data)

    在initCallback()函数中被加入cbDict字典中

  12. onSpotUserInfo(data)

    品种持仓回调函数

    获取每个品种总持仓量和可用持仓量。然后查询每个品种的委托信息

    调用gateway.onAccount(account) 返回持仓对象

    在initCallback()函数中被加入cbDict字典中

  13. onSpotOrderInfo(data)

    委托信息查询回调函数

    将okex返回的委托信息转化成JackOrderData(),并储存到self.orderDict中,

    调用gateway.onOrder(copy(order))返回委托单

    在initCallback()函数中被加入cbDict字典中

  14. onSubSpotOrder(data)

    交易数据回调函数

    该函数会更新或委托单信息,使用gateway.onOrder(copy(order))推送委托单对象。

    然后根据传入的data创建成交对象,使用gateway.onTrade(trade)推送成交对象。

    最后执行撤单(如果之前有撤单操作的话)

    在initCallback()函数中被加入cbDict字典中

  15. onSubSpotBalance(data)

    品种持仓信息回调函数

    更新每个品种的总持仓量和可用持仓量,并调用gateway.onAccount(account)返回持仓信息

    在initCallback()函数中被加入cbDict字典中

  16. init(apiKey, secretKey, trace, symbols)

    初始化接口

    传入订阅的品种,初始化上面的调用函数self.initCallback()

    使用继承的OkexApi的connect方法连接交易所

  17. sendOrder(req)

    发单函数

    使用底层对象SpotApi的spotOrder方法发单到交易所

    将返回的数据转化为order对象,储存在localOrderDict字典中

    非常重要的一个函数,会在OkexGateway被调用

  18. cancelOrder(req)

    撤单函数

    也是非常重要的函数,会在OkexGateway被调用

  19. generateDateTime(s)

    生成时间函数

    传入okex返回的时间戳,生产datetime等时间,内部使用函数

  20. writeLog(content)

    快速记录日志

    创建log对象,使用gateway.onLog(log)推送log

  21. checkDataError(data)

    检查回报是否存在错误

    创建error对象,使用gateway.onError(error)推送log

  22. subscribe(symbol)

    订阅行情函数

    订阅tick、depth、委托单和资金

2、使用说明

pass