接触vnpy一个多月 本着贡献社区的原则 做出一些小贡献吧
程序员喜欢啥 肯定是喜欢对象和API啊 . 无策略可说 想弄的自己去弄
对了感谢板蓝根大佬的细心指导 对我帮助真的超级大 ! (那个改Python3的帖子就是他写的 传送门 )
各位程序员大佬们你们看到vnpy的时候肯定很懵对吧(反正我懵了)我就想弄个行情或者交易的API 的能够操作这个api做些什么事情 可是你在自主运行怎么办
我能怎么办 有人能告诉我 在线等 ......好了不皮了 , 改呗
首先看群主的核心驱动 , 滴滴滴 也就是事件引擎 EventEngine ,这个老牛批了 被称为老司机引擎 的确很老司机.
他里面实现了一个队列 来处理事件 ,应该是考虑到程序化交易随时tick过来触发条件立即去下单,但是在我需求中没那么大 我就想下下单 看看行情 立即获取啥的 ,不想那么复杂 ,那ok 改为事件立即过来立即处理(这里是用于用户操作 足够了 用户的操作频率较低) 对于单个对象 是够用了,代码就不贴了 后面我会在github上开源行情获取的,交易的实现请自行修改
说正事
一个对象要能操作 那么一定他不是阻塞的 也是自由的 他应该有能够存储数据 ,也能够暴露对外的API,那就暂定这个类叫 Marke好吧 , 接下来 他需要去能够和服务器进行交互 的工具 那行 定义一下属性叫mdApi, 然后他需要一个事件引擎 ,来注册事件和数据存取位置 , 那行 叫event_engine, 好了 ,等等还缺什么 我缺交互的API? 没事 群主的mdApi已经提供了 我们只需要在上面加上一层壳就行.
现在整理一下思路 mdApi来进行和服务器的交互 , market 是操作对象 里面存储了数据 和数据存取操作 , event_engine用来驱动行情数据的处理
(群主的思路是 一个mdApi, 一个dataEngine 对象(存储数据) , 一个event_engine引擎, 一个操作对象) 我就不那么专业了
应该没啥问题对吧
(ps :群主的addApp是真的叼 但是我不是需要那么多功能就是了, 迫不得已进行修改的)
数据记录是redis的 用于实时获取 , 毕竟 mongodb数据一多查询数据速度就直降 无法实现大量并发查询 我仅做了ctp的修改实现 其他接口你们按照这个原理也是一样的
使用 :from module.catch import MarketEngine
怎么操作 就不用我说了吧 代码一读 就知道了 ....
github 地址 : github传送门
最后申明一下 这个不适用于高频交易(我把队列删掉了 逃~~~) 可能我的客户需求仅针对于用户操作 如果感觉对你有帮助给我个小小的star哦
交易按照此类改就行了 我相信你能行的~~~
对了 , 订阅是需要手动订阅
后面寒假会抽空做个抽象 越来越觉得群主牛逼 恩就这么多了 希望能帮到你