Skip to content

Repository files navigation

TradeDoctor — 交易诊断助手

上传交割单,系统自动重建持仓、识别交易行为、分析盈亏来源。面向 A 股散户的交易行为诊断工具。

核心能力:FIFO 持仓重建 + 4 维行为标签 + MAE/MFE 风险分析 + Shapley 归因 + What-If 5 规则回测(止损/止盈两侧)+ 行为组合盈亏归因(cross_analysis)+ expectancy/PnL 背离诊断 + 净值曲线 + 股票维度盈亏 + AI 诊断报告(含 11 项风险指标)。

技术栈

技术
前端 Vite + React 18 + Tailwind CSS + Recharts + React Query
后端 FastAPI + SQLAlchemy + Pandas
AI OpenAI / Claude / DeepSeek(环境变量切换)
数据库 PostgreSQL 17
行情数据 mootdx(通达信 TCP 7709,不封 IP)

快速开始

环境要求

  • Python 3.12+
  • Node.js 18+
  • PostgreSQL 17

后端

cd backend
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

# 创建数据库
psql -U postgres -c "CREATE DATABASE tradelens;"

# 配置环境变量(从模板复制后修改)
cp .env.example .env
# 编辑 .env,至少设置 DATABASE_URL 和 SECRET_KEY

# 初始化行情数据服务器
python -m mootdx bestip

# 启动
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

环境变量:后端启动前必须配置 backend/.env。从 .env.example 复制后修改:

变量 必填 说明
DATABASE_URL PostgreSQL 连接串
SECRET_KEY JWT 签名密钥,生产环境须 >=32 字符
AI_PROVIDER AI 提供商:openai / claude / deepseek(默认 openai)
OPENAI_API_KEY OpenAI API 密钥(使用 AI 诊断报告时需要)
ENV 设为 production 时启用严格安全校验

完整变量列表见 backend/.env.example

前端

cd frontend
npm install
npm run dev

打开 http://localhost:5173

运行测试

cd backend && pytest tests/ -q

核心架构:6 层数据管道

