Skip to content

回测查探器(WtBtSnooper 前端)为 webpack 编译产物,多项显示问题难以社区贡献,请求开源前端源码 #181

Description

@xukanshan

背景
wtpy/monitor/static/console 下的回测查探器前端(backtest.html + backtest.*.js)只有 webpack 编译产物(文件名带内容 hash),仓库中没有任何前端源码(无 .vue / package.json / 构建配置)。我们在实际策略的日常使用中遇到一批前端显示问题,其中多数的修复点在前端,但由于只有编译产物,无法以 PR 形式贡献给社区。

问题清单

  1. 日线周期信号分析:时间轴/日期显示错误——后端 get_bt_kline 日线 bartime 只传 8 位 yyyymmdd,前端按 bartime/1e4 取日期、bartime%1e4 取时间拆分,日期只剩年份、月.日被渲染成 "06:17"。后端已可通过 bartime = date*10000 + 1500 修复(我们已提交 PR)。
  2. 日线周期:买卖点/回合连线无法锚定——前端将回合开/平仓时刻与 K 线 bartime 做时刻级精确匹配,日线周期下永不命中。根本解决需要前端改为日期级匹配。后端归一可绕过(已在我们的 PR 中一并处理),但匹配逻辑本身仍非日线友好。
  3. 多品种策略:买卖点/回合全品种混画——前端绘制时未按当前主图品种过滤,其他品种的箭头画到当前图表上(位置错乱)。
  4. 分时弹窗数据源硬编码外部演示服务器——硬编码 hqchart.zealink.com 演示缓存接口,本地部署必然失败,弹窗永远“数据加载中”;selfIndex 分时分支只有空壳。建议数据源可配置(HQChart 已有 NetworkFilter 机制)或提供本地实现。
  5. 弹窗图表未透传 NetworkFilter——主图的 NetworkFilter 不传给弹窗图表实例。
  6. 隐藏页签切换后画布永久空白——paintChart 在隐藏期将 clientWidth=0 写成内联样式并以 0 尺寸重绘,切回后需手动 resize 才能恢复。建议尺寸为 0 时跳过。
  7. 主图 K 线数量上限 1000 根——MaxReqeustDataCount=1000,长回测只能看最近一段。
  8. 指标列表死条目 STD/RST——HQChart 注册表中不存在,点击后窗口空白。
  9. 价格小数位识别失败——图表库按 A 股裸代码识别精度,WonderTrader 的 SZSE.ETF.159928 格式识别不出,统一落默认 2 位。图表库已有 GetCustomDecimal 入口可按规则注册。
  10. 双 Y 轴图表 0 轴对齐取决于数据运气——“月化收益以及收益率(%)”左右两轴 scale:true 独立缩放,0 轴是否重合看数据范围;“浮盈与回撤(%)”将不同分母口径的百分比画同一根线性轴,量纲差异大时低幅序列被压扁。建议显式对齐零轴或提供副轴/对数轴选项。

为什么我们不提交前端修复
上述问题我们大多已在本地验证出修复方法,但修复载体是编译产物 JS——文件名带内容 hash、代码压缩混淆,diff 无法审计,也不存在“基于源码重新构建”的可能。提交编译产物的二进制式变更不符合开源规范,也无法 review。

请求
希望官方开源 monitor 前端源码(Vue + element-ui + HQChart 封装层)与构建配置。开源后上述问题我们愿逐项以 PR 贡献;后端侧我们已准备若干配套修复 PR(日线 bartime 时间位、回合手续费归属、接口健壮性等),可与前端修复衔接。

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions