# qy-jalgotrade **Repository Path**: qycgeorgel/qy-jalgotrade ## Basic Information - **Project Name**: qy-jalgotrade - **Description**: 使用 Java 重写并加强版本的 PyAlgoTrade (0.20, 20180820, http://gbeced.github.io/pyalgotrade/) - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-05-07 - **Last Updated**: 2025-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: 量化交易, A股, quant ## README # qy-jalgotrade #### 介绍 使用 Java 重写并加强版本的 PyAlgoTrade (0.20, 20180820, http://gbeced.github.io/pyalgotrade/) I. 对原版 PyAlgoTrade 进行了加强: 1. 添加了针对中国权益以及期货市场的支持: 交易日历, Wind 和 tushare 格式历史行情数据以及大量相应的历史数据整理工具 2. 加强了 pyalgotrade.dispatcher.Dispatcher 类: 添加了 preDispatchSubject() 过程以更好的支持多周期策略回测和实时盯盘 3. 修复了原版 pyalgotrade.optimizer.base 模块中的 bug, 以支持策略优化时一次性传入多组优化参数 4. 恢复了 0.18 版本的 xignite barfeed 并基于其实现 tushare, Wind, CTP 和 XTP 实时行情 BarFeed, 适用于策略实时盯盘 4. 其他针对中国市场的加强: 包括策略信号语音提示等实用特性请参见加强版本 PyAlgoTrade 可直接向作者索取, 后续整理完毕后入代码库 II. 使用 Java 重写: 1. 策略回测性能较原版 PyAlgoTrade 提高了 8X 以上, 大大减少了复杂策略参数优化的时间消耗 2. DataSeries 底层数据存储可根据 BarFeed 数据类型选用相应的 FastUtil Primitive ArrayList, 保证回测性能 3. 支持策略内部状态监视, 方便日内交易盯盘 (qy.qyalgotrader.view.swing.SwingPullView) 4. 投资组合净值实时揭示: 实时绘图 qy.qyalgotrader.utils.plotter.RealtimeStrategyPlotter III. 定位以及后续版本规划: 1. PyAlgoTrade 架构简单清晰, 实现了基础的策略开发, 回测/参数优化, 策略回测时甚至支持简单的冲击成本模拟, 稍加定制可实现实时盯盘, 很适合作为自主研发量化交易系统的原型; 2. 但 PyAlgoTrade 用于中国市场必须先定制开发, 且其现有事件处理模型偏简单, 或难以直接用于超大规模/超高频量化交易场景 3. 受 python 性能所限, 以及业界高实时高可用系统设计开发实践经验, 将 PyAlgoTrade 加强并归顺 Java 或可扩展其受众, 为有志于开展量化交易研究和实践的个人以及中小量化机构提供一些帮助 4. 后续版本规划主要两条主线: a. 进一步增强实盘易用性, 包括更强大策略状态监视绘图功能 b. 加强国内量化交易和行情接口 (CTP等) 对接 c. 原版 PyAlgoTrade DataSeries 结构简单, 适合高效进行单品种择时策略研究, 不支持横截面数据因此无法进行多因子模型研究, 长期版本或考虑使用 DJL (https://github.com/deepjavalibrary/djl) 等库实现底层数据重构 IV. 实用功能示例: 1. 开发示例策略以及自定义技术指标: qy.qyalgotrader.mystrategy, qy.qyalgotrader.technical 2. 策略回测及参数优化: 参见 qy.qyalgotrader.mystrategy.MacdTraderTest 3. 策略内部状态实时监控: 参见 qy.qyalgotrader.mystrategy.monitor.CdtsTraderMonitorTest 对 qy.qyalgotrader.view.swing.SwingPullView 的使用 4. 组合日内净值监控: 参见 qy.qyalgotrader.mystrategy.monitor.PortfolioValuationMonitorTest 对 qy.qyalgotrader.utils.plotter.RealtimeStrategyPlotter 的使用 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)