QUANTAXIS 2.0 升级计划

制定时间: 2025-10-25 制定者: @yutiansut @quantaxis 目标版本: QUANTAXIS 2.1.0


📊 升级概览

核心目标

  1. Python 版本: 3.5-3.10 → 3.9-3.12

  2. 深度整合 QARS2 (Rust核心)

  3. 集成 QADataSwap (跨语言通信)

  4. 对接 QAEXCHANGE-RS (交易所系统)

  5. 依赖现代化 + 性能优化

生态系统架构

┌─────────────────────────────────────────────────────────┐
│                 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倍):

性能对比:

操作
Python版本
Rust版本
加速比

创建账户

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

性能优化建议

  1. 热点路径使用Rust: 账户计算、指标计算、回测引擎

  2. Python做粘合剂: 策略逻辑、参数调整、结果展示

  3. Polars替代Pandas: 大数据集、频繁计算场景

  4. 共享内存通信: 实时行情、高频策略


迁移指南: 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天)

Phase
任务
时间
负责人

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支持


📝 注意事项

破坏性变更

  1. Python版本: 不再支持3.5-3.8

  2. 依赖最低版本: pymongo 4.x, pandas 2.x等

  3. API变化: 部分内部API调整 (公开API兼容)

迁移建议

  1. 渐进迁移: 先升级依赖,再逐步启用Rust组件

  2. 性能测试: 关键路径先做基准测试

  3. 文档先行: 更新文档后再推广使用

风险控制

  • Phase 1完成后创建git tag: v2.1.0-phase1

  • 每个Phase完成后运行完整测试套件

  • 保留Python实现作为fallback


版本: v1.0 最后更新: 2025-10-25 作者: @yutiansut @quantaxis

Last updated

Was this helpful?