Skip to content

feat: add A-share training and web controls - #1

Open
Altrouge7 wants to merge 1 commit into
rosemarycox5334-debug:mainfrom
Altrouge7:codex/a-share-web-training
Open

feat: add A-share training and web controls#1
Altrouge7 wants to merge 1 commit into
rosemarycox5334-debug:mainfrom
Altrouge7:codex/a-share-web-training

Conversation

@Altrouge7

Copy link
Copy Markdown

改动说明

本次 PR 为 AlphaMaster 增加了 A 股市场支持,并完善了训练设备选择、数据下载、训练参数配置和进度展示。

主要改动

1. 增加训练设备选择

  • 支持 CPUCUDAAuto 三种训练设备。
  • CLI 和 Web 页面均可选择训练设备。
  • 设备参数会传递至模型训练进程,支持使用 GPU 加速训练。

2. 增加市场类型选择

  • 支持通用市场 generic
  • 支持 A 股市场 a_share
  • 市场配置会贯穿训练、策略保存和回测流程,确保训练与回测使用一致的交易规则。

3. 增加 A 股交易限制

A 股模式下新增以下约束:

  • 禁止做空。
  • 执行 T+1 交易规则,当日买入的仓位不能当日卖出。
  • 涨停时限制买入。
  • 跌停时限制卖出。
  • 根据主板、创业板、科创板等板块应用对应的涨跌停比例。
  • 对一字涨停和一字跌停等无法成交的情况进行处理。

4. 增加 A 股数据下载

  • Web 页面支持输入六位 A 股代码下载数据,例如 002192
  • 自动识别上海和深圳市场代码。
  • 优先通过东方财富接口获取前复权数据。
  • 东方财富连接失败时,自动回退到 pytdx 分页下载。
  • 下载完成后生成项目可直接使用的 Parquet 数据文件。

pytdx 回退数据通常为不复权数据,接口会返回实际使用的数据来源。

5. 增加 Web 训练参数配置

Web 页面现在支持配置:

  • 训练步数
  • Batch size
  • 公式最大长度
  • 训练集比例
  • Walk-forward 验证折数
  • 训练集与验证集间隔
  • 随机种子
  • 训练设备
  • 市场类型

6. 支持自定义训练集和验证集划分

  • Walk-forward 划分支持自定义训练集比例。
  • 支持设置训练集与验证集之间的 gap。
  • 选择数据文件后会显示数据划分预览,包括训练集数量和每折验证集数量。

7. 调整最低数据量限制

数据量限制调整为:

  • 硬性最低值:1000 bars
  • 推荐值:3000 bars

具体行为:

  • 少于 1000 bars:拒绝训练。
  • 1000~2999 bars:允许训练,但显示样本偏少警告。
  • 3000 bars 及以上:正常训练,不显示警告。

8. 优化训练进度展示

未开始训练时显示:

尚未开始(计划 9,000 步)

训练开始后显示:

当前步数 / 总步数(完成百分比)

同时将原来的“进度”改为“训练进度”,避免把训练步数误认为数据 bars 数量。

测试情况
A 股交易规则、Walk-forward 划分和数据限制定向测试:26 passed
JavaScript 语法检查通过
Git 差异格式检查通过
完整单元测试结果:211 passed, 7 failed
完整测试中的 7 个失败来自仓库现有基线断言不一致,涉及算子数量、特征维度以及依赖系统时间的测试,与本次改动无直接关系。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant