vnpy okex相关接口说明
一、OkexGateway类说明
OkexGateway是vnpy里面okex交易所接口中最上层的接口,它主要的功能有:连接交易所、发单、撤单和连续查询等。
文件位置:gateway/okexGateway.py里面的第1个类。
下面介绍它的主要的函数。
1、主要函数说明
首先,OkexGateway要继承接口通用的模板VtGateway。VtGateway的说明见另一篇文章。
加上__init__方法一共有12个方法。
-
init()
初始化。需要输入实例化的事件引擎eventEngine、接口名称gatewayName和时区tz。
实例化现货接口类SpotApi。
读取账户信息文件OKEX_connect.json的路径。 -
connect()
连接交易所
读取OKEX_connect.json,中的key和symbols等参数。
使用spotApi的方法连接交易所 -
subscribe(subscribeReq)
订阅行情
这里没有内容,为pass,估计是在数字货币交易中用不到。 -
sendOrder(orderReq)
发单函数
使用 spotApi的方法发单
spotApi.sendOrder(orderReq) -
cancelOrder(cancelOrderReq)
撤单函数
使用 spotApi 的方法撤单
spotApi.cancelOrder(cancelOrderReq) -
qryAccount()
查询账户资金
pass,(这里为什么没有内容,数字货币无法查询账户信息?) -
qryPosition()
查询持仓
spotApi.spotUserInfo() (没有返回) -
close()
断开交易所
spotApi.close() -
initQuery()
初始化连续查询 -
query()
注册到事件处理引擎上的查询函数
(不懂…) -
startQuery()
启动连续查询 -
setQryEnabled(qryEnabled)
设置是否要启动循环查询
注意:第9个函数 initQuery()中调用了剩下的函数,可以把它看作主函数,主要的功能可能是循环查询持仓。
2、使用说明
pass
二、SpotApi类说明
SpotApi为okex现货交易的api,它继承了底层的接口OkexSpotApi,在OkexGateway类里面被实例化,算是中层的接口。内容主要为各种回调函数的定义。
文件位置:gateway/okexGateway.py里面的第2个类。
下面介绍它的主要的函数。
1、主要函数说明
-
init()
初始化。实例化的时候需要传入参数gateway对象,这里传入的就是前面的OkexGateway类,以及时区tz。 -
onMessage(data)
信息推送函数
(看不懂…) -
onError(data)
错误推送函数
创建错误对象VtErrorData,添加信息,调用gateway.onError(error) -
onClose()
接口断开函数 -
onOpen()
连接成功函数
遍历订阅的合约,初始化合约信息,调用gateway.onContract(contract) -
initCallback()
初始化回调函数
将回调函数(以on开头的)传入cbDict字典中
该方法会在下面的init()函数中被调用。 -
onLogin(data)
登陆成功回调函数
调用self.spotUserInfo()查询持仓
遍历合约,self.subscribe(symbol)订阅合约
在initCallback()函数中被加入cbDict字典中 -
onTicker(data)
原始的tick数据处理函数
将okex推送的原始tick数据转化为JackTickData()对象
调用gateway.onTick(newtick)推送tick对象
在initCallback()函数中被加入cbDict字典中 -
onDepth(data)
处理深度数据函数
将盘口数据转化为JackTickData()对象。
调用gateway.onTick(newtick)推送tick对象
在initCallback()函数中被加入cbDict字典中 -
onSpotOrder(data)
现货委托单回调函数
如果委托失败,则通知委托被拒单的信息
在initCallback()函数中被加入cbDict字典中 -
onSpotCancelOrder(data)
取消现货委托单回调函数
调用checkDataError(data)
在initCallback()函数中被加入cbDict字典中 -
onSpotUserInfo(data)
品种持仓回调函数
获取每个品种总持仓量和可用持仓量。然后查询每个品种的委托信息
调用gateway.onAccount(account) 返回持仓对象
在initCallback()函数中被加入cbDict字典中 -
onSpotOrderInfo(data)
委托信息查询回调函数
将okex返回的委托信息转化成JackOrderData(),并储存到self.orderDict中,
调用gateway.onOrder(copy(order))返回委托单
在initCallback()函数中被加入cbDict字典中 -
onSubSpotOrder(data)
交易数据回调函数
该函数会更新或委托单信息,使用gateway.onOrder(copy(order))推送委托单对象。
然后根据传入的data创建成交对象,使用gateway.onTrade(trade)推送成交对象。
最后执行撤单(如果之前有撤单操作的话)
在initCallback()函数中被加入cbDict字典中 -
onSubSpotBalance(data)
品种持仓信息回调函数
更新每个品种的总持仓量和可用持仓量,并调用gateway.onAccount(account)返回持仓信息
在initCallback()函数中被加入cbDict字典中 -
init(apiKey, secretKey, trace, symbols)
初始化接口
传入订阅的品种,初始化上面的调用函数self.initCallback()
使用继承的OkexApi的connect方法连接交易所 -
sendOrder(req)
发单函数
使用底层对象SpotApi的spotOrder方法发单到交易所
将返回的数据转化为order对象,储存在localOrderDict字典中
非常重要的一个函数,会在OkexGateway被调用 -
cancelOrder(req)
撤单函数
也是非常重要的函数,会在OkexGateway被调用 -
generateDateTime(s)
生成时间函数
传入okex返回的时间戳,生产datetime等时间,内部使用函数 -
writeLog(content)
快速记录日志
创建log对象,使用gateway.onLog(log)推送log -
checkDataError(data)
检查回报是否存在错误
创建error对象,使用gateway.onError(error)推送log -
subscribe(symbol)
订阅行情函数
订阅tick、depth、委托单和资金
2、使用说明
pass