Skip to content

handsomejustin/Stock_trading_training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

盘感训练器 — K线推演模拟交易

一款基于 PyQt5 + Matplotlib 的桌面 K 线推演训练工具。从本地通达信数据文件中随机抽取 A 股历史片段,逐根隐藏未来走势,让你在真实行情中磨练买卖判断力,训练结束后自动生成详尽的 Markdown 分析报告。


功能概览

模块 功能
随机选股 自动扫描通达信 vipdoc 目录,随机抽取指定天数的 A 股日线片段
逐根推演 逐根揭开 K 线,模拟真实看盘体验,完全隐藏未来走势
模拟交易 键盘一键买入 / 卖出,支持分批建仓减仓,实时标注买卖点
止损止盈 可配置止损/止盈百分比,触发时自动平仓
多指标面板 3–5 个副图指标面板自由切换,支持 MACD / KDJ / RSI / CCI / OBV 等 12+ 种指标
可配置均线 最多 6 条均线,周期自定义(默认 5/10/20/30/60/120 日)
图表拖拽缩放 左键拖拽平移、滚轮缩放查看历史 K 线,推演时自动跟随
前复权处理 自动读取通达信除权除息数据,对历史 K 线进行前复权
主图叠加 均线 / EXPMA / BBI / BOLL 一键叠加显示
十字光标 鼠标移动时所有子图联动显示十字光标
暗色主题 全局深色调色板,适合长时间训练
AI 复盘分析 支持 OpenAI / Anthropic / DeepSeek / 自定义端点,训练结束后一键 AI 分析
训练统计 历史训练数据持久化,统计面板展示累计训练、胜率、收益率趋势
训练报告 自动生成 Markdown 报告,包含 K 线数据、指标快照、交易评分与收益总结
配置持久化 所有训练参数、指标参数、AI 配置保存到 config.yaml,重启自动恢复

项目结构

learn_kline/
├── main.py              # 主窗口(PyQt5)、暗色主题、快捷键、操作日志
├── chart_canvas.py      # Matplotlib 画布:K 线图 + 成交量 + 副图指标 + 拖拽缩放
├── indicators.py        # 技术指标计算中心(基于 easy_tdx.MyTT)+ 动态均线
├── data_loader.py       # 通达信日线数据加载、随机选股、前复权
├── trade_manager.py     # 模拟交易仓位管理、止损止盈、收益计算
├── portfolio.py         # 仓位管理器(分批买卖、浮动盈亏、时机评分)
├── report_generator.py  # 训练报告生成(Markdown)
├── ai_analyzer.py       # AI 复盘分析(QThread 异步调用)
├── db.py                # SQLite 训练历史数据库
├── stats_panel.py       # 训练统计面板(概览卡片 + 趋势图表)
├── config.py            # YAML 配置读写、默认值合并
├── config.example.yaml  # 配置文件示例(首次使用请复制为 config.yaml)
├── requirements.txt     # Python 依赖
└── logo.ico             # 窗口图标

快速开始

1. 环境要求

  • Python 3.10+
  • 通达信客户端(需要本地日线数据文件)

2. 安装依赖

pip install -r requirements.txt

依赖清单:

包名 用途
PyQt5 GUI 框架
matplotlib K 线图表渲染
numpy 数值计算
pandas 数据处理
pyyaml YAML 配置读写
easy-tdx 通达信数据文件解析 + MyTT 指标库
requests AI 分析 API 调用

3. 配置

首次使用前,将配置文件模板复制为正式配置:

cp config.example.yaml config.yaml

然后编辑 config.yaml,填入通达信安装目录等配置。

⚠️ 注意config.yaml 包含个人敏感信息(如 AI API Key),已被 .gitignore 排除,不会被提交到仓库。

4. 运行

python main.py

首次启动时,程序会尝试自动检测通达信安装目录。如果检测失败,在右侧面板手动选择通达信安装路径即可。


使用方法

训练流程

开始训练 → 随机选股 → 逐根推演 K 线 → 买入/卖出/观望 → 结束训练 → 查看报告 → AI 分析
  1. 点击 🚀 开始新训练,程序随机选取一只 A 股的历史片段
  2. K 线从左到右逐根揭开,你只能看到已揭开的走势
  3. 根据已有走势和技术指标,判断下一步方向
  4. ↑ 买入↓ 卖出 进行模拟交易
  5. 到达最后一根 K 线或按 Esc 结束训练
  6. 程序自动生成训练报告到 docs/ 目录
  7. 可在日志 Tab 点击 🤖 AI 分析 获取 AI 复盘建议

