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++多线程的交互。
修改源码,插入免费的数据,国内免费的数据其实不多了,汗,也挺愁。
下回分解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述