如题,vnpy系统很完善,很牛,可是新手想深入应用看的很懵圈.
我就想知道怎么得到当前tick数据,以及下单的代码怎么写(比如某个合约,方向,数量). 就这么简单!
先不考虑timer, 监听,引擎调用什么的. 然后慢慢学习中,或者自己完善一些线程的代码,或者就学会用vnpy的代码了. 肯定大佬看到了给一段!
如题,vnpy系统很完善,很牛,可是新手想深入应用看的很懵圈.
我就想知道怎么得到当前tick数据,以及下单的代码怎么写(比如某个合约,方向,数量). 就这么简单!
先不考虑timer, 监听,引擎调用什么的. 然后慢慢学习中,或者自己完善一些线程的代码,或者就学会用vnpy的代码了. 肯定大佬看到了给一段!
嗯。已经看明白了。
框架写得真好,我也正在研究路上。
建议你从app/cta_strategy/strategies/下面随便找一个策略入手,比如:dual_thrust_strategy.py
yexleo wrote:
代码看了两周了, 每天下班抽空就研究,各种调用嵌套,我已经懵了.可是我现在的需求真的很简单, 就想计算两个期货的价格差套利, 下单! 我就想找到 ctp的接口使用方法....哭.
没个半年还想直接上手套利,你知道做套利要改多少东西吗,欲速则不达
哈哈哈,这也算是个比较强的需求了,我们后续会提供一个简单的CLI执行工具来实现这个功能
初看vnpy, 简直要被搞懵逼的, 原来有张数据流程图还不错.
from vnpy.event.eventEngine import EventEngine
from vnpy.trader.vtEngine import MainEngine
from vnpy.trader.vtObject import VtSubscribeReq,VtOrderReq
from vnpy.trader.vtConstant import *
from vnpy.trader.vtEvent import EVENT_TICK
from vnpy.trader.gateway import ctpGateway
def get_tick(event):
print event
tick = event.dict_['data']
print tick
for k,v in tick.__dict__.items():
print k,',',v
def main():
ee = EventEngine()
ee.register(EVENT_TICK,get_tick)
me = MainEngine(ee)
me.addGateway(ctpGateway)
me.connect('CTP')
req = VtSubscribeReq()
req.symbol = 'rb1910'
me.subscribe(req,'CTP')
order_req = VtOrderReq()
order_req.symbol = 'rb1910'
order_req.direction = DIRECTION_LONG
order_req.offset = OFFSET_OPEN
order_req.price = 3800
order_req.priceType = PRICETYPE_LIMITPRICE
order_req.volume = 1
me.sendOrder(order_req,'CTP')
if __name__ == '__main__':
main()
在家下了个2.01 还没能跑起来,就用1.9的写一个吧。
发单的可能有点不对,但基本上是这个套路了。
收tick,初始化引擎,注册事件(vnpy1.9自带的引擎dataEngine 和新的oms都有注册过),登录,订阅,等着就行了。
发单的话,就是做一个发单请求然后传给对应的函数就可以了。
实际用的时候退出的时候要做一个退出的方法,不然反复链接后会出问题(simnow的账号是这样的,实盘还没用过)