快捷键

按键 功能
逐根前进
逐根后退
PgDn 快进 10 根
买入(默认仓位)
卖出(默认仓位)
1/2/3/4 买入 25%/33%/50%/100%
Shift+1/2/3/4 卖出 25%/33%/50%/100%
Space 观望
Esc 结束训练

图表交互

操作 功能
左键拖拽 平移查看历史 K 线
滚轮 放大/缩小可见 K 线范围
鼠标移动 十字光标联动所有子图

训练参数

在右侧控制面板可配置:

  • TDX 目录:通达信安装路径(支持自动检测)
  • 训练天数:30–500 天,默认 120 天
  • 副图数量:3–5 个副图指标面板
  • 副图指标:每个面板独立选择指标
  • 均线周期:自定义均线周期(逗号分隔,最多 6 条)
  • 主图叠加:均线 / BBI / EXPMA / BOLL 复选切换
  • 止损/止盈:可配置自动止损止盈百分比

支持的技术指标

副图指标

指标 输出 说明
MACD DIF, DEA, MACD 柱 趋势动能指标
KDJ K, D, J 随机摆动指标
RSI RSI6, RSI12, RSI24 相对强弱指标(多周期)
CCI CCI 顺势指标
OBV OBV + OBV_MA30 能量潮指标
CR CR + CR_MA(10/20/40/62) 能量指标
TRIX TRIX, TRMA 三重平滑指标
DMI PDI, MDI, ADX, ADXR 趋向指标
BIAS BIAS1, BIAS2, BIAS3 乖离率指标
WR WR1, WR2 威廉指标
捉妖大师 LONG, MID, SHORT, TREND 自定义趋势指标
MA30乖离 X, S_SMA, X_LMA MA30 乖离信号指标

主图叠加

指标 说明
MA(可配置) 最多 6 条均线,默认 5/10/20/30/60/120 日
EXPMA 12/50 日指数移动平均线
BBI 多空指标
BOLL 布林带(上/中/下轨)

所有指标参数均可在 config.yaml 中自定义。


训练报告

训练结束后自动在 docs/ 目录下生成 Markdown 报告,文件名格式:

report_{股票代码}_{时间戳}.md

报告内容包含:

  • 基本信息:股票代码、数据区间、价格统计
  • 交易操作记录:每次买卖的时间、价格、仓位比例、K 线上下文
  • 完整 K 线数据表:逐日开盘/最高/最低/收盘/成交量/涨跌幅,标记买卖点
  • 技术指标数据:关键指标逐日数值
  • 决策点指标快照:每次买卖时所有技术指标的精确数值
  • 交易评分:5/10/20 日时机评分
  • 收益总结:每笔交易收益率、总收益率、持仓天数统计

报告设计为 AI 可直接解析的格式,方便配合大模型进行交易复盘分析。


配置文件

⚠️ 重要:首次使用请将 config.example.yaml 复制为 config.yaml

cp config.example.yaml config.yaml

config.yaml 包含个人敏感信息(API Key 等),已被 .gitignore 排除,不会被提交到仓库。

config.yaml 主要配置项:

# 通达信安装目录(留空自动检测)
tdx_home: ""

# 训练天数
training_days: 120

# 副图面板数量(3-5)
panel_count: 3

# 均线配置(最多 6 条,周期自定义)
ma_periods: [5, 10, 20, 30, 60, 120]
ma_enabled: true

# AI 分析配置
ai:
  provider: ""        # openai / anthropic / deepseek / custom
  api_key: ""
  base_url: ""
  model: ""

# 止损止盈
trading:
  default_buy_ratio: 1.0
  default_sell_ratio: 1.0
  stop_loss_pct: 0.0
  take_profit_pct: 0.0

# 各指标参数(可自定义)
indicators:
  MACD:
    SHORT: 12
    LONG: 26
    M: 9
  # ... 更多指标参数

打包发布

项目已包含 PyInstaller spec 文件(盘感训练器.spec),可打包为独立 exe:

pyinstaller 盘感训练器.spec

打包产物在 dist/ 目录下,包含 盘感训练器.exe_internal 子目录(运行时依赖),分发时需将整个目录一起打包。


