ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

QUANTAXIS 2.1 文档中心全解析:从入门到分布式部署的量化解决方案

QUANTAXIS 2.1 文档中心全解析:从入门到分布式部署的量化解决方案 QUANTAXIS 2.1 文档中心全解析从入门到分布式部署的量化解决方案【免费下载链接】QUANTAXISQUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案项目地址: https://gitcode.com/gh_mirrors/qu/QUANTAXISQUANTAXIS 是一套支持任务调度、可分布式部署的纯本地量化解决方案覆盖股票、期货、期权等品种的数据获取、回测、模拟、交易、可视化与多账户管理。本文以仓库 doc/README.mdQUANTAXIS 2.1 文档中心为核心骨架逐层剖析其文档体系、学习路径与各模块技术要点并结合 QUANTAXIS/ 源码目录与 docker/ 部署资源帮助读者快速建立从入门到生产部署的完整认知并掌握检索与使用这份官方文档的正确姿势。文档中心概览一份面向搜索与导航的技术索引doc/README.md是 QUANTAXIS 2.1 文档中心的入口标注版本为2.1.0-alpha2更新日期2025-10-25作者为 yutiansut 与 quantaxis。它本身并不深入讲解某一具体功能而是扮演总索引角色把分散在doc/目录下的全部主题文档组织成八大板块板块覆盖主题对应目录 入门指南 (Getting Started)安装、快速开始doc/getting-started/ 用户指南 (User Guide)数据获取、策略开发、回测、实盘doc/user-guide/ API 参考 (API Reference)QAFetch、QAData、QAMarket、QIFI 等doc/api-reference/ 高级功能 (Advanced)资源管理器、Rust 集成、数据桥接doc/advanced/ 部署指南 (Deployment)部署概览、Docker、Kubernetesdoc/deployment/ 开发指南 (Development)贡献指南、最佳实践、代码规范doc/development/ 迁移指南 (Migration)2.0 → 2.1 迁移、兼容性状态doc/migration/ QABookPDF 技术手册与 LaTeX 编译doc/qabook/此外doc/SUMMARY.md 给出了与 README 完全一致的完整文档目录树mdbook 风格并将附录常见问题 FAQ、术语表、版本历史也纳入导航体系是定位文档的第二个入口。从技术实现看这套文档与源码高度对应doc/中出现的每个模块名都能在源码目录 QUANTAXIS/ 中找到同名实现例如 QAFetch 对应 QUANTAXIS/QAFetch/数据抓取、QIFI 对应 QUANTAXIS/QIFI/统一账户协议、QAData 对应 QUANTAXIS/QAData/数据结构、QAEngine 对应 QUANTAXIS/QAEngine/异步引擎、QAPubSub 对应 QUANTAXIS/QAPubSub/消息队列。也就是说阅读文档中心时随时可以下沉到同名源码目录做交叉验证——这正是本文后面各节反复强调的文档 源码对照阅读法。推荐学习路径三个阶段的循序渐进文档中心给出了一条明确的三阶段学习路径这是普通用户使用 QUANTAXIS 最值得参考的路线图初学者1-2 周先读 安装指南 完成环境搭建再按 快速开始 跑通第一个程序随后进入数据获取与回测系统。进阶2-4 周专注策略开发与实盘交易同时掌握资源管理器doc/advanced/resource-manager.md与 Docker 部署doc/deployment/docker.md。高级4-8 周深入 Rust 集成doc/advanced/rust-integration.md与 Kubernetes 部署doc/deployment/kubernetes.md最后参与社区贡献。这条路径的底层逻辑与 QUANTAXIS 的本地优先 高性能扩展架构一致先掌握纯 Python 核心能力再借助 Rust 组件与分布式部署解决性能与规模问题。安装与快速开始进入 QUANTAXIS 的第一公里环境要求根据 安装指南操作系统LinuxUbuntu 18.04/CentOS 7与 macOS 10.14 完全支持Windows 10/11 部分支持生产环境推荐 Ubuntu 20.04/22.04。Python支持 3.9 / 3.10 / 3.11 / 3.123.8 及以下不再支持——这一点在源码中也有印证QUANTAXIS/__init__.py中版本号即为2.1.0.alpha2。硬件开发/学习 2 核 4GB 20GB回测/研究 4 核 8GB 100GB生产交易 8 核 16GB 500GB SSD。四种安装方式方式命令适用场景基础安装pip install quantaxis初学者含核心数据结构、数据获取、回测、因子分析不含Rust 高性能组件完整安装推荐pip install quantaxis[rust]追求性能额外获得 QARS2 Rust 账户文档标注 100x 加速、QADataSwap 零拷贝传输、Polars 支持开发者安装pip install -e .[dev]或pip install -e .[rust,dev]需要修改源码或贡献代码附带 pytest/pylint/black/mypyDocker 安装docker pull quantaxis/quantaxis:latest后docker run -it -p 8888:8888 ...快速部署与隔离环境值得注意源码 QUANTAXIS/init.py 第 38-52 行通过try: import qars3与try: import qadataswap在包导入阶段就完成了 Rust 组件可用性检测并设置__has_qars__、__has_dataswap__标志。这意味着无论是否安装 Rust 组件QUANTAXIS 都能正常导入只是在性能组件缺失时自动降级到 Python 实现——这与文档中完整安装包含高性能组件、基础安装自动降级的描述完全吻合。依赖体系核心依赖pandas ≥ 1.1.5、numpy ≥ 1.12.0、pymongo 3.11.2、requests ≥ 2.14.2、lxml ≥ 3.8.0、tornado ≥ 6.3.2。数据源依赖tushare ≥ 1.2.10、pytdx ≥ 1.67、akshare多源聚合。可选高性能组件qars3Rust 账户引擎、qadataswap ≥ 0.1.0零拷贝传输、polars ≥ 0.20.0、pyarrow ≥ 15.0.0。可视化与分析matplotlib、seaborn、plotly、empyrical机器学习scikit-learn、statsmodels、alphalens。这些数据源依赖对应源码中的抓取器实现例如 QUANTAXIS/QAFetch/QATdx.py通达信 pytdx、QUANTAXIS/QAFetch/QATushare.py、QUANTAXIS/QAFetch/QAAkShare.py 等。数据库配置与安装验证QUANTAXIS 以 MongoDB 为主数据存储文档给出了 Linux/macOS/Windows 三平台的安装方法以及创建quantaxis库和读写用户的db.createUser脚本。安装完成后可用三段式验证脚本确认环境健康# 1) 基础验证导入与版本 import QUANTAXIS as QA print(QA.__version__) # 2.1.0.alpha2 from QUANTAXIS import QA_fetch_get_stock_day, QA_DataStruct_Stock_day, QIFI_Account # 2) Rust 组件验证 from QUANTAXIS.QARSBridge import has_qars_support from QUANTAXIS.QADataBridge import has_dataswap_support print(has_qars_support(), has_dataswap_support()) # 3) 数据库连接验证 from QUANTAXIS.QAUtil import DATABASE print(DATABASE.stock_day.find_one())数据获取与数据结构QA_fetch 与 QA_DataStruct 两大支柱QA_fetch 数据获取 APIAPI 概览 归纳了数据获取层的核心函数全部以QA_fetch_前缀命名股票QA_fetch_get_stock_day(code, start, end)、QA_fetch_get_stock_min(code, start, end, frequence1min)、QA_fetch_get_stock_list()其中frequence支持1min/5min/15min/30min/60min分钟数据返回包含 open/high/low/close/volume 等字段的 DataFrame。期货QA_fetch_get_future_day(code, start, end)、QA_fetch_get_future_min(code, start, end, frequence1min)合约代码形如IF2512。指数QA_fetch_get_index_day(code, start, end)。这些函数的实际实现位于 QUANTAXIS/QAFetch/ 目录典型的调用链是顶层函数 → 数据源抓取器如 QATdx/QATushare/QAAkShare→ MongoDB 缓存 → 返回标准化 DataFrame。值得强调的是 QUANTAXIS 的本地优先设计抓取的数据默认写入本地 MongoDB后续重复请求直接命中缓存这正是纯本地量化方案的性能基础。QA_DataStruct 数据结构获取到的裸 DataFrame 会被封装进面向量化场景的数据结构data QA.QA_DataStruct_Stock_day(df) # 股票日线 data_future QA.QA_DataStruct_Future_day(df) # 期货日线属性data原始 DataFrame、index时间索引、code股票代码列表。方法select_time(start, end)选择时间范围、select_code(code)筛选个股、pivot(column)数据透视、add_func(func)挂载自定义计算函数分钟级结构QA_DataStruct_Stock_min额外提供resample(frequence)频率重采样。源码实现见 QUANTAXIS/QAData/QADataStruct.py核心数据结构与 QUANTAXIS/QAData/data_resample.py重采样逻辑。这些结构统一了不同品种、不同频率的数据访问接口后续回测、因子分析、可视化都建立在这一层之上。QIFI 统一账户协议股票/期货/期权的账户抽象QIFI_Account 核心接口QUANTAXIS 用 QIFIQuantaxis Financial Interface协议统一了股票、期货、期权等品种的账户语义。创建账户account QA.QIFI_Account( usernameaccount_name, passwordpassword, modelstock, # 或 future init_cash100000 )属性cash可用资金、balance总资产、positions持仓字典、orders订单字典、trades成交字典。方法receive_simpledeal(order_dict)接收简单成交、buy(code, price, amount, datetimeNone)/sell(...)股票、open_long(...)/close_long(...)期货多开多平。其中receive_simpledeal是核心入口接受如下结构的字典order_dict { code: 000001, price: 10.5, amount: 1000, datetime: 2024-01-15, towards: buy # 或 sell }实际实现位于 QUANTAXIS/QIFI/QifiAccount.py账户的持久化与查询由 QUANTAXIS/QIFI/QifiManager.py 负责协议说明可参考 QIFI/qifi.md数据库表结构在 QIFI/qifi.sql。一个完整的买卖闭环示例account QA.QIFI_Account(test, test, stock, 100000) account.receive_simpledeal({code: 000001, price: 10.5, amount: 1000, datetime: 2024-01-15, towards: buy}) print(account.positions) # 查看持仓 account.receive_simpledeal({code: 000001, price: 11.0, amount: 1000, datetime: 2024-01-20, towards: sell}) print(f总盈亏: {account.balance - account.init_cash})QARSAccountRust 高性能账户当安装了 qars3Rust 账户引擎后可通过 QUANTAXIS/QARSBridge/ 桥接层使用高性能账户from QUANTAXIS.QARSBridge import has_qars_support if has_qars_support(): from QUANTAXIS.QARSBridge import QARSAccount account QARSAccount(account_cookierust_account, init_cash100000.0, commission_rate0.0003) order_id account.buy(000001, 10.5, 2024-01-15, 1000) # 返回订单ID pos account.get_position(000001) # 持仓字典文档标注其账户操作加速约 100x对应的 Rust 侧实现可参阅 qapro-rs/src/qaaccount/account.rs桥接的 Python 侧封装在 QUANTAXIS/QARSBridge/qars_account.py。同样的思路也适用于回测——QARSBacktest提供了 Rust 高性能回测入口。回测与策略开发QAStrategy 与 QA_BacktestCTA 策略基类回测框架的核心是事件驱动策略基类QAStrategyCtaBase源码位于 QUANTAXIS/QAStrategy/qactabase.pyfrom QUANTAXIS.QAStrategy import QAStrategyCtaBase class MyStrategy(QAStrategyCtaBase): def __init__(self): super().__init__() self.ma_period 20 def on_bar(self, bar): 每根K线回调计算均线并决策 ma bar[close].rolling(self.ma_period).mean().iloc[-1] current_price bar[close].iloc[-1] if current_price ma: self.buy(bar[code].iloc[-1], current_price, 100) else: self.sell(bar[code].iloc[-1], current_price, 100) def on_order(self, order): # 订单回调 print(f订单: {order}) def on_trade(self, trade): # 成交回调 print(f成交: {trade})快速回测的两种姿势姿势一手动模拟交易适合理解撮合逻辑。用 QIFI 账户 信号循环完成一次均线策略回测核心是receive_simpledeal驱动的信号 → 下单 → 持仓更新循环可精确控制买入数量如按 100 股整数倍与卖出持仓量。姿势二框架回测生产推荐。直接调用QA_Backtestresult QA.QA_Backtest( strategystrategy, code000001, start2023-01-01, end2024-01-31, init_cash100000 ) print(f收益率: {result.profit_rate * 100:.2f}%)策略体系的更多基类多标的qamultibase、对冲qahedgebase、因子qafactorbase位于 QUANTAXIS/QAStrategy/因子分析框架则在 QUANTAXIS/QAFactor/如QASingleFactor_DailyBase单因子基类。常用常量与工具函数统一市场语义QUANTAXIS 通过 QUANTAXIS/QAUtil/ 提供统一枚举与工具函数避免不同数据源之间的语义混乱from QUANTAXIS.QAUtil import MARKET_TYPE, FREQUENCE, ORDER_DIRECTION MARKET_TYPE.STOCK_CN # 股票市场 MARKET_TYPE.FUTURE_CN # 期货市场 MARKET_TYPE.INDEX_CN # 指数市场 MARKET_TYPE.OPTION_CN # 期权市场 FREQUENCE.TICK / ONE_MIN / FIVE_MIN / FIFTEEN_MIN / THIRTY_MIN / HOUR / DAY / WEEK / MONTH ORDER_DIRECTION.BUY # 买入 ORDER_DIRECTION.SELL # 卖出 ORDER_DIRECTION.BUY_OPEN # 买开期货 ORDER_DIRECTION.SELL_CLOSE # 卖平期货常用工具函数还包括交易日历QA_util_get_trade_date(start, end)与QA_util_if_trade(date)实现于 QUANTAXIS/QAUtil/QADate_trade.py、重采样QA_data_tick_resample/QA_data_min_resample对应 QUANTAXIS/QAData/data_resample.py、MongoDB 连接管理QA_util_mongo_initial/QA_util_mongo_status对应 QUANTAXIS/QAUtil/QAMongo.py。Docker 与 Kubernetes 部署从单机到分布式系统架构与组件端口部署概览 给出了清晰的系统架构Jupyter8888、Web8080、Monitor61208、Collector8011通过核心服务8010挂接 MongoDB27017、RabbitMQ5672/15672、Redis6379、ClickHouse8123/9000与日志系统。各组件版本要求为 MongoDB 7.0、RabbitMQ 3.13、Redis 7.0、QUANTAXIS Core 2.1.0。Docker Compose 部署qa-service-v2.1仓库实际提供的编排文件位于 docker/qa-service-v2.1/docker-compose.yaml含 docker/qa-service-v2.1/init-mongo.js 初始化脚本、docker/qa-service-v2.1/clickhouse-config.xml 与 docker/qa-service-v2.1/rabbitmq.conf。部署流程cd QUANTAXIS/docker/qa-service-v2.1 cp .env.example .env # 编辑 .env 修改密码生产环境必须 docker-compose up -d # 基础部署 docker-compose --profile full up -d # 完整部署含 ClickHouse 与行情采集 docker-compose --profile analytics up -d # 仅分析服务 docker-compose --profile market up -d # 仅行情采集数据持久化依赖 Docker volumesquantaxis_mongodb_data、quantaxis_rabbitmq_data、quantaxis_redis_data、quantaxis_clickhouse_data、quantaxis_code、quantaxis_logs可用docker volume ls | grep quantaxis查看备份可用docker run --rm -v quantaxis_mongodb_data:/data ... tar czf或执行备份脚本。注意docker-compose down -v会连数据卷一起删除属于危险操作。Kubernetes 部署k8s-deployment仓库提供了两套 K8s 资源原生清单 docker/k8s-deployment/00-namespace.yaml、01-configmap.yaml、02-secrets.yaml、03-storage.yaml、10-mongodb.yaml、50-quantaxis.yaml与 Helm Charts docker/k8s_deploy_qaservice/helm_charts/。部署要点cd QUANTAXIS/docker/k8s-deployment kubectl apply -f 00-namespace.yaml kubectl apply -f 01-configmap.yaml kubectl create secret generic mongodb-secret \ --from-literalMONGO_ROOT_USERroot \ --from-literalMONGO_ROOT_PASSWORDyour-strong-password \ --from-literalMONGO_USERquantaxis \ --from-literalMONGO_PASSWORDquantaxis-password \ --namespacequantaxis --dry-runclient -o yaml | kubectl apply -f - kubectl apply -f 03-storage.yaml kubectl apply -f 10-mongodb.yaml kubectl wait --forconditionready pod -l appmongodb -n quantaxis --timeout300s kubectl apply -f 50-quantaxis.yaml kubectl get pods -n quantaxis服务访问支持三种方式kubectl port-forward端口转发、LoadBalancer 外部 IP、Ingress需先配置 Ingress Controller。扩缩容可通过kubectl scale deployment quantaxis --replicas5 -n quantaxis手动调整或依赖 50-quantaxis.yaml 中配置的 HPA文档描述基于 CPU/内存自动调整副本数 2-10滚动更新与回滚分别使用kubectl set imagekubectl rollout status与kubectl rollout undo。Helm 部署的典型 values 覆盖 MongoDBrootPassword/password/persistence.size50Gi、RabbitMQusername/password/10Gi、Redispassword/10Gi、可选 ClickHouse100Gi、QUANTAXIS 主服务replicas、image.repositoryquantaxis/quantaxis、resources 等以及 Ingress 配置。多环境、监控与运维实践多环境Docker Compose 通过 overlay 文件docker-compose.dev.yaml/docker-compose.prod.yaml叠加K8s 使用 Kustomize 的 base/overlays 结构区分 dev/staging/prod。监控Prometheus Operator GrafanaQUANTAXIS 已配置 Prometheus 注解自动抓取日志可选 ELKelasticsearch/kibana/filebeat或 Loki Stack。备份MongoDB 用mongodump/mongorestoreK8s 全命名空间备份可用 Velero。故障排查MongoDB 连接失败可用kubectl logs -l appmongodb加mongosh探针测试内存不足调resources.limits.memoryPod 无法启动查kubectl describe pod与--previous日志。最佳实践安全上必须修改所有默认密码、用 Secret 管理敏感信息、启用 RBAC 与 Network Policy性能上合理设置资源请求/限制、使用 SSD 存储、配置亲和性与 HPA可靠性上配置健康检查/就绪探针、Pod Disruption Budget、多副本与定期备份。进阶方向数据桥接、性能优化与迁移doc/README.md在高级板块还链接了三个关键主题数据桥接Data Bridge文档 doc/advanced/data-bridge.md 对应源码 QUANTAXIS/QADataBridge/核心能力包括convert_pandas_to_polars/convert_polars_to_pandas零拷贝转换以及基于共享内存的SharedMemoryWriter/SharedMemoryReader跨进程行情分发可指定size_mb、buffer_count、timeout_ms等参数。可结合 examples/qadatabridge_example.py 与 scripts/benchmark_databridge.py 跑通与压测。Rust 集成文档 doc/advanced/rust-integration.md 对应的 Rust 工作区位于 qapro-rs/Cargo 工程包含 qaaccount、qafactor、qastrategy 等 crate通过 QARSBridge/QADataBridge 两个桥接层暴露给 Python。迁移指南doc/migration/v2.0-to-v2.1.md 与 doc/migration/COMPATIBILITY_STATUS.md 记录了升级到 2.1 的变更点Python 3.9、Rust 组件、桥接层升级流程为备份 MongoDB 与配置 → 卸载旧版 →pip install quantaxis[rust]→ 迁移数据 → 更新配置QA_util_cfg_initial()。结语如何高效使用这份文档中心doc/README.md是 QUANTAXIS 2.1 的地图它本身不替代任何一篇技术文档而是把所有专题入口安装、快速开始、API、高级、部署、开发、迁移、QABook组织成清晰的学习路径。推荐的阅读姿势是以 README 为导航 → 进入具体专题文档 → 沿同名模块下沉到 QUANTAXIS/ 源码交叉验证。例如读 QIFI 章节时对照 QIFI/QifiAccount.py读部署章节时对照 docker/qa-service-v2.1/ 与 docker/k8s-deployment/。这样既能快速上手又能获得源码级的事实依据最终形成对这套纯本地量化解决方案从数据到交易、从单机到分布式的完整技术认知。【免费下载链接】QUANTAXISQUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案项目地址: https://gitcode.com/gh_mirrors/qu/QUANTAXIS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表