发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2023-04-19
 

近几个月,可能许多VeighNa社区用户或多或少都听过了【VeighNa Elite】或者【VeighNa菁英版】的名字(下文简称Elite版)。经过半年多的迭代打磨,Elite版已经于3月底正式发布上线,在此对之前参加内测的用户表示衷心感谢。

 

产品定位

 

作为面向专业交易员推出的量化交易终端产品,Elite版在开源版VeighNa量化平台的基础上针对性能、功能和稳定三个方面做出了许多优化:

description

具体的优化细节将会在下文中介绍,这里也对VeighNa量化平台现有的三层产品体系做个简单的梳理:

description

  • 开源版:定位于开放式的量化开发框架,采用开源软件的形式覆盖尽可能广泛的量化交易场景(包括各类金融市场以及各类量化策略),同时基于社区反馈快速迭代;
  • Elite版:定位于标准化的量化交易终端,结合对核心交易场景的功能性能优化和稳定的支持服务,帮助专业交易员更好地专注于交易本身,无需再担心IT相关问题;
  • 定制版:定位于定制化的量化解决方案,针对机构交易团队在量化业务中的各种协同作战需求,提供包括系统开发和技术咨询在内的整体化服务,通常需要专业IT人员参与。

 

系统架构

 

由于Python的GIL全局锁限制,VeighNa平台在单进程的情况下仅能利用CPU单核的算力,所以通常建议开源版中每个VeighNa进程运行CTA策略的数量在20-50的范围内(具体取决于CPU主频和策略计算开销),超过该范围后可能造成Tick-2-Trade延时出现显著的增加。

尽管nogil项目已经被提上了Python 3.12的开发计划,但具体发布时间还有挺大的不确定性。为了在保证Tick-2-Trade延时的情况下,尽可能满足专业交易员在策略并发数量上的需求,Elite版采用了类似Chrome浏览器的多进程架构设计:

description

通过将开销较大的计算逻辑拆分到独立进程的方式,实现对当今多核心CPU算力的充分利用,并且在系统核心引擎层的算法性能方面也进行了优化:

description

在使用体验上,Elite版保持了和开源版高度一致的客户端运行模式,双击桌面图标即可直接启动运行,对于老用户来说可以几乎无感上手,而无需担心服务端系统(定制版)中较为繁琐的专业化运维流程。

 

量化策略

 

之前有不少社区用户提交过围绕国内市场专有行情和交易规则的代码修改PR(如非交易时段的Tick过滤、K线合成器对商品期货上午15分钟休息的处理等),但由于前文提到开源版对于各类金融市场的广泛覆盖,这些PR并没有合并到开源仓库中,而是保留在了论坛帖子里供有需要的用户自行学习修改。

description

作为面向专业交易员的Elite版,覆盖范围上聚焦在三大主流量化市场(期货、期权、证券),因此策略引擎层面也做了相应的适配调整(如基于品种交易时段配置文件的行情Tick过滤等)。

description

在策略开发方面,Elite版也提供了许多额外的功能:

  • 基于自动化K线缓存容器HistoryManager的on_history回调函数,用户无需再自行维护BarGenerator和ArrayManager,并且HistoryManager支持快速生成DataFrame对象,满足许多用户对于pandas算法的需求;
  • 稳健优化指标【R-Cubed】,由《海龟交易法则》的作者柯蒂斯提出,相对夏普比率等传统优化指标,更能够代表策略的长期收益情况,减少回测优化中的过度拟合问题,详细介绍可参考这篇文章
  • 目标仓位算法交易执行机制,保证策略状态可以完全基于历史行情来回放计算,不必再担忧由于策略状态数据缓存文件(cta_strategy_data.json)损坏导致的交易中断;
  • 从策略核心代码中剥离交易执行逻辑,当交易金额(合约手数)较大容易对市场产生冲击时,可以调用内置的交易算法自动拆单执行。

 

算法执行

 

Elite版中整合了标准化算法交易功能,用户可以直接在主界面快速启动算法执行各种智能化的交易任务:

description

通过位于数据监控区域的算法监控组件,可以直观跟踪当前算法的执行状态,并支持随时【暂停】或者【停止】:

description

现有版本中已经提供AlgoTrading模块中的被动类算法,后续也计划接入其他三方算法供应商提供的主动类算法,满足更多专业交易员场景下的执行需求。

 

移仓助手

 

对于许多使用VeighNa开源版运行CTA策略交易的用户来说,每当遇到主力合约切换的交易日都要经历一段比较麻烦的操作,整体上要完成的四个步骤包括:

  • 平仓老的主力合约
  • 开仓新的主力合约
  • 销毁老的策略实例
  • 创建新的策略实例

尽管在CTA策略模块中提供了【移仓助手】功能,但每次只能执行一个合约上的移仓操作,且采用的同步下单模式有时会出现移仓瘸腿或者滑点较大的情况。

基于多进程的系统架构,Elite版重新实现了【移仓助手】功能,支持多合约批量并发移仓任务。同时采用价差算法来执行移仓交易,用户可以自行设置每个合约上的移仓数量和委托上限等参数,有效避免移仓中的瘸腿情况并降低整体的滑点成本。

description

开始移仓任务前,会自动弹出确认执行移仓信息的对话框,方便检查各参数是否设置正确,避免误操作的风险:

description

 

多账户支持

 

对于专业交易员群体中普遍的多账户交易需求,Elite版提供了完善的功能支持。用户可以在登录启动程序时,加载多个VeighNa交易接口并配置对应的交易账号,每个接口可以指定自定义名称,方便在交易过程中的监控识别。

description

Elite版同时也提供了【多账户批量下单】功能,用户可以根据需求任意创建下单账户组合,并为组合中的每个账户分配独立的下单比例,满足不同资金水平和风险偏好下的多账户交易需求:

description

 

深度交易

 

在围绕订单流交易(Order-Flow Trading)的领域,【市场深度交易下单】是一种广为使用的交易功能,在不同软件中的名字出入可能比较大:

  • TT Platform的MD Trader
  • MultiCharts的DOM
  • IB TWS的Book Trader

description

整体上看,深度交易的核心功能包括:

  • 以订单簿(order book)表格的形式来清晰展现市场当前的行情信息,尤其是各买卖档位上的挂单情况;
  • 交易员可以在上述订单簿中,直接点击(或者双击)某个单元格来实现在该档价格上的快速委托下单和撤单;
  • 相关的多账户组合交易、持仓数据跟踪、快速批量撤单等辅助类的交易支持功能。

Elite版当前已经支持单合约的深度交易,后续计划增加对价差交易(SpreadTrading)中的价差组合支持。

 

Elite会员服务

 

目前Elite版仅作为【VeighNa Elite会员服务】的专属权益提供,其他会员权益包括:

  • 全实战进阶小鹅通店铺中的线上系列课程;
  • VeighNa社区官方活动(包括历史回看);
  • 期货分钟级历史数据服务(日内更新);
  • 专属微信服务群,及时解决使用中的各类问题;
  • 小班特训营优先报名通道以及7折优惠价格。

Elite会员服务的年费价格为9999元,感兴趣的同学可以直接扫描下方二维码,或者点击公众号菜单栏的【社区交流】->【Elite会员服务】:

description