技术栈

  • GUI:PyQt5(Fusion 风格 + 自定义暗色调色板)
  • 图表:Matplotlib FigureCanvasQTAgg 嵌入式画布
  • 数据源:easy-tdx 离线解析通达信 .day 二进制文件
  • 指标库:easy-tdx 内置 MyTT(通达信指标公式 Python 实现)
  • 数据处理:Pandas + NumPy
  • AI 分析:requests(支持 OpenAI / Anthropic / DeepSeek / 自定义端点)
  • 数据库:SQLite(训练历史持久化)
  • 配置:PyYAML

Changelog

v1.1.6 (2026-06-04)

Bug 修复:

  • 训练开始后 K 线未自动滚动到当前位置:_on_load_done 中新增 scroll_to_latest 调用,确保视口对齐到 cursor 位置

v1.1.5 (2026-06-03)

新功能:

  • 技术指标实时数值:副图指标(MACD/KDJ/RSI 等)和主图均线在图例中直接显示当天的具体数值
  • 加载动画:训练开始时显示居中遮罩 + 旋转点动画,后台线程加载数据,不再卡死 UI
  • 均线实时更新:修改均线周期后立即重新计算并刷新图表,无需重启训练
  • 自动更新:启动时静默检查新版本,菜单栏「帮助 → 检查更新」手动触发,支持跳过版本
  • 升级服务端:Flask Blueprint(server/api/update.py),部署到 stock.maolige.com

改进:

  • CI 精简:移除 macOS Intel 构建,仅保留 ARM64,节省约 10 分钟构建时间

Bug 修复:

  • 修改均线周期输入框后图表无变化:_on_ma_periods_changed 现在同步更新 indicator_hub 并重算指标
  • 均线周期减少后旧均线残留:calculate_all 重算前自动清除旧的 MA 数据

v1.1.2 (2026-06-03)

新功能:

  • 加载动画:训练开始时显示居中遮罩 + 旋转点动画,后台线程加载数据,不再卡死 UI
  • 均线实时更新:修改均线周期后立即重新计算并刷新图表,无需重启训练
  • 自动更新:启动时静默检查新版本,菜单栏「帮助 → 检查更新」手动触发,支持跳过版本
  • 升级服务端:Flask Blueprint(server/api/update.py),部署到 stock.maolige.com

Bug 修复:

  • 修改均线周期输入框后图表无变化:_on_ma_periods_changed 现在同步更新 indicator_hub 并重算指标
  • 均线周期减少后旧均线残留:calculate_all 重算前自动清除旧的 MA 数据

v1.1.0 (2026-06-03)

新功能:

  • 加载动画:训练开始时显示居中遮罩 + 旋转点动画,后台线程加载数据,不再卡死 UI
  • 均线实时更新:修改均线周期后立即重新计算并刷新图表,无需重启训练

Bug 修复:

  • 修改均线周期输入框后图表无变化:_on_ma_periods_changed 现在同步更新 indicator_hub 并重算指标
  • 均线周期减少后旧均线残留:calculate_all 重算前自动清除旧的 MA 数据

v1.1.0 (2026-06-03)

新功能:

  • 可配置均线:最多 6 条均线,周期可自定义(默认 5/10/20/30/60/120 日)
  • 图表拖拽缩放:左键拖拽平移、滚轮缩放,推演时自动跟随最新 K 线
  • 前复权处理:自动读取通达信除权除息数据,对历史 K 线进行前复权
  • 数据量增强:根据最长均线周期动态调整缓冲区,确保长周期指标有效
  • AI 分析手动触发:训练结束后手动点击「🤖 AI 分析」按钮,结果保存到 docs/ 目录
  • AI 配置保存按钮:配置面板新增「💾 保存 AI 配置」按钮
  • 训练统计面板:历史训练数据持久化到 SQLite,展示累计训练、胜率、收益率趋势

改进:

  • 右侧面板字体放大(适配老花眼用户)
  • 左侧图表边距优化,减少黑边
  • 右侧面板宽度增加
  • 均线 UI 从固定 checkbox 改为可编辑的周期输入框

v1.0.0 (2026-05-XX)

  • 初始版本:K 线推演、模拟交易、多指标面板、训练报告、暗色主题

License

本项目仅供个人学习与研究使用。

About

盘感训练器 — K线推演模拟交易桌面应用 | PyQt5 + Matplotlib + 通达信数据

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages