🚀 现代化、用户友好的中国A股量化交易系统
📦 架构升级: 新CLI模块化设计,采用
quant_system/模块化架构
- 🎯 用户友好的CLI界面 - 一键命令操作
- 🔐 安全配置管理 - Token和敏感信息分离存储
- 💾 智能缓存系统 - 提升性能和响应速度
- 🌈 彩色日志输出 - 直观的状态提示
- 📊 现代化Web界面 - 响应式设计,支持移动端
- 📈 模拟交易系统 - 真实交易成本和持仓管理
- 🛡️ 完善的错误处理 - 详细的错误提示和解决方案
发布日期: 2024-12 重大更新: 架构全面重构,首个正式发布版本
- 模块化设计: 从分散脚本迁移到
quant_system/统一架构 - 清晰分层:
core/(核心服务)、data/(数据管理)、backtest/(回测引擎)、trading/(模拟交易)、web/(Web 界面) - 代码复用: 消除重复代码,提升可维护性
- 统一 CLI:
quant-system命令替代 10+ 个独立脚本 - 配置管理: 标准化配置文件
~/.31gp_config.json - 彩色日志: 直观的状态提示和错误信息
- 详细帮助: 每个命令提供
--help说明
- 真实成本: 手续费(0.03%)、滑点(0.01%)、最低手续费(5元)
- 订单管理: 市价单、限价单、状态跟踪
- 持仓跟踪: 实时 P/L、成本分析、浮动盈亏
- 数据持久化: SQLite 存储历史记录
- Web 可视化: 权益曲线、持仓明细、成交记录
- 智能缓存: 本地文件缓存 + Redis 支持
- 并行处理: 异步数据获取(
--parallel参数) - 批量操作: 一次更新数千只股票
- 指数退避: 自动处理 SQLite 写锁冲突
- 新增策略: RSI(相对强弱指标)、MACD(趋势跟踪)
- 参数灵活: 支持
-p key=value自定义配置 - 风险指标: 夏普比率、Calmar 比率、Sortino 比率
- 响应式设计: 支持移动端访问
- 模拟交易页: 在线配置、实时结果展示
- 交互图表: ECharts 驱动的 K 线图和技术指标
- 数据管理: 批量更新、状态监控
已删除以下过时内容:
- 备份目录:
backtest_backup/,data_backup/,scheduler_backup/,webapp_backup/ - 迁移脚本:
check_migration.py - 旧版文档:
CLAUDE.md
| 旧脚本 | 新命令 |
|---|---|
python data/getData.py 000001.SZ |
quant-system data fetch 000001.SZ |
python backtest/backtest2easy_lite.py |
quant-system backtest run 000001.SZ |
python webapp/app.py |
quant-system web |
python scheduler/auto_tasks.py |
quant-system data update |
- ✓ 数据库结构向后兼容(
qtdb_pro.db) - ✓ 配置文件自动迁移
- ✓ 旧脚本仍可运行(显示废弃警告)
- SQLite 并发写入限制(建议并发数 ≤ 5)
- 模拟交易未考虑涨跌停限制
- 暂不支持期货、期权等衍生品
- 实时模拟交易(接入实时行情)
- 策略优化器(参数自动调优)
- 组合管理(多资产配置)
- 券商 API 集成(实盘对接)
- 📊 真实成本计算 - 手续费、滑点、最低手续费
- 💰 资金管理 - 现金约束、仓位管理
- 📈 持仓跟踪 - 实时P/L、成本分析
- 🔄 订单系统 - 市价单、限价单、状态跟踪
- 💾 数据持久化 - SQLite存储历史记录
- 📱 Web界面 - 可视化结果展示
# 基础模拟交易
quant-system trading sim 000001.SZ --strategy double_ma
# 自定义参数
quant-system trading sim 600519.SH \
--strategy rsi \
--capital 200000 \
-p window=14 \
-p overbought=75
# Web界面模拟
quant-system web
# 访问 http://127.0.0.1:5000/trading/sim- 技术指标策略: 双均线、突破、动量、均值回归、RSI、MACD
- 全策略支持: 所有回测策略均可用于模拟交易
- 参数自定义: 支持策略参数的个性化配置
详细文档: docs/trading_simulator.md
# 克隆项目
git clone https://github.com/31gp/quant-system.git
cd quant-system
# 安装依赖
pip install -e .
# 首次配置
quant-system init# 获取股票数据
quant-system data fetch 000001.SZ --start-date 20240101
# 运行回测
quant-system backtest run 000001.SZ --strategy double_ma
# 运行模拟交易(推荐)
quant-system trading sim 000001.SZ --strategy double_ma --capital 100000
# 启动Web界面
quant-system web --port 8080# 批量更新所有股票数据
quant-system data update --parallel 10 --days 365
# 自定义参数回测
quant-system backtest run 000001.SZ \
--strategy double_ma \
--params short_window=10 long_window=30
# 并行获取多只股票数据
quant-system data fetch 000001.SZ,000002.SZ,600000.SH --parallel 3
# 查看系统状态
quant-system status| 命令 | 描述 | 示例 |
|---|---|---|
data fetch |
获取历史数据 | quant-system data fetch 000001.SZ |
data fetch --parallel |
并行获取多只股票 | quant-system data fetch 000001.SZ,600000.SH --parallel 3 |
data realtime |
获取实时数据 | quant-system data realtime 000001.SZ 600000.SH |
data update |
更新所有数据 | quant-system data update --parallel 10 |
| 命令 | 描述 | 示例 |
|---|---|---|
backtest run |
运行回测 | quant-system backtest run 000001.SZ |
backtest run --parallel |
并行回测多只股票 | quant-system backtest run 000001.SZ,600000.SH --parallel 3 |
backtest list-strategies |
列出策略 | quant-system backtest list-strategies |
| 命令 | 描述 | 示例 |
|---|---|---|
init |
初始化系统 | quant-system init |
status |
查看状态 | quant-system status |
web |
启动Web界面 | quant-system web |
旧版本代码仍然兼容,但推荐使用新架构:
| 旧脚本 | 新命令 | 状态 |
|---|---|---|
python data/getData.py 000001.SZ |
quant-system data fetch 000001.SZ |
已迁移/已废弃 |
python backtest/backtest2easy_lite.py |
quant-system backtest run 000001.SZ |
已迁移/已废弃 |
python webapp/app.py |
quant-system web |
已迁移/已废弃 |
python scheduler/auto_tasks.py |
quant-system data update (自动调度) |
已迁移/已废弃 |
# 旧方式(已废弃,仍支持)
python data/getData.py 000001.SZ
# 新方式(推荐)
quant-system data fetch 000001.SZ新系统使用标准配置文件:
- 位置:
~/.31gp_config.json - 格式: JSON格式,支持所有配置选项
- 数据库: SQLite (
qtdb_pro.db) - 缓存: 本地缓存目录 (
./cache) 或 Redis - 日志: 彩色控制台输出
# 批量获取多只股票(逗号分隔)
quant-system data fetch 000001.SZ,000002.SZ,600000.SH --parallel 3
# 更新所有股票(并发10)
quant-system data update --parallel 10 --days 365
# 并行回测多只股票
quant-system backtest run 000001.SZ,600000.SH --parallel 2 --strategy double_ma# 启用 Redis(需先启动 Redis 服务)
export REDIS_ENABLED=true
export REDIS_HOST=localhost
export REDIS_PORT=6379
export REDIS_DB=0
# 查看缓存状态
quant-system status
# 性能测试
python benchmark_performance.py# macOS
brew install redis
brew services start redis
# Ubuntu/Debian
sudo apt-get install redis-server
sudo systemctl start redis-server
# Docker
docker run -d -p 6379:6379 redis:latest- 双均线策略 - 趋势跟踪,基于短期和长期均线交叉
- 突破策略 - 价格突破N日最高/最低时产生交易信号
- 动量策略 - 基于价格动量效应的趋势跟踪策略
- 均值回归策略 - 价格偏离均线一定幅度时反向操作
- RSI策略 - 基于相对强弱指标的超买超卖策略,识别过度买入/卖出信号
- MACD策略 - 基于MACD指标的趋势跟踪策略,捕捉趋势转换点
- 夏普比率 - 衡量风险调整后收益,数值越高表示单位风险的收益越高
- Calmar比率 - 年化收益与最大回撤的比率,评估风险调整后的表现
- Sortino比率 - 仅考虑下行风险的夏普比率变体,更关注风险控制
- 最大回撤 - 从历史最高点到最低点的最大跌幅,衡量最坏情况下的损失
- 胜率 - 盈利交易次数占总交易次数的比例,反映策略的成功率
from quant_system.backtest import BacktestEngine
engine = BacktestEngine()
result = engine.run_backtest(
stock_code="000001.SZ",
strategy="double_ma",
short_window=5,
long_window=20
)- Python 3.7+
- Tushare Token
- 网络连接
# 开发模式安装
pip install -e .[dev]
# 代码格式化
black quant_system/
# 类型检查
mypy quant_system/- 新策略: 继承策略基类
- 新数据源: 实现数据源接口
- 新界面: 基于Flask扩展
- 📈 仪表板: 数据库统计、热门股票、可视化图表
- 💹 实时行情: 股票列表和实时数据展示
- 📊 历史数据: K线图和交互式技术指标图表
- 🎯 策略回测: 在线回测、参数配置、详细结果展示
- 💰 模拟交易: 真实交易成本计算、持仓跟踪、交易历史
- 🔄 数据管理: 数据更新、状态监控、批量操作
quant-system web # 本地访问
quant-system web --host 0.0.0.0 # 局域网访问
quant-system web --port 8080 # 自定义端口-
Token配置错误
quant-system init # 重新配置 -
数据库锁定
rm qtdb_pro.db # 重新初始化 quant-system init -
依赖问题
pip install -r requirements.txt --upgrade
-
迁移问题 如遇到迁移问题,请参考以下步骤:
- 重装CLI:
pip install -e . - 初始化:
quant-system init - 检查帮助:
quant-system --help
- 重装CLI:
quant-system --verbose data fetch 000001.SZ
quant-system --debug web- 智能缓存: 自动缓存常用数据
- 过期策略: 可配置的缓存过期时间
- 缓存清理: 自动清理过期数据
- 批量数据更新: 支持多线程数据获取
- 批量回测: 支持多股票并行回测
- 写锁竞争: SQLite在高并发写入时可能出现锁竞争
- 推荐并发数: 建议批量操作时并发数控制在3-5以内
- 自动重试: 系统已内置指数退避重试机制,处理写锁冲突
- 数据库限制: SQLite适合单用户或低并发场景,高并发请考虑PostgreSQL/MySQL
- Fork项目
- 创建功能分支
- 提交代码
- 创建Pull Request
MIT License - 详见 LICENSE 文件
- 文档: 查看
docs/目录 - 问题: 提交GitHub Issue
- 讨论: GitHub Discussions
从旧版本升级的用户: 运行 quant-system init 完成配置迁移
以下旧脚本已废弃,不再推荐使用,仅供兼容或参考代码:
data/getData.py- 使用quant-system data fetch替代data/getDataFromTushare.py- 内置于新CLIdata/dealData.py- 内置于新CLIbasis/basis.py- 内置于新CLIbacktest/backtest2easy_lite.py- 使用quant-system backtest run替代backtest/batch_backtest.py- 使用新CLI批量功能backtest/strategies.py- 重构为新CLI策略模块webapp/app.py- 使用quant-system web替代scheduler/auto_tasks.py- 使用quant-system data update替代quant.py- 使用quant-system直接替代
- 旧脚本仍可正常运行,但会显示废弃警告
- 建议新项目直接使用新CLI命令
- 旧代码已完全移除,系统采用新架构
- 未来版本可能完全移除旧脚本支持