QUANTAXIS 2.0 升级计划
制定时间: 2025-10-25 制定者: @yutiansut @quantaxis 目标版本: QUANTAXIS 2.1.0
📊 升级概览
核心目标
Python 版本: 3.5-3.10 → 3.9-3.12
深度整合 QARS2 (Rust核心)
集成 QADataSwap (跨语言通信)
对接 QAEXCHANGE-RS (交易所系统)
依赖现代化 + 性能优化
生态系统架构
┌─────────────────────────────────────────────────────────┐
│ QUANTAXIS Python (主项目) │
│ 策略开发 | 回测 | 数据分析 | Web服务 │
└──────────────┬──────────────────────────────────────────┘
│ PyO3 Bindings
↓
┌──────────────────────────────────────────────────────────┐
│ QARS2 (Rust核心) │
│ 高性能账户 | 回测引擎 | 零拷贝IPC | Polars数据处理 │
└──────────────┬──────────────────────────────────────────┘
│ QADataSwap (零拷贝)
↓
┌──────────────────────────────────────────────────────────┐
│ QAEXCHANGE-RS (交易所系统) │
│ 撮合引擎 | WebSocket | WAL存储 | 行情推送 │
└──────────────────────────────────────────────────────────┘🎯 Phase 1: 基础环境升级 (1-2天)
1.1 Python版本更新
文件: setup.py
验证:
1.2 核心依赖升级
文件: requirements.txt
数据库层
数据处理层
Web/异步层
金融分析层
新增: Rust集成
其他优化
1.3 兼容性测试
测试脚本: scripts/test_dependencies.py
执行:
🔧 Phase 2: QARS2 深度集成 (2-3天)
2.1 创建QARS桥接模块
新建: QUANTAXIS/QARSBridge/__init__.py
新建: QUANTAXIS/QARSBridge/qars_account.py
2.2 QADataSwap集成
新建: QUANTAXIS/QADataSwap/__init__.py
新建: QUANTAXIS/QADataSwap/market_publisher.py
2.3 QAEXCHANGE-RS对接
新建: QUANTAXIS/QAExchange/__init__.py
📊 Phase 3: 数据层优化 (2-3天)
3.1 Polars数据结构支持
新建: QUANTAXIS/QAData/QADataStruct_Polars.py
3.2 ClickHouse优化
修改: QUANTAXIS/QAFetch/QAClickhouse.py
📚 Phase 4: 文档优化 (1-2天)
4.1 更新CLAUDE.md
追加: QUANTAXIS/CLAUDE.md
使用QARS账户 (比纯Python快10-100倍):
性能对比:
创建账户
50ms
0.5ms
100x
发送订单
5ms
0.05ms
100x
结算
200ms
2ms
100x
回测(10年日线)
30s
3s
10x
QADataSwap - 跨语言零拷贝
场景: Python策略 → Rust回测引擎 → C++风控系统
QAEXCHANGE-RS - 模拟交易所
启动交易所:
Python连接:
用途:
策略回测 (真实撮合逻辑)
模拟交易 (学习/测试)
算法开发 (无风险环境)
Polars数据结构
为什么使用Polars:
速度比Pandas快5-10倍
内存占用少50%
原生Rust实现,与QARS2无缝集成
支持大数据集 (>100GB)
示例:
跨语言开发指南
Python → Rust 数据传递
方法1: PyO3直接调用
方法2: QADataSwap共享内存
方法3: Arrow IPC
性能优化建议
热点路径使用Rust: 账户计算、指标计算、回测引擎
Python做粘合剂: 策略逻辑、参数调整、结果展示
Polars替代Pandas: 大数据集、频繁计算场景
共享内存通信: 实时行情、高频策略
迁移指南: QIFI_Account → QARSAccount
完全兼容
性能对比测试
数据互操作
examples/rust_integration/ ├── 01_qars_account_basic.py # QARS账户基础用法 ├── 02_polars_data_processing.py # Polars数据处理 ├── 03_dataswap_pubsub.py # 跨语言通信 ├── 04_qaexchange_trading.py # 模拟交易所对接 ├── 05_performance_comparison.py # 性能对比测试 └── README.md # 示例说明
5.2 性能基准测试
新建: benchmarks/rust_vs_python.py
📦 Phase 6: 部署与发布 (1天)
6.1 更新setup.py
6.2 CI/CD配置
修改: .github/workflows/pythonapp.yml
6.3 发布
🎯 总结
升级时间线 (总计: 9-14天)
1
基础环境升级
1-2天
开发团队
2
QARS2集成
2-3天
核心开发
3
数据层优化
2-3天
数据组
4
文档更新
1-2天
文档组
5
测试验证
2-3天
QA
6
部署发布
1天
DevOps
预期收益
性能提升:
账户操作: 100x 加速
数据处理: 5-10x 加速
回测速度: 10-20x 加速
内存占用: -40%
功能增强:
✅ 跨语言零拷贝通信
✅ 模拟交易所完整支持
✅ Polars大数据处理
✅ Rust高性能组件
兼容性:
✅ 向后兼容QIFI协议
✅ 渐进式迁移 (可选Rust组件)
✅ Python 3.9-3.12支持
📝 注意事项
破坏性变更
Python版本: 不再支持3.5-3.8
依赖最低版本: pymongo 4.x, pandas 2.x等
API变化: 部分内部API调整 (公开API兼容)
迁移建议
渐进迁移: 先升级依赖,再逐步启用Rust组件
性能测试: 关键路径先做基准测试
文档先行: 更新文档后再推广使用
风险控制
Phase 1完成后创建git tag:
v2.1.0-phase1每个Phase完成后运行完整测试套件
保留Python实现作为fallback
版本: v1.0 最后更新: 2025-10-25 作者: @yutiansut @quantaxis
Last updated
Was this helpful?