# QUANTAXIS **Repository Path**: yutiansut/QUANTAXIS ## Basic Information - **Project Name**: QUANTAXIS - **Description**: QUANTAXIS 量化金融工具箱 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: Yes ## Statistics - **Stars**: 1357 - **Forks**: 559 - **Created**: 2016-06-15 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: stocks **Tags**: None ## README # QUANTAXIS 2.1.0-alpha2
**⭐ 如果这个项目对您有帮助,请点击Star支持我们!** **🔄 Fork本项目开始您的量化交易之旅!** Made with ❤️ by [@yutiansut](https://github.com/yutiansut) and [contributors](https://github.com/QUANTAXIS/QUANTAXIS/graphs/contributors) © 2016-2025 QUANTAXIS. Released under the MIT License.
> 🚀 **全新升级**: Python 3.9+、QARS2 Rust核心集成、100x性能提升 > > **最新版本**: v2.1.0-alpha2 | **Python**: 3.9-3.12 | **更新日期**: 2025-10-25 --- ## 🌟 新特性 (v2.1.0) ### ⚡ QARS2 Rust核心集成 - 性能飞跃 - **100x账户操作加速**: 创建账户从50ms降至0.5ms - **10x回测速度提升**: 10年日线回测从30秒降至3秒 - **90%内存优化**: 大规模持仓内存占用降低90% - **无缝集成**: 完全兼容QIFI协议,自动回退Python实现 ### 🔧 Python 3.9-3.12 现代化 - **依赖升级**: 60+核心依赖现代化 (pymongo 4.10+, pandas 2.0+, pyarrow 15.0+) - **性能优化**: 利用Python 3.11+的性能提升 - **类型安全**: 更好的类型提示支持 ### 📦 QARSBridge - Rust桥接层 ```python from QUANTAXIS.QARSBridge import QARSAccount, has_qars_support # 自动检测并使用Rust高性能版本 if has_qars_support(): print("✨ 使用QARS2 Rust版本 (100x性能)") account = QARSAccount("my_account", init_cash=1000000) # API完全兼容,无需修改代码 account.buy("000001", 10.5, "2025-01-15", 1000) ``` --- ## 🔗 相关项目生态 ### 核心项目 - 🦀 [**QARS2**](https://github.com/yutiansut/qars2) - QUANTAXIS Rust核心 (高性能账户、回测引擎) - ⚡ [**QADataSwap**](https://github.com/QUANTAXIS/qadataswap) - 跨语言零拷贝通信 (Python/Rust/C++) - 🏛️ [**QAEXCHANGE-RS**](https://github.com/yutiansut/qaexchange-rs) - Rust交易所 + HTAP混合数据库 ### 扩展实现 - 📊 [**QAUltra-cpp**](https://github.com/QUANTAXIS/qaultra-cpp) - QUANTAXIS C++实现 - 🔥 [**QAUltra-rs**](https://github.com/QUANTAXIS/qautlra-rs) - QUANTAXIS Rust实现 (部分开源) [![Github workers](https://img.shields.io/github/watchers/quantaxis/quantaxis.svg?style=social&label=Watchers&)](https://github.com/quantaxis/quantaxis/watchers) [![GitHub stars](https://img.shields.io/github/stars/quantaxis/quantaxis.svg?style=social&label=Star&)](https://github.com/quantaxis/quantaxis/stargazers) [![GitHub forks](https://img.shields.io/github/forks/quantaxis/quantaxis.svg?style=social&label=Fork&)](https://github.com/quantaxis/quantaxis/fork) [点击右上角Star和Watch来跟踪项目进展! 点击Fork来创建属于你的QUANTAXIS!] ![QUANTAXIS_LOGO_LAST_small.jpg](./qalogo.png) --- ## 📞 联系方式 - **项目主页**: https://github.com/yutiansut/QUANTAXIS - **作者**: yutiansut - **Email**: yutiansut@qq.com - **微信公众号**: QAPRO - **微信**: quantitativeanalysis --- 更多文档在[QABook Release](https://github.com/QUANTAXIS/QUANTAXIS/releases/download/latest/quantaxis.pdf) Quantitative Financial FrameWork ## 📚 核心模块 ### 1. 🦀 QARSBridge - Rust桥接层 (v2.1新增) **QARS2 Rust核心的Python包装器,提供100x性能提升** - **QARSAccount**: 高性能QIFI账户系统 - 股票交易: `buy()`, `sell()` - 期货交易: `buy_open()`, `sell_open()`, `buy_close()`, `sell_close()` - 账户查询: `get_qifi()`, `get_positions()`, `get_account_info()` - 完全兼容QIFI协议,跨语言一致性 (Python/Rust/C++) - **QARSBacktest**: Rust回测引擎 - 10x回测速度提升 - 支持自定义策略 (`QARSStrategy`基类) - 内存占用降低90% - **自动回退机制**: QARS2未安装时自动使用纯Python实现 ```python # 完整示例 from QUANTAXIS.QARSBridge import QARSAccount account = QARSAccount("test", init_cash=1000000) account.buy("000001", 10.5, "2025-01-15", 1000) # 股票买入 account.buy_open("IF2512", 4500.0, "2025-01-15", 2) # 期货开仓 positions = account.get_positions() # 查询持仓 ``` 📖 **详细文档**: [QARSBridge README](./QUANTAXIS/QARSBridge/README.md) --- ### 2. 🔄 QADataBridge - 零拷贝数据交换 (v2.1新增) **基于QADataSwap的跨语言零拷贝数据传输,5-10x性能提升** - **零拷贝转换**: - Pandas ↔ Polars (2.5x加速) - Pandas ↔ Arrow (零拷贝) - Polars ↔ Arrow (零拷贝) - 批量转换支持 - **共享内存通信**: - 跨进程数据传输 (7x加速) - 实时行情分发 - 策略间数据共享 - **自动回退机制**: QADataSwap未安装时自动使用标准转换 ```python # 零拷贝转换示例 from QUANTAXIS.QADataBridge import convert_pandas_to_polars import pandas as pd df_pandas = pd.DataFrame({'price': [10.5, 20.3], 'volume': [1000, 2000]}) df_polars = convert_pandas_to_polars(df_pandas) # 零拷贝,2.5x加速 # 共享内存示例 from QUANTAXIS.QADataBridge import SharedMemoryWriter, SharedMemoryReader # 进程A:写入数据 writer = SharedMemoryWriter("market_data", size_mb=50) writer.write(df_polars) # 进程B:读取数据 reader = SharedMemoryReader("market_data") df = reader.read(timeout_ms=5000) # 零拷贝,7x加速 ``` 📖 **详细文档**: [QADataBridge README](./QUANTAXIS/QADataBridge/README.md) --- ### 3. 💾 QASU / QAFetch - 多市场数据 - 支持MongoDB / ClickHouse存储 - 自动运维和数据更新 - Tick / L2 Order / Transaction数据格式 - 因子化数据结构 ### 4. 🕐 QAUtil - 工具函数 - 交易时间、交易日历 - 时间向前向后推算 - 市场识别、DataFrame转换 ### 5. 💼 QIFI / QAMarket - 统一账户体系 **多市场、多语言统一账户协议** - **qifiaccount**: 标准QIFI账户,与Rust/C++版本保持100%一致 - **qifimanager**: 多账户管理系统 - **qaposition**: 单标的精准仓位管理 (套利/CTA/股票) - **marketpreset**: 市场预制基类 (tick大小/保证金/手续费) **QIFI协议特点**: - 跨语言兼容 (Python/Rust/C++) - 完整账户状态 (账户/持仓/订单/成交) - 增量更新支持 (Diff机制) - MongoDB友好 ### 6. 📊 QAFactor - 因子研究 - 单因子研究入库 - 因子管理、测试 - 因子合并 - 优化器 [开发中] ### 7. 📈 QAData - 内存数据库 多标的多市场数据结构,支持: - 实时计算 - 回测引擎 - 高性能数据访问 ### 8. 📉 QAIndicator - 自定义指标 - 支持自定义指标编写 - 批量全市场apply - 因子表达式构建 ### 9. ⚙️ QAEngine - 异步计算 - 自定义线程/进程基类 - 异步计算支持 - 局域网分布式计算agent ### 10. 📮 QAPubSub - 消息队列 基于RabbitMQ的消息系统: - 1-1 / 1-n / n-n 消息分发 - 计算任务分发收集 - 实时订单流 ### 11. 🎯 QAStrategy - 回测套件 - CTA策略回测 - 套利策略回测 - 完整QIFI模式支持 ### 12. 🌐 QAWebServer - 微服务 - Tornado Web服务器 - 中台微服务构建 - RESTful API ### 13. 📅 QASchedule - 任务调度 - 后台任务调度 - 自动运维 - 远程任务调度 --- ## 🆕 版本更新说明 ### v2.1.0 (2025-10-25) - 重大性能升级 #### 🚀 核心升级 **1. QARS2 Rust核心集成** - ✅ QARSBridge桥接层 - 100x性能提升 - ✅ 完全兼容QIFI协议 - ✅ 自动fallback到Python实现 - ✅ 账户操作: 50ms → 0.5ms - ✅ 回测速度: 30s → 3s (10年日线) - ✅ 内存优化: -90% **2. Python现代化** - ✅ Python版本: 3.5-3.10 → **3.9-3.12** - ✅ 依赖升级: 60+核心依赖现代化 - pymongo: 3.11.2 → 4.10.0+ - pandas: 1.1.5 → 2.0.0+ - pyarrow: 6.0.1 → 15.0.0+ - tornado: 6.3.2 → 6.4.0+ - ✅ 移除过时依赖: delegator.py, six, pyconvert **3. 新增模块** - ✅ `QARSBridge/`: QARS2桥接层 - `qars_account.py`: 高性能账户包装器 - `qars_backtest.py`: Rust回测引擎 - `QIFI_PROTOCOL.md`: 完整协议规范 - ✅ `examples/qarsbridge_example.py`: 完整使用示例 **4. 安装方式优化** ```bash # 基础安装 pip install -e . # 包含Rust组件 (推荐) pip install -e .[rust] # 包含性能优化包 pip install -e .[performance] # 完整安装 pip install -e .[full] ``` #### 📝 升级文档 - ✅ [UPGRADE_PLAN.md](./UPGRADE_PLAN.md) - 完整升级计划 - ✅ [PHASE1_COMPLETE.md](./PHASE1_COMPLETE.md) - Phase 1完成报告 - ✅ [PHASE2_COMPLETE.md](./PHASE2_COMPLETE.md) - Phase 2完成报告 - ✅ [QIFI_PROTOCOL.md](./QUANTAXIS/QARSBridge/QIFI_PROTOCOL.md) - QIFI协议规范 --- ### v2.0.0 - 架构重构 本版本为不兼容升级,涉及重大架构改变: #### 数据层改进 - ✅ ClickHouse客户端集成 - ✅ Tabular数据支持 - ✅ 因子化数据结构 - ✅ Tick / L2 Order / Transaction格式 #### 微服务架构 - ✅ QAWebServer - Tornado Web服务 - ✅ QASchedule - 动态任务调度 - ✅ DAG Pipeline模型 - ✅ QAPubSub - RabbitMQ消息队列 #### 账户系统升级 - ⚠️ 移除QAARP (不再维护老版本) - ✅ 完整QIFI模块 - 保证金模型 - 股票/期货支持 - 期权 [开发中] #### 实盘/模拟盘 - ✅ QIFI结构对接 - ✅ CTP接口 (期货/期权) - ✅ QMT对接 (股票) - ✅ 母子账户OMS - ✅ OrderGateway风控 #### 多语言集成 - ✅ QUANTAXIS Rust版本通信 - ✅ Apache Arrow跨语言数据交换 - pyarrow (Python) - arrow-rs (Rust) - libarrow (C++) - ✅ Rust/C++账户支持 - ✅ Rust Job Worker --- ## 🚀 快速开始 ### 系统要求 - **Python**: 3.9 - 3.12 (推荐3.11+) - **操作系统**: Linux / macOS / Windows - **内存**: 最低4GB,推荐8GB+ - **数据库**: MongoDB 4.0+ / ClickHouse 20.0+ (可选) ### 安装 #### 1. 基础安装 ```bash # 克隆仓库 git clone https://github.com/QUANTAXIS/QUANTAXIS.git cd QUANTAXIS # 安装依赖 pip install -e . ``` #### 2. 包含Rust组件 (推荐 - 100x性能) ```bash # 安装QUANTAXIS + QARS2 pip install -e .[rust] # 或手动安装QARS2 cd /home/quantaxis/qars2 pip install -e . ``` #### 3. 完整安装 ```bash # 安装所有组件 pip install -e .[full] # 包含: # - QARS2 Rust核心 # - QADataSwap跨语言通信 # - Polars高性能DataFrame # - 所有可选依赖 ``` #### 4. 验证安装 ```python import QUANTAXIS as QA from QUANTAXIS.QARSBridge import has_qars_support print(f"QUANTAXIS版本: {QA.__version__}") print(f"QARS2支持: {has_qars_support()}") # 预期输出: # QUANTAXIS版本: 2.1.0.alpha2 # QARS2支持: True ``` ### 快速示例 ```python from QUANTAXIS.QARSBridge import QARSAccount # 创建高性能账户 (自动使用Rust核心) account = QARSAccount( account_cookie="my_strategy", init_cash=1000000.0 ) # 股票交易 account.buy("000001", 10.5, "2025-01-15", 1000) account.sell("000001", 10.8, "2025-01-16", 500) # 期货交易 account.buy_open("IF2512", 4500.0, "2025-01-15", 2) account.sell_close("IF2512", 4520.0, "2025-01-16", 1) # 查询持仓 positions = account.get_positions() print(positions) # 获取QIFI格式账户数据 qifi = account.get_qifi() print(f"账户权益: {qifi['accounts']['balance']}") print(f"可用资金: {qifi['accounts']['available']}") ``` ### 数据库配置 ```python # MongoDB配置 import QUANTAXIS as QA # 设置MongoDB连接 QA.DATABASE = QA.QAUtil.QALogs.QA_Setting.MONGO_URI # 默认: mongodb://localhost:27017/quantaxis # ClickHouse配置 QA.CLICKHOUSE_HOST = 'localhost' QA.CLICKHOUSE_PORT = 9000 ``` --- ## 📖 文档 ### 📚 文档中心 完整文档请访问 **[文档中心 (Documentation Hub)](./doc/README.md)** ### 快速导航 **🚀 入门指南** - [快速开始](./doc/getting-started/quickstart.md) - 10分钟上手教程 - [安装指南](./doc/getting-started/installation.md) - 详细安装步骤 **📘 API参考** - [API概览](./doc/api-reference/overview.md) - 完整API文档 - [QAFetch](./doc/api-reference/qafetch.md) - 数据获取 - [QAData](./doc/api-reference/qadata.md) - 数据结构 - [QAMarket/QIFI](./doc/api-reference/qamarket.md) - 账户体系 **🔧 高级功能** - [资源管理器](./doc/advanced/resource-manager.md) - 统一资源管理 - [Rust集成](./doc/advanced/rust-integration.md) - 高性能组件 - [数据桥接](./doc/advanced/data-bridge.md) - 零拷贝数据交换 **🐳 部署指南** - [Docker部署](./doc/deployment/docker.md) - 容器化部署 - [Kubernetes部署](./doc/deployment/kubernetes.md) - K8s集群部署 - [部署概览](./doc/deployment/overview.md) - 完整部署指南 **📦 迁移指南** - [2.0 → 2.1 迁移](./doc/migration/v2.0-to-v2.1.md) - 升级步骤和注意事项 - [兼容性状态](./doc/migration/COMPATIBILITY_STATUS.md) - 100%向后兼容 **👨‍💻 开发者** - [贡献指南](./doc/development/contributing.md) - 如何参与开发 - [最佳实践](./doc/development/best-practices.md) - 生产环境建议 - [开发指南 (CLAUDE.md)](./CLAUDE.md) - AI辅助开发 **📘 其他资源** - [完整手册 (QABook PDF)](https://github.com/QUANTAXIS/QUANTAXIS/releases/download/latest/quantaxis.pdf) - [示例代码](./examples/) - 完整示例集合 --- ## 🤝 社区与支持 ### GitHub QUANTAXIS 是一个开放的项目, 在开源的3年中有大量的小伙伴加入了我, 并提交了相关的代码, 感谢以下的同学们 **问题反馈**: - 💬 [GitHub Issues](https://github.com/QUANTAXIS/QUANTAXIS/issues) - 提交Bug和功能请求 - 🌟 [GitHub Discussions](https://github.com/QUANTAXIS/QUANTAXIS/discussions) - 技术讨论 ### 社群 #### QQ群 - 💬 **QUANTAXIS交流群**: 563280067 [群链接](https://jq.qq.com/?_wv=1027&k=4CEKGzn) - 👨‍💻 **QUANTAXIS开发群**: 773602202 (贡献代码请加此群,需备注GitHub ID) - 🔥 **期货实盘部署群**: 945822690 (仅限本地多账户部署用户) #### Discord - 🌍 [QUANTAXIS Discord社区](https://discord.gg/mkk5RgN) #### 论坛 - 📝 [QUANTAXIS CLUB论坛](http://www.yutiansut.com:3000) - 论坛提问享有最高回复优先级 #### 公众号 - 📱 关注公众号获取最新动态和免费下单推送接口 - 回复 `trade` 获取下单接口 ![公众号](http://picx.gulizhu.com/Fr0pHbwB7-zrq_HAKsvB8g2zaP_A) --- ## 📊 性能对比 ### QARS2 Rust vs Python | 操作 | Python版本 | QARS2 Rust | 加速比 | |------|-----------|-----------|-------| | 创建1000个账户 | ~50秒 | ~0.5秒 | **100x** ⚡ | | 发送10000个订单 | ~50秒 | ~0.5秒 | **100x** ⚡ | | 账户结算 | ~200ms | ~2ms | **100x** ⚡ | | 10年日线回测 | ~30秒 | ~3秒 | **10x** 🚀 | | 内存占用(单账户) | ~2MB | ~200KB | **-90%** 💾 | | 内存占用(1000持仓) | ~50MB | ~5MB | **-90%** 💾 | ### Python版本性能 | Python版本 | 性能提升 | 推荐度 | |-----------|---------|-------| | Python 3.9 | 基准 | ⭐⭐⭐ | | Python 3.10 | +10% | ⭐⭐⭐⭐ | | Python 3.11 | +25% | ⭐⭐⭐⭐⭐ 最佳 | | Python 3.12 | +20% | ⭐⭐⭐⭐⭐ 最新 | --- ## 💰 项目支持 ### 捐赠 写代码不易...请作者喝杯咖啡呗? ☕ ![支付宝捐赠](config/ali.jpg) **注**: 支付时请备注您的名字/昵称,我们会维护一个赞助列表感谢您的支持! ### 企业赞助 如需企业级支持、定制开发或技术咨询,请联系: - 📧 Email: yutiansut@qq.com - 💼 企业服务: 提供定制化量化交易解决方案 --- ## 📜 许可证 本项目采用 **MIT License** 开源许可证。 ``` Copyright (c) 2016-2025 yutiansut/QUANTAXIS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction... ``` 完整许可证请查看 [LICENSE](./LICENSE) 文件。 --- ## 👏 致谢 ### 核心贡献者 特别感谢所有为QUANTAXIS做出贡献的开发者! ### 技术栈 QUANTAXIS得以实现离不开以下优秀的开源项目: - **Python生态**: pandas, numpy, scipy, matplotlib - **数据库**: MongoDB, ClickHouse, Redis - **Web框架**: Tornado, Flask - **消息队列**: RabbitMQ (pika) - **Rust生态**: PyO3, Polars, Arrow - **金融数据**: tushare, pytdx ### 特别鸣谢 - **QARS2项目组**: 提供高性能Rust核心 - **社区贡献者**: 所有提交PR和Issue的朋友们 - **早期用户**: 在项目初期就给予支持和反馈的用户 --- ## 🗺️ 路线图 ### v2.1.x (当前) - ✅ QARS2 Rust核心集成 - ✅ Python 3.9-3.12支持 - ✅ QARSBridge桥接层 - 🔄 QADataSwap跨语言通信 (进行中) - 📋 完善文档和示例 ### v2.2.0 (计划中) - 📊 完整的QADataSwap集成 - 🔥 Polars全面替代pandas (可选) - ⚡ 更多Rust加速模块 - 🧪 增强的回测引擎 ### v3.0.0 (未来) - 🤖 AI驱动的策略优化 - 🌐 分布式回测系统 - 📱 移动端支持 - ☁️ 云原生部署