{"id":50508986,"url":"https://github.com/aaronlab/quant-trading-system","last_synced_at":"2026-06-02T18:32:58.650Z","repository":{"id":347776156,"uuid":"1195241216","full_name":"aaronlab/quant-trading-system","owner":"aaronlab","description":"A股量化交易系统 - 支持可插拔数据源、多策略回测、风险管理","archived":false,"fork":false,"pushed_at":"2026-03-29T14:58:46.000Z","size":466,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T18:32:50.793Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aaronlab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-29T12:25:26.000Z","updated_at":"2026-04-16T08:11:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aaronlab/quant-trading-system","commit_stats":null,"previous_names":["zey413/quant-trading-system","aaronagent/quant-trading-system","aaronlab/quant-trading-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aaronlab/quant-trading-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronlab%2Fquant-trading-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronlab%2Fquant-trading-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronlab%2Fquant-trading-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronlab%2Fquant-trading-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaronlab","download_url":"https://codeload.github.com/aaronlab/quant-trading-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronlab%2Fquant-trading-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33833277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-02T18:32:57.988Z","updated_at":"2026-06-02T18:32:58.643Z","avatar_url":"https://github.com/aaronlab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 量化交易系统\n\n**面向中国A股市场的专业量化交易框架**\n\n*可插拔数据源 · 8大内置策略 · ML机器学习策略 · 事件驱动回测 · 交易引擎 · Web Dashboard · 智能风控 · 参数优化*\n\n[![Python](https://img.shields.io/badge/Python-3.10%2B-blue?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://www.python.org/)\n[![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)\n[![Tests](https://img.shields.io/badge/Tests-Passing-brightgreen?style=for-the-badge\u0026logo=pytest\u0026logoColor=white)]()\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)]()\n\n\u003c/div\u003e\n\n---\n\n## 功能亮点\n\n| 模块 | 功能 | 说明 |\n|:---:|:---|:---|\n| **数据层** | 可插拔数据源架构 | AKShare（免费）+ Tushare Pro，装饰器注册表模式，轻松扩展 |\n| **策略层** | 8 大内置策略 + 复合策略 | 均线交叉、RSI、MACD、布林带、Dual Thrust、均值回归、海龟交易、复合投票 |\n| **ML策略** | 机器学习策略引擎 | 纯NumPy实现，支持决策树、随机森林、GBDT、LSTM、集成模型 |\n| **回测引擎** | 事件驱动 + A股规则 | 完整支持 T+1、印花税、最小交易单位、滑点模拟 |\n| **交易引擎** | 实时/模拟交易执行 | 订单管理、持仓跟踪、实时风控、交易日志 |\n| **参数优化** | 网格搜索 + 滚动前进 | 自动遍历参数空间 + Walk-Forward分析防过拟合 |\n| **组合回测** | 多股票组合回测 | 等权/自定义权重，相关性分析，组合绩效评估 |\n| **策略对比** | 多策略对比工具 | 相同数据下并行运行多策略，自动排名 |\n| **信号分析** | 信号质量评估 | 前瞻收益分析、信号胜率、连续盈亏统计 |\n| **风险管理** | 仓位管理 + 止损止盈 | 固定比例法 / Kelly公式 / ATR自适应，自动止损止盈 |\n| **技术指标** | 18+ 专业指标 | SMA/EMA/MACD/RSI/KDJ/布林带/ATR/OBV/VWAP/ROC/Williams%R/CCI 等 |\n| **可视化** | 专业图表 | K线图、交易信号图、净值曲线、回撤图、月度收益热力图 |\n| **数据导出** | 多格式导出 | 支持 CSV / Excel / JSON 格式导出 |\n| **报告生成** | 回测报告导出 | 支持文本报告 + CSV交易记录 + 净值曲线导出 |\n| **CLI工具** | 8 个命令行工具 | 一键获取数据、回测、优化、对比、生成报告 |\n\n---\n\n## 系统架构\n\n```\n┌─────────────────────────────────────────────────────────────────────────┐\n│                         CLI 层 (Click + Rich)                          │\n│    fetch │ backtest │ strategies │ plot │ optimize │ report │ compare   │\n└──────────────────────────────┬──────────────────────────────────────────┘\n                               │\n┌──────────────────────────────┴──────────────────────────────────────────┐\n│                           核心层 (core)                                 │\n│   AppConfig │ Signal │ Order │ Position │ Portfolio │ TradeRecord       │\n│   BrokerConfig │ BacktestConfig │ RiskConfig │ DataSourceConfig        │\n└──────┬──────────────┬──────────────┬──────────────┬─────────────────────┘\n       │              │              │              │\n┌──────┴─────┐ ┌──────┴─────┐ ┌─────┴──────┐ ┌────┴──────────────────┐\n│  数据层    │ │  策略层    │ │  ML策略层  │ │     回测引擎层        │\n│  (data)    │ │ (strategy) │ │   (ml)     │ │     (backtest)        │\n│            │ │            │ │            │ │                       │\n│ AKShare    │ │ 8大策略    │ │ 特征工程   │ │ BacktestEngine        │\n│ Tushare    │ │ 复合策略   │ │ 决策树     │ │ ├── SimulatedBroker   │\n│ DataExport │ │ (可扩展)   │ │ 随机森林   │ │ ├── PortfolioManager  │\n│ (可扩展)   │ │            │ │ GBDT/LSTM  │ │ ├── RiskManager       │\n└────────────┘ └────────────┘ │ 集成模型   │ │ ├── GridSearchOptimizer│\n                              │ MLPipeline │ │ ├── WalkForwardAnalyzer│\n       ┌──────────────┐       └────────────┘ │ ├── PortfolioBacktester│\n       │   指标层     │                      │ ├── SignalAnalyzer     │\n       │ 18+ 技术指标 │                      │ ├── StrategyComparator │\n       │ ROC/WR/CCI   │                      │ └── ReportGenerator   │\n       └──────────────┘                      └───────────────────────┘\n                                                        │\n┌──────────────────────────┐            ┌───────────────┴──────────────┐\n│      交易引擎层          │            │         可视化层              │\n│      (trading)           │            │     (visualization)          │\n│                          │            │                              │\n│ ExecutionEngine          │            │ K线图 / 交易信号图           │\n│ ├── SimulatedExecutor    │            │ 净值曲线 / 回撤图            │\n│ ├── LiveExecutor         │            │ 月度收益热力图               │\n│ OrderManager             │            │ 信号分布图                   │\n│ PositionTracker          │            └──────────────────────────────┘\n│ RiskMonitor              │\n│ TradeLogger              │\n└──────────────────────────┘\n```\n\n### 设计原则\n\n- **可插拔架构** — 数据源、策略均通过注册表 + 抽象基类实现，新增实现零改动核心代码\n- **关注点分离** — 数据获取、策略计算、订单执行、风控验证各自独立\n- **配置驱动** — 所有参数通过 YAML + Pydantic 统一管理，运行时可覆盖\n- **事件驱动** — 回测引擎逐日处理，完整模拟真实交易流程\n- **零外部ML依赖** — 机器学习模型纯NumPy实现，无需安装scikit-learn/tensorflow\n\n\u003e 详细架构文档请查看 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)\n\n---\n\n## 快速开始\n\n### 环境要求\n\n- Python 3.10+\n- pip\n\n### 安装\n\n```bash\n# 克隆仓库\ngit clone https://github.com/zey413/quant-trading-system.git\ncd quant-trading-system\n\n# 创建虚拟环境（推荐）\npython -m venv .venv\nsource .venv/bin/activate    # macOS/Linux\n# .venv\\Scripts\\activate     # Windows\n\n# 安装项目及依赖\npip install -e \".[dev]\"\n\n# 验证安装\nquant --help\n```\n\n### Docker 快速启动\n\n```bash\n# 构建并启动\ndocker-compose up -d\n\n# 运行回测\ndocker-compose exec quant quant backtest -st ma_crossover -s 000001\n```\n\n### 三步上手\n\n**第一步：获取数据**\n\n```bash\nquant fetch -s 000001 --start 2024-01-01 --end 2025-01-01\n```\n\n**第二步：运行回测**\n\n```bash\nquant backtest -st ma_crossover -s 000001 --start 2024-01-01\n```\n\n**第三步：查看图表**\n\n```bash\nquant plot -s 000001 -st ma_crossover --save chart.png\n```\n\n### Python API 快速示例\n\n```python\nfrom quant_trading.core import AppConfig\nfrom quant_trading.data import DataManager\nfrom quant_trading.backtest import BacktestEngine\nfrom quant_trading.strategy import MACrossoverStrategy\n\n# 加载配置 \u0026 获取数据\nconfig = AppConfig.from_yaml(\"config/default.yaml\")\ndm = DataManager(config)\ndf = dm.fetch_daily(\"000001\", start_date=\"2024-01-01\", end_date=\"2025-01-01\")\n\n# 创建策略 \u0026 运行回测\nstrategy = MACrossoverStrategy(short_window=5, long_window=20)\nengine = BacktestEngine(config)\nresult = engine.run(strategy, df, symbol=\"000001\")\n\n# 查看结果\nprint(f\"总收益率: {result.total_return:.2%}\")\nprint(f\"夏普比率: {result.sharpe_ratio:.4f}\")\nprint(f\"最大回撤: {result.max_drawdown:.2%}\")\n```\n\n---\n\n## 策略目录\n\n系统内置 8 大交易策略 + 机器学习策略，覆盖趋势跟踪、动量突破、均值回归、AI量化等主流思路：\n\n### 内置经典策略\n\n| # | 策略名 | 注册名 | 原理 | 核心参数 |\n|:-:|:------|:------|:-----|:--------|\n| 1 | **均线交叉** | `ma_crossover` | 短期均线上穿长期均线（金叉）买入，下穿（死叉）卖出 | `short_window=5`, `long_window=20` |\n| 2 | **RSI 超买超卖** | `rsi` | RSI 从超卖区上穿买入，从超买区下穿卖出 | `period=14`, `oversold=30`, `overbought=70` |\n| 3 | **MACD 策略** | `macd` | MACD 柱状线由负转正（金叉）买入，由正转负（死叉）卖出 | `fast=12`, `slow=26`, `signal=9` |\n| 4 | **布林带策略** | `bollinger` | 价格触及下轨后回升买入，触及上轨后回落卖出 | `window=20`, `num_std=2` |\n| 5 | **Dual Thrust** | `dual_thrust` | 经典动量突破策略，基于前N日价格区间计算上下轨 | `lookback=4`, `k1=0.5`, `k2=0.5` |\n| 6 | **均值回归** | `mean_reversion` | 价格偏离均线过远时（Z-Score）回归交易 | `window=20`, `entry_threshold=2.0` |\n| 7 | **海龟交易** | `turtle` | 经典趋势跟踪，通道突破买入，ATR仓位管理 | `entry_period=20`, `exit_period=10`, `atr_period=20` |\n| 8 | **复合策略** | `composite` | 组合多个子策略，投票决定信号（多数/全体一致/任意） | `strategies=[...]`, `voting=\"majority\"` |\n\n### 机器学习策略\n\n| 模型 | 说明 |\n|:-----|:-----|\n| **DecisionTreeModel** | 决策树分类器，纯NumPy实现 |\n| **RandomForestModel** | 随机森林，Bagging集成多棵决策树 |\n| **LinearModel** | 线性模型（逻辑回归/线性回归） |\n| **GradientBoostingModel** | 梯度提升决策树 |\n| **LSTMModel** | 长短期记忆网络 |\n| **EnsembleModel** | 集成模型，组合多种ML模型 |\n\n查看所有策略及参数详情：\n\n```bash\nquant strategies\n```\n\n\u003e 策略开发指南详见 [docs/STRATEGY_GUIDE.md](docs/STRATEGY_GUIDE.md)\n\n---\n\n## CLI 命令参考\n\n系统提供 8 个命令行工具，覆盖完整量化工作流：\n\n### `quant fetch` — 获取股票数据\n\n```bash\nquant fetch -s 000001 --start 2024-01-01 --end 2025-01-01\nquant fetch -s 600519 --source akshare -n 50\n```\n\n### `quant backtest` — 运行策略回测\n\n```bash\nquant backtest -st ma_crossover -s 000001\nquant backtest -st rsi -s 600519 --capital 500000\nquant backtest -st macd -s 000001 --start 2023-01-01 --end 2024-12-31 --save report.png\n```\n\n### `quant strategies` — 列出所有可用策略\n\n```bash\nquant strategies\n```\n\n### `quant plot` — 生成可视化图表\n\n```bash\nquant plot -s 000001 -t candlestick\nquant plot -s 600519 -st ma_crossover --save signals.png\nquant plot -s 000001 -st rsi -t all\n```\n\n### `quant optimize` — 策略参数优化\n\n```bash\nquant optimize -st ma_crossover -s 000001 \\\n  -p '{\"short_window\":[3,5,10],\"long_window\":[15,20,30]}'\n\nquant optimize -st rsi -s 600519 \\\n  -p '{\"period\":[10,14,20]}' -m total_return\n```\n\n### `quant report` — 生成回测报告\n\n```bash\nquant report -st ma_crossover -s 000001\nquant report -st rsi -s 600519 -f csv -o ./output\n```\n\n\u003e 所有命令均支持 `--config` / `-c` 指定配置文件，`--verbose` / `-v` 开启详细日志。\n\n---\n\n## 高级用法\n\n### 参数优化 (GridSearchOptimizer)\n\n使用网格搜索在参数空间中自动寻找最优参数组合：\n\n```python\nfrom quant_trading.backtest.optimizer import GridSearchOptimizer\nfrom quant_trading.core import AppConfig\n\nconfig = AppConfig.from_yaml(\"config/default.yaml\")\noptimizer = GridSearchOptimizer(config)\n\n# 定义参数搜索空间\nparam_grid = {\n    \"short_window\": [3, 5, 10],\n    \"long_window\": [15, 20, 30],\n}\n\n# 运行优化（默认优化夏普比率）\nresult = optimizer.optimize(\n    strategy_name=\"ma_crossover\",\n    param_grid=param_grid,\n    data=data,\n    symbol=\"000001\",\n    metric=\"sharpe_ratio\",\n)\n\nprint(result.summary())\nprint(f\"最优参数: {result.best_params}\")\nprint(f\"最优夏普: {result.best_metric_value:.4f}\")\n```\n\n### 滚动前进分析 (Walk-Forward)\n\n避免参数优化过拟合的进阶工具：\n\n```python\nfrom quant_trading.backtest.walk_forward import WalkForwardAnalyzer\n\nanalyzer = WalkForwardAnalyzer(config)\nresult = analyzer.run(\n    strategy_name=\"ma_crossover\",\n    param_grid={\"short_window\": [3, 5, 10], \"long_window\": [15, 20, 30]},\n    data=df,\n    symbol=\"000001\",\n    train_size=120,     # 训练期 120 个交易日\n    test_size=60,       # 测试期 60 个交易日\n    step_size=60,       # 每次前进 60 个交易日\n)\n\nprint(result.summary())\n```\n\n### 多股票组合回测 (PortfolioBacktester)\n\n```python\nfrom quant_trading.backtest.portfolio_backtest import PortfolioBacktester\n\nbacktester = PortfolioBacktester(config)\nresult = backtester.run(\n    strategy=strategy,\n    data_dict={\"000001\": df1, \"600519\": df2, \"000858\": df3},\n    weights=\"equal\",  # 等权重，或自定义 {\"000001\": 0.4, \"600519\": 0.3, \"000858\": 0.3}\n)\n\nprint(result.summary())\n```\n\n### 信号质量分析 (SignalAnalyzer)\n\n```python\nfrom quant_trading.backtest.signal_analyzer import SignalAnalyzer\n\nanalyzer = SignalAnalyzer()\nsignals_df = strategy.generate_signals(data)\nresult = analyzer.analyze(signals_df, forward_periods=[1, 5, 10])\nprint(result.summary())\n\n# 绘制信号分布图\nanalyzer.plot_signal_distribution(signals_df, save_path=\"signal_dist.png\")\n```\n\n### 策略对比 (StrategyComparator)\n\n```python\nfrom quant_trading.backtest.comparator import StrategyComparator\n\ncomparator = StrategyComparator(config)\ncomparator.add_strategy(\"ma_crossover\", short_window=5, long_window=20)\ncomparator.add_strategy(\"rsi\", period=14)\ncomparator.add_strategy(\"macd\")\ncomparator.add_strategy(\"bollinger\", window=20, num_std=2)\n\nresult = comparator.compare(data, symbol=\"000001\", rank_by=\"sharpe_ratio\")\nprint(result.summary())\ncomparator.plot_comparison(result, save_path=\"comparison.png\")\n```\n\n### 机器学习策略\n\n```python\nfrom quant_trading.ml import FeatureEngineer, RandomForestModel, MLPipeline\n\n# 特征工程\nfe = FeatureEngineer()\nfeatures_df = fe.create_features(data)\n\n# 构建训练流水线\npipeline = MLPipeline(\n    model=RandomForestModel(n_trees=100, max_depth=10),\n    scaler=StandardScaler(),\n)\n\n# 训练与预测\npipeline.fit(X_train, y_train)\npredictions = pipeline.predict(X_test)\n```\n\n### 交易引擎\n\n```python\nfrom quant_trading.trading import ExecutionEngine, OrderManager, RiskMonitor\n\n# 创建交易执行引擎\nengine = ExecutionEngine(mode=\"simulated\")\norder_mgr = OrderManager()\nrisk_monitor = RiskMonitor()\n\n# 添加风控规则\nrisk_monitor.add_rule(MaxPositionRule(max_pct=0.3))\nrisk_monitor.add_rule(DailyLossLimitRule(max_loss=50000))\n\n# 执行信号\nengine.execute(signal, risk_monitor=risk_monitor)\n```\n\n### 自定义策略\n\n继承 `Strategy` 基类，通过装饰器注册即可接入系统：\n\n```python\nfrom quant_trading.strategy.base import Strategy, StrategyRegistry\nimport pandas as pd\n\n@StrategyRegistry.register(\"my_strategy\")\nclass MyStrategy(Strategy):\n    \"\"\"自定义策略\"\"\"\n\n    def __init__(self, param1: int = 10, name: str = \"\"):\n        super().__init__(name=name)\n        self.param1 = param1\n\n    def get_params(self) -\u003e dict:\n        return {\"param1\": self.param1}\n\n    def generate_signals(self, data: pd.DataFrame) -\u003e pd.DataFrame:\n        data = data.copy()\n        data[\"signal\"] = \"hold\"\n        # 实现你的交易逻辑\n        # data.loc[buy_condition, \"signal\"] = \"buy\"\n        # data.loc[sell_condition, \"signal\"] = \"sell\"\n        return data\n```\n\n### 自定义数据源\n\n```python\nfrom quant_trading.data.base import DataSource, DataSourceRegistry\nimport pandas as pd\n\n@DataSourceRegistry.register(\"my_source\")\nclass MyDataSource(DataSource):\n    def get_name(self) -\u003e str:\n        return \"my_source\"\n\n    def fetch_daily(self, symbol, start_date, end_date, adjust=\"qfq\") -\u003e pd.DataFrame:\n        # 返回包含 date, open, high, low, close, volume 列的 DataFrame\n        ...\n\n    def fetch_stock_list(self) -\u003e pd.DataFrame:\n        # 返回包含 code, name 列的 DataFrame\n        ...\n```\n\n### 数据导出\n\n```python\nfrom quant_trading.data.export import DataExporter\n\nDataExporter.to_csv(df, \"output/data.csv\")\nDataExporter.to_excel(df, \"output/data.xlsx\")\nDataExporter.to_json(df, \"output/data.json\")\n```\n\n---\n\n## 绩效指标\n\n回测完成后自动计算以下专业绩效指标：\n\n| 类别 | 指标 | 说明 |\n|:---:|:-----|:-----|\n| **收益** | 总收益率 (`total_return`) | 回测期间总收益 |\n| **收益** | 年化收益率 (`annualized_return`) | 按244交易日年化 |\n| **风险** | 最大回撤 (`max_drawdown`) | 峰值到谷值的最大跌幅 |\n| **风险** | 最大回撤天数 (`max_drawdown_duration`) | 最大回撤持续交易日数 |\n| **风险** | 年化波动率 (`volatility`) | 日收益率标准差年化 |\n| **风险调整** | 夏普比率 (`sharpe_ratio`) | (年化收益 - 无风险利率) / 波动率 |\n| **风险调整** | Sortino比率 (`sortino_ratio`) | 仅考虑下行风险的夏普比率 |\n| **风险调整** | Calmar比率 (`calmar_ratio`) | 年化收益率 / 最大回撤 |\n| **交易** | 总交易次数 (`total_trades`) | 平仓次数 |\n| **交易** | 胜率 (`win_rate`) | 盈利交易占比 |\n| **交易** | 盈亏比 (`profit_loss_ratio`) | 平均盈利 / 平均亏损 |\n| **交易** | 平均盈利/亏损 (`avg_win` / `avg_loss`) | 单笔平均盈亏金额 |\n\n---\n\n## 配置参考\n\n编辑 `config/default.yaml` 自定义系统参数：\n\n```yaml\n# ===== 数据源配置 =====\ndata_source:\n  default_source: \"akshare\"       # 数据源: akshare(免费) / tushare(需token)\n  tushare_token: \"\"               # Tushare Pro Token\n  cache_dir: \"data_cache\"         # 数据缓存目录\n  cache_enabled: true             # 是否启用缓存\n\n# ===== A股交易规则 =====\nbroker:\n  commission_rate: 0.0003         # 佣金率 万三\n  min_commission: 5.0             # 最低佣金 5元\n  stamp_tax_rate: 0.001           # 印花税 千一(仅卖出)\n  slippage: 0.001                 # 滑点 0.1%\n  lot_size: 100                   # 最小交易单位 100股(1手)\n  t_plus_1: true                  # T+1 交易规则\n\n# ===== 回测参数 =====\nbacktest:\n  initial_capital: 1000000.0      # 初始资金 100万\n  start_date: \"2024-01-01\"        # 回测起始日期\n  end_date: \"2025-12-31\"          # 回测结束日期\n  risk_free_rate: 0.025           # 无风险利率 2.5%\n\n# ===== 风控参数 =====\nrisk:\n  max_position_pct: 0.3           # 单股最大仓位 30%\n  max_total_position_pct: 0.8     # 总仓位上限 80%\n  stop_loss_pct: 0.05             # 止损线 5%\n  take_profit_pct: 0.15           # 止盈线 15%\n  position_sizing: \"fixed_ratio\"  # 仓位算法: fixed_ratio / kelly / atr_based\n```\n\n### A股交易规则\n\n本系统完整支持以下A股特殊规则：\n\n| 规则 | 说明 |\n|:-----|:-----|\n| T+1 | 当日买入的股票次日才能卖出 |\n| 最小交易单位 | 100股（1手） |\n| 佣金 | 万三（0.03%），最低5元 |\n| 印花税 | 千一（0.1%），仅卖出时收取 |\n| 滑点模拟 | 买入价上浮、卖出价下浮 |\n| 涨跌停 | 普通股票 ±10%，ST股票 ±5% |\n| 交易时间 | 9:30-11:30, 13:00-15:00 |\n| 年交易日 | 约244天 |\n\n---\n\n## 项目结构\n\n```\nquant-trading-system/\n├── config/default.yaml              # 默认配置文件\n├── src/quant_trading/\n│   ├── core/                        # 核心数据模型和配置\n│   │   ├── config.py                # AppConfig (Pydantic)\n│   │   ├── models.py                # Signal, Order, Position, Portfolio\n│   │   ├── enums.py                 # 枚举类型\n│   │   └── logging_config.py        # 日志配置\n│   ├── data/                        # 数据源层（可插拔架构）\n│   │   ├── base.py                  # DataSource ABC + 注册表\n│   │   ├── manager.py               # DataManager 统一接口\n│   │   ├── akshare_source.py        # AKShare 免费数据源\n│   │   ├── tushare_source.py        # Tushare Pro 数据源\n│   │   └── export.py                # DataExporter 多格式导出\n│   ├── indicators/                  # 技术指标 (18+)\n│   │   ├── base.py                  # Indicator ABC\n│   │   ├── trend.py                 # SMA, EMA, MACD\n│   │   ├── oscillator.py            # RSI, KDJ\n│   │   ├── volatility.py            # 布林带, ATR\n│   │   ├── volume.py                # OBV, VWAP\n│   │   ├── momentum.py              # ROC, Williams%R, CCI\n│   │   └── utils.py                 # 一键添加指标、相关性分析\n│   ├── strategy/                    # 交易策略 (8+)\n│   │   ├── base.py                  # Strategy ABC + 注册表\n│   │   ├── ma_crossover.py          # 均线交叉策略\n│   │   ├── rsi_strategy.py          # RSI 超买超卖策略\n│   │   ├── macd_strategy.py         # MACD 策略\n│   │   ├── bollinger_strategy.py    # 布林带策略\n│   │   ├── dual_thrust.py           # Dual Thrust 突破策略\n│   │   ├── mean_reversion.py        # 均值回归策略\n│   │   ├── turtle.py                # 海龟交易策略\n│   │   └── composite.py             # 复合投票策略\n│   ├── ml/                          # 机器学习策略\n│   │   ├── features.py              # FeatureEngineer 特征工程\n│   │   ├── models.py                # 决策树/随机森林/GBDT/LSTM/集成\n│   │   ├── pipeline.py              # MLPipeline + 标准化器\n│   │   └── evaluation.py            # ModelEvaluator 模型评估\n│   ├── backtest/                    # 回测引擎\n│   │   ├── engine.py                # 回测主引擎\n│   │   ├── broker.py                # 模拟券商（A股规则）\n│   │   ├── portfolio.py             # 组合管理\n│   │   ├── metrics.py               # 绩效指标计算\n│   │   ├── optimizer.py             # GridSearchOptimizer 参数优化\n│   │   ├── walk_forward.py          # WalkForwardAnalyzer 滚动前进分析\n│   │   ├── portfolio_backtest.py    # PortfolioBacktester 组合回测\n│   │   ├── signal_analyzer.py       # SignalAnalyzer 信号质量分析\n│   │   ├── comparator.py            # StrategyComparator 策略对比\n│   │   └── report.py                # ReportGenerator 报告生成\n│   ├── trading/                     # 交易引擎\n│   │   ├── execution_engine.py      # 执行引擎（模拟/实盘）\n│   │   ├── order_manager.py         # 订单生命周期管理\n│   │   ├── position_tracker.py      # 持仓跟踪与盈亏计算\n│   │   ├── risk_monitor.py          # 实时风控监控\n│   │   └── trade_logger.py          # 交易日志与统计\n│   ├── risk/                        # 风险管理\n│   │   ├── manager.py               # 风控管理器\n│   │   ├── position_sizer.py        # 仓位管理\n│   │   └── stop_loss.py             # 止损止盈\n│   ├── visualization/               # 可视化\n│   │   └── charts.py                # 图表绘制\n│   └── cli/                         # 命令行工具\n│       └── main.py                  # CLI 入口\n├── tests/                           # 单元测试 + 集成测试\n├── examples/                        # 使用示例\n├── docs/                            # 文档\n│   ├── ARCHITECTURE.md              # 架构设计文档\n│   ├── USER_GUIDE.md                # 用户手册\n│   ├── STRATEGY_GUIDE.md            # 策略开发指南\n│   ├── API_REFERENCE.md             # API 文档\n│   ├── DEPLOYMENT.md                # 部署文档\n│   └── EXAMPLES.md                  # 使用示例集\n├── Dockerfile                       # Docker 镜像构建\n├── docker-compose.yml               # Docker Compose 编排\n├── CONTRIBUTING.md                  # 贡献指南\n├── CHANGELOG.md                     # 更新日志\n└── pyproject.toml                   # 项目配置\n```\n\n---\n\n## 技术栈\n\n| 技术 | 用途 |\n|:-----|:-----|\n| **Python 3.10+** | 运行环境 |\n| **pandas / numpy** | 数据处理和数值计算 |\n| **AKShare / Tushare** | A股行情数据获取 |\n| **matplotlib** | 图表绘制和可视化 |\n| **Pydantic** | 配置验证和数据模型 |\n| **Click + Rich** | 命令行界面和终端美化 |\n| **PyArrow** | Parquet 数据缓存 |\n| **Docker** | 容器化部署 |\n| **pytest** | 单元测试和集成测试 |\n\n---\n\n## 项目路线图\n\n### 已完成\n\n- [x] **可插拔数据源** — AKShare + Tushare，装饰器注册表模式\n- [x] **8大内置策略** — 均线交叉、RSI、MACD、布林带、Dual Thrust、均值回归、海龟、复合\n- [x] **事件驱动回测引擎** — 完整A股规则支持\n- [x] **参数优化** — 网格搜索 + 滚动前进分析\n- [x] **多股票组合回测** — 等权/自定义权重\n- [x] **信号质量分析** — 前瞻收益分析\n- [x] **风险管理** — 仓位管理 + 止损止盈\n- [x] **18+技术指标** — 含ROC、Williams%R、CCI等\n- [x] **机器学习策略** — 纯NumPy实现，6种ML模型\n- [x] **交易引擎** — 订单管理、持仓跟踪、实时风控\n- [x] **数据导出** — CSV / Excel / JSON\n- [x] **Docker 部署** — Dockerfile + docker-compose\n\n### 进行中\n\n- [ ] **Web Dashboard** — 基于 Streamlit/Dash 的交互式回测面板\n- [ ] **数据库支持** — PostgreSQL/ClickHouse 存储历史数据和回测结果\n- [ ] **实时行情** — 接入实时行情数据流，支持实盘信号推送\n\n### 规划中\n\n- [ ] **多品种支持** — 期货、ETF、可转债回测\n- [ ] **分布式优化** — 多进程/分布式参数搜索加速\n- [ ] **涨跌停验证** — Broker 层涨跌停限制校验\n- [ ] **移动止损** — 追踪止损 (Trailing Stop) 策略\n- [ ] **基准对比** — 与沪深300/中证500等基准指数对比\n- [ ] **因子分析** — 多因子选股框架\n- [ ] **报告增强** — HTML可交互报告\n\n---\n\n## 文档索引\n\n| 文档 | 说明 |\n|:-----|:-----|\n| [用户手册](docs/USER_GUIDE.md) | 安装配置、回测教程、策略选择、FAQ |\n| [策略开发指南](docs/STRATEGY_GUIDE.md) | 自定义策略开发、ML策略、注册系统 |\n| [API 参考](docs/API_REFERENCE.md) | 所有模块的类和方法文档 |\n| [架构文档](docs/ARCHITECTURE.md) | 系统架构设计、数据流、模块职责 |\n| [部署文档](docs/DEPLOYMENT.md) | Docker部署、服务器部署、监控 |\n| [使用示例](docs/EXAMPLES.md) | 10个完整使用示例 |\n| [更新日志](CHANGELOG.md) | 版本更新历史 |\n| [贡献指南](CONTRIBUTING.md) | 开发规范、PR流程 |\n\n---\n\n## 开发\n\n```bash\n# 安装开发依赖\npip install -e \".[dev]\"\n\n# 运行全部测试\npytest tests/ -v\n\n# 运行测试（带覆盖率）\npytest tests/ -v --cov=quant_trading\n\n# 运行特定测试\npytest tests/test_strategies.py -v\n```\n\n详细开发指南请查看 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n---\n\n## 许可证\n\n本项目基于 [MIT License](LICENSE) 开源。\n\n## 致谢\n\n- [AKShare](https://github.com/akfamily/akshare) — 优秀的开源金融数据接口\n- [Tushare](https://tushare.pro/) — 专业的金融数据服务平台\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronlab%2Fquant-trading-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronlab%2Fquant-trading-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronlab%2Fquant-trading-system/lists"}