原始交割单 → Trade → Position → Pattern → Insight → What-If → AI 诊断报告
  1. Trade — SmartParser 自动识别券商格式(不看列名,看数据值)
  2. Position — FIFO 持仓重建,前序持仓标记(cost_known
  3. Pattern — 4 维行为标签(市场环境 / 交易行为 / 交易结果 / 心理推测)
  4. Insight Engine — 按维度分别统计:胜率、PF、Expectancy、Shapley 归因
  5. What-If Engine — 止损规则回测(持仓期间日线 low 判断触发)+ 因子贡献分析
  6. AI 解释器 — 自然语言诊断报告

分析指标(对照 TradesViz / Edgewonk / Tradervue)

指标 说明
总盈亏 + 收益率 绝对金额 + 总收益率%
胜率 盈利笔数 ÷ 总笔数
最大回撤 百分比(行业标准),含绝对金额参考
盈亏比(Profit Factor) 总盈利 ÷ 总亏损,>1.5 合格
预期收益(Expectancy) R-multiple,每笔交易预期收益率
损益比(Payoff Ratio) 平均盈利 ÷ 平均亏损
最大回撤容忍度(MAE) 持仓期间平均最大浮亏%
最大浮盈(MFE) 持仓期间平均最高盈利%
止盈效率(Profit Capture) 浮盈兑现率
Shapley 归因 公平归因各标签对总盈亏的贡献
净值曲线 按持仓退出日期累计盈亏的面积图,盈利绿色/亏损红色
股票维度盈亏 按个股汇总交易次数、胜率、总盈亏、平均持仓天数

4 维行为标签体系

标签定义单一真相源:docs/guides/pattern_definition.yaml

维度 标签 说明
市场环境 BULL_TREND, BEAR_TREND, SIDEWAYS, BREAKOUT, BREAKDOWN 入场所处技术环境(客观)
交易行为 CHASE, BOTTOM, PYRAMID, AVERAGE_DOWN, TURN, SCALP, SWING, POSITION, FOMO 交易者主动采取的动作
交易结果 TIGHT_STOP, TRAILING_STOP, TIME_EXIT, LARGE_LOSS_EXIT 事后结果分类
心理推测 POSSIBLE_REVENGE, OVERTRADING, HOLD_LOSER, CUT_WINNER, PSY_FOMO AI 推测(低置信度)

支持的券商/终端

类别 来源
A 股 API 终端 QMT、VN.PY、东方财富、同花顺
期货终端 文华财经、博易大师、CTP/快期/易盛
券商 APP 华泰涨乐、中信信e投、国君君弘、广发易淘金、海通e海通财…
通用 SmartParser(基于数据值推断,零配置)

项目结构

TradeDoctor/
├── backend/
│   ├── app/
│   │   ├── api/          # REST 端点 (auth, upload, analysis, report)
│   │   ├── engine/        # 计算引擎 (compute, position, pattern, insight, whatif, mae, attribution, market_data, market_fetcher)
│   │   ├── parsers/       # 解析器 (smart.py + 券商插件)
│   │   ├── ai/            # AI 层 (provider, prompt)
│   │   ├── models/        # SQLAlchemy 模型
│   │   └── auth/          # JWT 认证
│   └── tests/             # 单元测试 + 引擎测试
├── frontend/
│   └── src/
│       ├── pages/         # upload, analysis, report, history, auth
│       ├── components/    # StatsCards, EquityCurve, SymbolSummaryTable, PatternChart, WhatIfChart
│       └── constants/     # patterns.ts(标签中英文映射)
├── docs/
│   ├── guides/            # 权威开发指南:FINANCE_DOMAIN, AI_INPUT_CONTRACT, VERIFICATION_CHECKLIST, pattern_definition.yaml
│   ├── SHADOW_STRATEGY_PRD.md  # V2.0 影子策略 PRD
│   ├── 环境配置说明.md
│   └── archive/           # 历史文档归档(过程性审查/早期PRD/历史计划)
└── testfiles/             # 真实脱敏交割单 + 模拟样本

设计原则

  • AI 负责解释,程序负责计算 — 所有数字由 Python 计算,AI 仅生成自然语言报告
  • 中文优先 — 所有指标显示中文术语,英文缩写加括号解释
  • 散户可理解 — 每个指标附评级(优秀/良好/一般/较差)和一行解释
  • 信息分层 — 核心结果 → 进阶分析 → 高级分析(折叠)
  • 领域知识驱动 — 开发前参考 docs/guides/FINANCE_DOMAIN.md,完成后按 docs/guides/VERIFICATION_CHECKLIST.md 自检

版本历史

版本 日期 主要变更
V1.3.0 2026-07-03 多文件批量上传 + WhatIf 全面去硬编码 + 情景回测止损/止盈多参数扫描自动推荐 + 反事实归因 delta 符号强调 + 评级触发频率辅助 + 大亏止损后视偏差警示 + 小样本降级联动 + WhatIf Tab 精简重构(矩阵行可展开)
V1.2.9 2026-07-03 投资研究员 4 项 P1 修复:移除 is_deleted 死列 + HOLD_LOSER/CUT_WINNER 阈值交叉基准修正 + 小样本探索性软降级(<15 笔)+ 前序持仓缺失偏差检测(>20% 强制提示)+ scenario 回测标注样本内
V1.2.8 2026-07-02 三方专家联合审查:PYRAMID 补盈利态验证 + outcome 三标签重命名(结果描述措辞)+ 7 份文档对齐 + 新增 AI_OUTPUT_CONTRACT/PRODUCT_PIPELINE 两份信息架构文档
V1.2.7 2026-07-02 AI 诊断深度提升:best_pattern 排序排除 psychology 维度(按 expectancy)+ cross_analysis 摘要喂 AI(top5 盈/亏组合)+ expectancy 与 PnL 背离提示 + WhatIf 快路径防御性护栏;三份核心文档对齐真实账户诊断现状
V1.2.6 2026-07-01 前端全页面移动端适配:数据密集表格卡片化(WhatIf/Insight/TradePreview)、图表响应式高度、Tab 横滑、操作栏 wrap
V1.2.5 2026-07-01 架构债修复:report.py 改读 stats_snapshot、消除慢路径与 compute.py ~280 行重复、统一 PATTERN_MODULES 映射(P0-1/P1-1/P1-2)
V1.2.4 2026-07-01 审计核实修复:CHASE/FOMO 主动行为标签被持仓分类覆盖(conf 降级)+ insight/whatif 慢路径 self-heal 写快照
V1.2.3 2026-06-30 What-If 新增移动止损/固定止盈/移动止盈三规则 + 固定止损 5%→8% + T+1 修正 + AI 报告 scenario_backtest 段
V1.2.2 2026-06-30 展示层归因语义修复:WhatIf 改用 delta 反事实方向、新增大亏止损模拟、回撤/期望/小样本文案修正
V1.2.1 2026-06-30 前端 P1+P2:导航/KPI/报告 TOC/响应式/A11y/可选昵称/管理员加固 + vitest 19 项 + Playwright E2E 16 项
V1.2.0 2026-06-29 AI 报告反事实方向修复 + 补 avg_pnl_pct/shapley 等输入字段 + 建立《AI 输入字段契约》
V1.1.3 2026-06-29 路由补齐+登录回跳、黄色警告可折叠、股票中文名+移动端卡片视图、注册/登录一致性
V1.1.2 2026-06-28 最大回撤百分比 >100% 修复、best/worst pattern 误判修复、Shapley 百分比符号取反修复
V1.1.0 2026-06-27 深度代码审查:422 数据丢失根因(快照不一致)+ 63 个测试补全 + 死代码清理
V1.0.0 2026-06-26 首个正式版本:完整分析链路 + 匿名案例贡献 + ConsentLog 合规审计

下一里程碑:V2.0 影子策略

从"诊断"升级为"策略发现"——从用户历史盈利回合蒸馏可回测的交易规则,量化"实际交易 vs 影子策略"PnL 差距归因。详见 docs/SHADOW_STRATEGY_PRD.md(含 2026-07 评估结论附录 C)。

Donate

如果这个工具帮到了你的投研工作流,欢迎请作者喝杯咖啡 ☕

微信赞赏码

想要什么功能?欢迎开 Issue 提需求,赞助者的 Issue 优先处理。


免责声明

本项目仅供学习研究与技术演示,不构成任何投资建议。

  • 本系统产出的所有分析报告和交易信号均由 AI 自动生成,可能存在错误或偏差
  • 投资决策请咨询持有中国证监会颁发资质的专业机构
  • 作者不对使用本工具产生的任何投资损失承担责任
  • 股市有风险,投资需谨慎

License

MIT + Commons Clause — 非商业用途开源

About

用户上传交割单,AI 分析亏损原因并生成改善建议(数据分析结果由程序计算得出非AI编造)。目标是广大A 股散户。

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages