vnpy后台无界面运行的自用教程

 

vnpy个人使用的特点:免费的期货数据源,修改vnpy源码,centos部署,模仿架构师设计的架构。

一切从这段代码入手,专业的量化人员一般是很少需要界面的,界面是给老板看的,

 

 

 

这段代码从vnpy官网是能拿得到的。

每一句我都有去看,源码还是挺精彩的,很明显有架构师理解公司的最终需求,然后操刀的一个架构,有几个优点值得我们学习吧

1、它的evenEngine,是一个死循环,不停的循环消费队列里面的任务,有其他线程有event.put放进这个队列里面,这个做法挺能提升水平的,实现了解耦,我不能理解别人的解耦是为了抽出共同点、创多几个文件

,可能我经验少吧,我是按业务线解耦,就是一条业务线一段代码,哪条业务线出错,哪段代码就出错,不过这个vnpy框架很明显不是这样,他应该从公司的目标去考虑,网关gateway、基类、策略那边等等。

2、读取策略文件那段代码可以学下,用户随便起一个策略文件名,只要继承了基类,都能让系统识别。

3、ontick、onbar的策略合成k线也可以学下,他很简单就合成了,和我之前合成的做法不太一样,虽然合成效果一样,他这个更简单,大概思路是这样的:

(1)第一段代码,他有几个数组,一个数组是open的价格,一共100个,每一个新的来了后,就插到最后,啥都不管,只要你插入后面的位置,就认为你是最新的,就是说,不判断插入的东西是否是最新的,只要插入,数据就有效;

(2)第二段代码,就几行,有几个特点,第一个特点是假如现在是2点44分,那么k线是45分钟的柱子,这是金融常识了,他会插入44分钟柱子的k线数据进第一段代码,就是说最新的45分钟柱子是没有插到数组里面的,你拿macd去求,也是没有最新的一根的,2点45分时,他会有判断   (self.bar.datetime.minute != tick.datetime.minute)   从而插入45分钟的柱子,而现在的k线是44分钟柱子

(3)很简单吧,就这两段代码实现了k线的实时更新,我个人觉得思路挺简单的,挺好。

4、他用了c++,c++那部分代码估计看不到多少了,它的相关逻辑的dll文件我估计都找不到,但有一个思路挺好的,python有多线程是肯定的,c++订阅行情,自己写的c++脚本也是线程,然后行情推给c++线程,c++线程再推给python的on_tick,然后进到evenEngine的队列里面,实现的行情的实时更新,目前我在实现python多线程和c++多线程的交互。

 

 

 

修改源码,插入免费的数据,国内免费的数据其实不多了,汗,也挺愁。

下回分解

 

posted @   毕业到现在的量化之路  阅读(1410)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示