期权没有类似simnow的服务器可以仿真调试,又不能像大佬那样直接实盘调试,
就自己做了一个工具,可以在本地播放tick数据,这样就能实现在本机仿真调试了,
现在的效果是:
这里好像不能放附件,我放到网盘去了:
https://pan.baidu.com/s/1sgQtCgk5ivarp8OQFlKvfg
提取码:3pe6
使用方法:
1:把file_gateway放到vnpy的gateway目录下面
2:进入server目录,cmd启动server ,server目录下有我测试用的tick数据和合约配置文件,启动有可以用了
3:进入client目录,cmd启动client
4:在ui界面下链接RPC,再启动OptionMaster
5:设置期权的参数,这里注意一下,配置完,按确定后,UI上可能会有一些卡顿,因为我一次把所有tick数据都加载了,数据量比较大,我测试3月10号一天的数据,就有90M
可以留意看一下server的cmd,可以看到加载数据的详细情况
6:在主界面,“交易”选项下面,代码里输入:Start, 再敲回车, 就开始自动播放tick数据了,这时行情和T型报价应该都有对应的合约在跳动了
这个版本仅仅实现了数据流的播放,发单,撮合等等功能还在弄,有兴趣的朋友可以找我交流
大概原理:
写了一个gateway,调试的时候直接使用这个file_gateway。这里面会加载对应的tick数据,并启动一个线程以流的形式播放出来。
播放的关键是同步tick时间戳,活跃的合约可能全天的时间戳都有数据,但是不活跃的有些时间点就没有数据,需要跳过这些时间,
我实现的方法是用数据最全的合约做baseline,同步播放其他合约
我现在调试的是IO2003,对应的标的是IF2003。
标的合约一般都是最活跃的,所以用IF2003做baseline,其他合约都以他的时间戳来同步播放数据流
具体实现比较简单,有兴趣的可以看看file_gateway里面TickStreamThread的实现,数据播放快慢可以在循环里修改sleep时间
现在功能还比较简单,只能播放数据,有兴趣的朋友可以自己添加,有问题可以来群里找我:老麦