发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2023-01-30
近几年Python社区的热点话题总离不开【性能优化】,在《2022年项目计划》开头期待过的Python官方性能优化计划"Shannon Plan",初步成果已经能看到(以下数据来自Python官方,仅供参考):
- Python 3.11对比Python 3.10的平均性能提升25%
- 不同基准测试下的提升范围在10-60%
- 具体细节可以参考Python官方的这篇《Faster CPython》
大神Sam Gross去年已经通过nogil项目成功证明了移除GIL的可行性,但由于社区生态中诸多包和模块都深度融合使用了GIL(这里包括VeighNa的一系列C++交易接口封装),简单粗暴的一次性移除GIL可能会对社区生态造成负面影响(毕竟没人想再体会类似Python2->Python3升级的痛苦)。
就在2023年1月,Sam Gross创建了一个新的提案PEP 703,其中提出将GIL作为Python编译时的可选项(不想看太长英文的同学推荐OSChina的这篇)。如果该提案得到了通过,那么后续发布的Python将会分为两个版本:暂时无法升级或者依赖库较多的项目可以继续使用【包含GIL】的版本,而追求性能的项目则可以升级到【移除GIL】的版本上充分利用CPU多核算力(升级需要重新修改编译pyd扩展)。
PEP 703能否得到Python社区的接受,以及如果接受具体会在哪个版本中发布,暂时都还无法确定。基于上述情况,VeighNa项目在后续3.0大版本迭代周期中,核心支持会依旧保持在Python 3.10上,接下来对2023年主要工作方向做个梳理。
优化跨平台支持
几年前做的一次调查投票里,VeighNa社区中主力使用Windows系统的用户占比大概是80%上下。得益于Python生态本身的跨平台优势,VeighNa项目中纯Python的部分(包括核心引擎、UI界面、投研回测等)从诞生之初就可以实现Windows、Linux和Mac系统上的运行,但涉及到C++封装的交易接口部分则由于用户数量的关系许多只提供了Windows支持。
去年12月的时候又组织了一次关于【大家主要用什么操作系统和电脑硬件运行VeighNa平台】的调查投票,投票人数共计637人(不算特别多,但应该比较有代表性了),结果如下:
刚看到这个数据的时候可以说是相当惊讶:
- 主力使用Linux和Mac系统的用户加起来有53%,已经超越了使用Windows系统的用户(47%);
- 使用云服务器、硬件服务器、工作站这些服务端硬件的用户,占比累计也有了41%(接近一半)。
随后的第一反应是:VeighNa社区用户的平均编程开发水平比起几年前已经显著提升,毕竟POSIX体系的操作系统(Linux、Mac)上做开发的门槛还是高于Windows不少,同时愿意花贵得多的成本购买服务器和工作站大概率还是交易方面确实有了刚性需求。
所以今年计划大幅优化VeighNa项目的跨平台支持,目前准备中的内容包括:
提供Linux和Mac上的集成化环境(类似Windows系统上VeighNa Studio),例如:
- Docker支持(上周论坛里已经有【eis】同学贡献了一套带UI界面的3.5.0镜像);
- Poetry/PDM虚拟环境方案;
完善交易接口封装部分的跨平台支持,例如:
- Linux上的各类交易接口;
- Mac上的CTP接口(目前上期技术已经提供了Mac API);
围绕Linux和Mac上量化环境搭建和VeighNa使用相关的文章资料和社区活动。
由于团队精力有限,对Linux系统发行版的支持会限制在【Ubuntu 22.04 LTS】,使用其他发行版的同学可以参考后自行修改。
继续保持兼容性
随着VeighNa项目的整体架构趋于稳定,去年版本迭代的过程中比较好的保持了代码兼容性:使用2.9版本开发的策略代码基本可以$改直接迁移到3.0后续新版本上运行。
同样在今年开发工作中也会优先考虑保持兼容性,降低已经进入实盘交易环节的用户向新版迁移的成本。
组织更多社区活动
今年会投入更多精力在VeighNa社区活动组织上:策略研究分享、交易系统架构、量化编程开发等等。非常期待和一年多没见的朋友们重新相聚,明天就会开放首场活动的报名,名额有限,欢迎关注!
最后:2023,Enjoy Trading!!!