== 概述 ==
德波量化(DEALBOT)项目研发始于2015年,初衷是建立一个可以自己编写交易策略,又可以自动化交易的小软件。为了这个目的,广泛搜寻了现有的开源量化交易软件,包括国外的Backtrader、zipline、Pysystemtrade,国内的Vnpy、海风CTP等。反复比较,最终选择了VNPY做为主要参照,原因是架构简明、概念清晰,变量命名也符合中国人的思维习惯。
但在深入使用后仍发现诸多难以逾越的障碍,例如:
1. 事件机制导致无法使用向量计算,参数空间稍大一点,计算效率太低
2. 行情数据主要依赖第三方平台,长时间全市场回测缺乏高质量数据
3. 回测引擎撮合机制存在漏洞,长时间跑策略可能导致仓位计算不一致
4. 可视化分析太弱,分析指标太少,无法满足深度评估模型效果需要。
鉴于此,不得不自己想办法开发一套满足如下需求的软件:
1. 拟涵盖行情、指标、策略、回测(优化)、可视化和交易六大板块
2. 充分整合已有优秀成果,比如vnpy封装的交易通道,BackTrader的回测系统构思,pyfolio的图表分析等
3. 多机多核多进程高并发的回测优化引擎,支持多模型、多参数、多合约、多周期进行回测分析,并且能保存结果
4. 支持多种交易环境参数设置,部分参数可并入回测参数中,方便做比较分析。
== 目前已完成: ==
一、行情板块
1. 目前已实现从sina、jsy、tdx、csv、h5、parquet、sqlite、postgresql等获取和整合历史数据
2. 日盘15分钟间隔处理,夜盘日期偏移处理
3. 分钟Bar在任意频度级别上的聚合, 如N分钟,N小时,N日,N周等
4. 支持增量更新和备份,采用存取效率都很高的Parquet格式
5. 支持主力合约连续,并且可自定义复权方式(不复权,前复权,后复权,复权又分按比例和按价差两种)
6. 支持价差合约和投资组合定义,可分别给不同合约设定不同的权重,包括多空方向
二、指标板块
1. 参照通达信、文华函数库,构建了一套先对人性化的公式系统
2. 保留向量计算的时间索引,方便后续做更高级别的聚合(有别于Vnpy的ArrayManager)
三、策略板块
1. 从策略模型中分拆出交易信号,方便日后转换为多因子
2. 交易信号支持向量级回测,可以配套自研的高并发多进程回测引擎
3. 以单个壳策略文件嵌入VNPY环境运行,通过配置参数来使用不同的信号模型
4. 改造vnpy的回测引擎以及策略引擎,使支持本地数据无缝接入
5. 支持主力合约连续交易以及移月换约操作
四、回测(优化)板块
1. 多机多核多进程高并发分布式计算引擎(原打算用Ray替换,发现涉及到中间产生Pandas就会报错)
2. 回测结果自动存储云端数据库,方便做进一步的统计分析比较
3. 更加丰富的回测指标,包括:资金/成本/回撤、逐笔盈亏、持仓周期、多空对比、盈亏对比、前瞻分析等
五、可视化板块
1. 参数高原三维图分析
2. K线叠图分析
3. 资金/成本/回撤曲线
4. pyfolio图表分析
六、交易板块
1. 目前仍然主要依托Vnpy进行交易
2. 增加了丰富的交易环境参数,包括:止盈止损、信号过滤、仓位策略、成交价策略、时点策略、费率等等
3. 支持冲击成本价计算
4. 支持移月换约
5. 支持动态补充最新K线
6. 支持动态保存和恢复策略参数 7. 支持交易记录导出
== 未来计划: ==
1. 构建在线版策略编排和回测,同时增加在线可视化分析功能
2. 多因子研究和利用平台
3. 支持机器学习模型
欢迎量化同行交流!微信号:wakeblade(顽刀)