Jason Zhang
|
3ce22bd4eb
|
Merge pull request #9 from awayings/fix/bars-dialog-pagination
fix: K线取数翻页浪费——弹窗只取近2年 + fetchBars 停页判断取错端点
|
2026-09-11 17:05:13 +08:00 |
|
 awayingsandClaude Code
|
04f7f1f34e
|
fix: fetchBars 停页判断取末根(最新根)恒假,带 startDate 的请求多翻一页
页内升序,本页最早一根应是 pageBars[0];原代码取 pageBars[length-1]
(=最新根),"最早 ≤ startDate" 恒假 → 每个限定日期范围的请求都多发
一页 800 根(sentiment 量能仪表盘 2 页→1 页,选股器/弹窗同样受益)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-11 16:31:55 +08:00 |
|
 awayingsandClaude Code
|
71c386509c
|
fix: 个股/板块弹窗日K只取近 2 年,不再全历史分页(5+ 页 → 1 页)
弹窗日K只用最近 250 根,却以 count=800 逐页拉全历史(300308 约 3400 根
= 5 页),深层页还触发服务端 QFQ 负价的 NONE+XDXR 本地重算(每页多一次
协议请求)。传 startDate(近 2 年)后单页 800 根即覆盖,翻页循环第一页
即命中退出;长期停牌取不到时退回全历史,行为不变。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-11 16:25:52 +08:00 |
|
Jason Zhang
|
5844c4a8a6
|
Merge pull request #8 from awayings/feature/watchlist-returns
feat: 自选列表新增「近3日/近1周/近2周」涨跌幅三列(issue #7)
|
2026-09-11 16:17:51 +08:00 |
|
 awayingsandClaude Code
|
5ea6914edb
|
perf: /watchlist/returns 取数 800 → 20 根(MAC 单页,冷路径请求减半)
实测 MAC 服务端 QFQ 复权锚与请求窗口无关(count=11 vs 800 收盘价
完全一致),数学上 max(DEFAULT_WINDOWS)+1=11 根即够,+10 缓冲;
800 根在 MAC 协议上是 2 页请求,纯属浪费。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-11 15:28:48 +08:00 |
|
 awayingsandClaude Code
|
5c2d4ff3d1
|
fix: 修复 CI ruff I001(测试文件 import 排序)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-11 14:37:23 +08:00 |
|
 awayingsandClaude Code
|
fb35677802
|
feat: 自选列表新增「近3日/近1周/近2周」涨跌幅三列(issue #7)
交易日偏移口径:T = 上证指数日线(交易日历)中 <= 今天的最后一天,
D_n = T 往前 n 个交易日,锚点 = 个股日线(/bars 同款 QFQ)中
date <= D_n 的最后一根 bar。后端只回锚点收盘价,涨跌幅由前端用
SSE 实时价现算,盘中三列随报价免费跳动、无需轮询本接口。
- 新增 GET /watchlist/returns + 纯计算模块 web/returns.py(零 IO,单测覆盖
停牌回退/次新 null/除权日 QFQ/非交易日回退等口径)
- 个股日线与交易日历均进程内缓存(当日不变、次日失效),重复刷新零行情请求;
日历缺今天(serve 盘前启动)时按 60s 间隔重取,避免 T 整体前移
- 取数并发 ≤ 4(TDX 防封红线);单只失败只落 error,不影响整表
- 前端 +3 列(着色复用 dirClass/fmtPctSigned),e2e 同步断言
与 issue 定稿的两处偏差(/simplify 收敛,"减少不必要的改动"):
- 删除 windows 查询参数:列名与窗口一一对应(issue 亦将"用户自定义窗口"
列为 out of scope),固定 3/5/10
- 个股缓存由磁盘 JSON 改为进程内 dict:可观测行为不变(当日不重复请求),
但 serve 重启后当天首次请求会重取一次
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-11 11:39:10 +08:00 |
|
Jason Zhang
|
57b1a7b32b
|
Merge pull request #2 from awayings/feature/fix0910
fix: 适配 2026-09 主站新式握手,修复 K线/市场统计返回空数据
|
2026-09-10 11:36:53 +08:00 |
|
 awayingsandClaude Code
|
f31790e6d9
|
fix: 适配 2026-09 主站新式握手,修复 K线/市场统计返回空数据
2026-09 起行情主站拒绝旧版 pytdx 三条固定 msg_id 握手建立的连接:
握手有响应,但该连接上 K 线一律返回 2 字节空包(0x0320,声称 800 条)、
880xxx 统计指数快照返回空——服务器不报错只是不给数据,导致 web
/market/stat 500、/bars/index 空列表。
修复:改为新式单条握手(0x000d + payload 0x01 + 随机 msg_id,每连接
新生成),sync/async transport 连接与 sync 心跳统一走
easy_tdx.commands.setup.build_handshake_command()。业务请求格式与固定
msg_id 无需改动(对照实验:新式握手连接上固定 msg_id 请求全部正常;
旧三条命令即使 msg_id 随机化仍被拒)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-10 11:25:28 +08:00 |
|
Jason Zhang
|
80b0d399e0
|
Merge pull request #1 from awayings/docs/restructure
docs: 文档体系重构——README 瘦身、docs 分域拆分与全量索引
|
2026-09-08 23:32:20 +08:00 |
|
 awayingsandClaude
|
f58010ead8
|
docs: README 瘦身至 204 行 + 文档导航;修复 examples 财务锚点
- README 保留功能介绍/30 秒上手/架构摘要/安装/Web UI 入口,CLI 参考、
Web API、Python API、枚举、完整 API 列表、架构树、开发章节全部移交 docs/
- 新增「文档导航」段:24 份 docs 全部从 README 可达,完整索引见 docs/index.md
- examples/06_finance/README.md 的 #财务 锚点改指 docs/cli-finance.md#财务
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-09-08 23:21:55 +08:00 |
|
 awayingsandClaude
|
ae24c3a5f1
|
docs: 新增 architecture/development,重写 docs/index.md 全量索引
- architecture.md:七层架构图 + 源码树 + 分层要点(越层直调/协议层无 IO/
e2e_mock 替身/__main__ 三形态/平台差异)
- development.md:环境初始化/测试三层分布/静态检查/开发流程四阶段
(需求 Issue→开发测试→提交 CI→发布 release+CHANGELOG)/文档规范
- index.md:人类目录(分类+每文件一句描述+历史归档标注)+ 完整 toctree
(38 个 md 全部入树,消除 ReadTheDocs orphan 页面)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-09-08 23:21:50 +08:00 |
|
 awayingsandClaude
|
990b4a7802
|
docs: 拆分超大文档——教程/参考分离,去过期版本横幅,模型枚举归并
- backtest_usage(742→485):CLI 章移交 cli-backtest.md,示例/注意事项
抽至 backtest-examples.md,重建目录
- quantitative-guide(628→325):第 5-7 章(滑点/执行仿真/归因/工作流)
抽至 quantitative-advanced.md 并重编号
- api_reference(704→478):删除过期版本横幅(1.16.2)与快速开始教程段;
数据模型/枚举与 field_mapping.md 逐表核对后去重(field_mapping 为唯一权威);
WebSocket 节随 web-api.md 合并移除
- field_mapping:吸收 MAC 协议枚举(Period/Adjust/Category/BoardType/
SortType/ExMarket),全部文档回到 ≤500 行
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-09-08 23:21:44 +08:00 |
|
 awayingsandClaude
|
36b586b015
|
docs: README Python API 章拆至 python-api.md(教程),枚举/API 列表归入参考文档
- python-api.md:连接/MAC/统一客户端/标准协议/离线/缠论/公告/财报/实时轮询教程
- MAC 协议枚举(Period/Adjust/Category/BoardType/SortType/ExMarket)并入 field_mapping.md
- MacClient/MacExClient 完整方法表并入 api_reference.md(TdxClient 表与正文重复,删除)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-09-08 23:21:35 +08:00 |
|
 awayingsandClaude
|
d8b3a1afb5
|
docs: README Web 章拆至 web-api/web-ui,WebSocket 帧规范并入 web-api
- web-api.md:REST/WebSocket/SSE 端点与示例;吸收 api_reference.md 的
WebSocket 帧表/控制消息/行为约定/前端接入,消除两处互补重复
- web-ui.md:行情终端与回测工作台零代码操作手册(原错位嵌套在
「本地 K 线仓库」章节下的 Web UI 块,补全章节结构)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-09-08 23:21:30 +08:00 |
|
 awayingsandClaude
|
bfb8789ae8
|
docs: README CLI 章按域拆至 docs/cli*.md + chanlun/data-local(含参数表去重合并)
- cli.md 命令总览(补 chanlun/zhuoyao/bias-signal 漏项)+ 按域导航
- cli-market / cli-finance / cli-indicators / cli-screen / cli-backtest 按域拆分
- cli-backtest 吸收 backtest_usage CLI 章的 backtest/optimize 参数表与 --indicators 说明
- chanlun.md(CLI+Python)、data-local.md(warehouse+offline)按主题合一
- 策略 demo 图复制至 docs/images/demo/,图片与内联链接路径改写为 docs 内相对路径
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-09-08 23:21:26 +08:00 |
|
Justin Gu
|
e374a0da28
|
release: v1.32.6 — 两周改动深度审查全面修复(回测口径三件套/LLM 安全加固/涨停价舍入/时区统一/缓存与竞态等 58 处)
对 v1.21→v1.32.5 的 249 文件 4.2 万行改动做六路专项审查,本轮落地全部发现:
回测正确性:组合收益 fillna(0) 虚增、轮动停牌日过期价成交、单标的 WF 逐窗指标
被预热区稀释(三件套均带先红后绿回归);worst_drawdown 方向、grading 容错、
组合体检品种费率、寻优端点费率透传。
安全:LLM api_url 仅 http/https 且禁 userinfo(封死 file:// 读取与 Key 外送链)、
错误响应不回显原始 body、响应体 2MB 上限、配置原子写、坏配置字段级防御。
数据:涨跌停价整数分币舍入(67/318/90 个价位错 1 分漏判清零)、交易时段/采样/
provisional 统一沪时区、warehouse 增量缺口自动全量重拉、provisional 定点转正、
baostock 真故障抛错 + W/M 去 tradestatus(实测服务端报错,周月兜底此前从未工作)
+ 指数 vol 股→手(实测锚定)、ccpm 结构变更抛错。
Web API:缓存键补 count/vipdoc、NaN 清洗先于缓存、count>800 分页取全量、
submit 透传真实状态、pending 不再被淘汰成幽灵、watchlist/server 入参约束。
公式:FILTER 去副作用、0-1 值域误判收严、递归深度上限、REF 负移位显式禁止。
前端:4 处请求竞态序号守卫、Sparkline viewBox、北交所 market=2 映射、
空数据缓存死角、AI 弹窗卸载中止轮询、量能/资金日历口径修正。
CLI/CI:warehouse sync 失败 exit 1、参数校验干净报错、release 真实发布 SHA256、
CI 超时与缓存、spec 补 baostock 前提。
约 60 条回归测试先红后绿;pytest 1820 全过,ruff/mypy/vue-tsc/node --test 全绿。
|
2026-09-06 22:16:48 +08:00 |
|
Justin Gu
|
d5cf9c14a9
|
feat(web): 品牌区显示应用版本号 — 新增 GET /api/v1/meta,前端启动拉取展示
|
2026-09-06 14:34:59 +08:00 |
|
Justin Gu
|
99733f13d1
|
release: v1.32.5 — 回撤持续统计修复,统一为最长水下期口径(单标的风险指标恒为 1)
|
2026-09-06 02:42:34 +08:00 |
|
Justin Gu
|
c1d1349c8b
|
docs(ci): Release 模板正文补充杀软误报说明与体积修正
v1.32.4 有用户反馈 Defender 报 Trojan:Win32/Wacatac.C!ml——未签名
PyInstaller 单文件的典型 ML 误报。把误报说明(核验步骤/VirusTotal
交叉验证/微软误报申诉入口)固化进 release.yml 的 body 模板,
后续版本自动携带;体积描述 80-150MB 修正为实际的 40-50MB。
|
2026-09-06 01:24:47 +08:00 |
|
Justin Gu
|
757859bc18
|
fix: mypy 严格模式修复 — 热点构建状态收窄与 Task 泛型参数(CI mypy job)
|
2026-09-05 12:18:36 +08:00 |
|
Justin Gu
|
342e6e8d41
|
release: v1.32.4 — 盘面洞察系列六栏目 + AI 复盘 + 资金日历(成分股排序/截断修复)
|
2026-09-05 12:08:33 +08:00 |
|
Justin Gu
|
9be6f156c7
|
fix: 热点相关性矩阵行列顺序跨重启随机互换 — set 迭代序非确定性
board-mac/hotspot-correlation 的入阵板块来自 set 的并集,
sorted(days_in, key=-days_in) 在上榜次数并列时保持 set 迭代序,
而字符串哈希随机化(PYTHONHASHSEED)使该顺序跨进程不稳定——
服务每次重启矩阵的行/列都可能互换(全量单测中按哈希种子复现)。
排序加 code 兜底使其确定性;热点矩阵 rows_out 的多级排序同样
补 code 兜底(全并列时此前也受 set 序影响)。
|
2026-09-05 11:42:05 +08:00 |
|
Justin Gu
|
610092f968
|
test: ex_reconnect 测试密闭化 — 屏蔽跨主机故障转移的真实网络探测
TestMacExClientReconnect::test_all_retries_relogin_each_time 在部分机器
login 计数 5 != 4:4 次退避重试耗尽后 _execute 会走跨主机故障转移
(select_best_host_sync 真实测速),找到可切换主机时会再 connect+login
一次——测试未 mock 该阶段,断言结果依赖运行环境的网络可达性。
- 新增 autouse 夹具把 ex.client / ex.mac_client 的 select_best_host_sync/async
统一 patch 为"找不到新主机",全部用例密闭化、不再发真实探测
- 新增 test_failover_stage_relogs_in_and_raises:显式钉住故障转移找到
新主机时也必须 _login()(4+1=5 次)且仍失败则抛出的语义
|
2026-09-05 11:42:04 +08:00 |
|
Justin Gu
|
aead122478
|
feat: 涨停生态 vipdoc 路径可配置 — 应用级 KV 设置 + 页面配置行
- 新增 AppSettingsStore(~/.easy_tdx/settings.db,KV 持久化,重启不丢)
- GET/PUT /settings/vipdoc:读取/保存本地 vipdoc 目录(保存即校验目录
存在,并清空涨停生态/历史缓存,下次扫描立用新路径;空串=恢复自动检测)
- vipdoc 解析优先级:显式参数 > 已存设置 > 自动检测(TDX_HOME/常见路径)
- /limitup-ecology 响应携带 vipdoc_path 供页面展示生效目录
- 涨停生态页头部新增路径配置行(输入框+保存+恢复自动检测),
未检测到数据的空态文案引导填写
|
2026-09-05 11:24:48 +08:00 |
|
Justin Gu
|
a36043f962
|
fix: 市场情绪页空态提示层铺满全页拦截鼠标
资金日历的 .fund-card 未设置 position:relative,其空态提示
.empty-hint(absolute + inset:0)向上找到了无定位祖先,直接以
初始包含块铺满整个视口,把全页链接/按钮都挡住。修复:
- .fund-card 加 position:relative,提示层收回卡片内
- .empty-hint 加 pointer-events:none,纯信息层双保险永不拦截交互
|
2026-09-05 05:02:08 +08:00 |
|
Justin Gu
|
a9782b74b9
|
feat: 盘面洞察收官 — AI 盘面复盘 + 板块主力资金日历
- AI 盘面复盘(市场情绪页):一键汇总当前情绪/量能/涨停梯队数据生成
摘要 Prompt,走 /llm/chat/async 异步任务 + 轮询,回复页内展示并经
_record_history 自动归档「AI 解读历史」
- 板块资金日历:FundFlowSampler 每交易日 14:45 后经
get_board_ranking(main_net_amount) 采样行业主力净流入 Top10,
SentimentStore 新增 board_fund 表((date,rank) 幂等);口径为
"涨幅前 50 名中主力净流入最高 10 个"(逐板块 summary 太贵,非全市场
严格排序);/market/board-fund/history + 市场情绪页日历视图
- app.py lifespan 接线启停;路线图 ⑥⑩ 标记收官
|
2026-09-05 04:43:22 +08:00 |
|
Justin Gu
|
7f0f14532e
|
refactor: 移除异动雷达 — 数据源盘中几乎无记录,功能不达预期
- 删除 /radar 页面与导航、看板「异动雷达」卡片、fetchUnusual 封装
- 移除 /mac/unusual HTTP 端点(MAC 协议层 get_unusual 与 mock 保留,
属协议覆盖面);路线图 ③ 标记取消
|
2026-09-05 04:42:53 +08:00 |
|
Justin Gu
|
0a205ffbf3
|
feat: 盘面洞察第四批 — 板块相关性热力图 + 异动雷达 + 量能仪表盘
- 相关性 /hotspots 页内新增「相关性」视图:/board-mac/hotspot-correlation
复用热点历史矩阵缓存,对窗口内活跃板块(每日前 per_day 名并集,按上榜次数
取前 N)两两算日涨跌幅 Pearson 相关;红=同涨同跌(抱团)、绿=跷跷板(轮动),
ECharts 热力图 + 双向色阶 visualMap;无缓存时透传 building 状态
- 异动雷达 /radar:沪深异动流时间线(封板/炸板/大笔买入/逼近涨停…),
每分钟异动密度柱 + 类型筛选 chips(带计数),行点击直达个股弹窗,15s 轮询
- 量能仪表盘并入市场情绪页:两市(上证+深成 5 分钟线)累计成交额曲线
vs 近 5 日同期均值(虚线),标题给出偏离百分比——放量/缩量一眼可辨
- 热点缓存判定重构为 _hotspot_history_or_build 公共入口,correlation 与
hotspot 共用同一构建状态机;新增相关性矩阵回归单测
|
2026-09-05 04:09:03 +08:00 |
|
Justin Gu
|
37c732fb30
|
fix: 板块弹窗成分股写死 120 只截断 — 改全量拉取
BoardDialog loadMembers 硬编码 count=120,CPO(205 只)、半导体(185 只)
等大板块的成分股榜永远少一大截。改为 1000(后端单页 80 自动翻页,
拉满后按成员清单自然终止,典型 200 只板块仅 3 个请求);
fetchBoardMembers 缺省值同步对齐。
注:688801 燧原科技 MAC 报价缺前收(pre_close=0),前端已有除零守卫,
属数据源口径而非排序问题。
|
2026-09-05 03:41:03 +08:00 |
|
Justin Gu
|
7456f81c80
|
fix: 板块成分股/排行报价分页合并顺序颠倒 — 多页前插改按页序追加
BoardMembersQuotesCmd 分页合并曾用 batch + all_quotes 前插,而协议 start=0
返回排序后最前一页:成分股超过单页 80 只的板块(半导体 SH881319、
光学光电 SH881329、通信设备 SH881338 等)弹窗涨跌幅榜从第 81~100 名开头,
前 80 名被压到后面,肉眼即乱序;≤80 只的板块单页不受影响。
同步/异步 get_board_members 与 get_stock_quotes_list 共 4 处统一改为
按页序追加(all_quotes = all_quotes + batch),回归测试钉死多页合并顺序、
start 偏移推进与末页不足一页的终止行为。
注:test_ex_reconnect::test_all_retries_relogin_each_time 存量失败
(干净工作树同样失败),与本修复无关,另案处理。
|
2026-09-05 03:30:52 +08:00 |
|
Justin Gu
|
2b86a7d588
|
feat: 市场情绪栏目 — 盘中情绪采样器 + 宽度分时 + 涨停史离线回补
- /sentiment 市场情绪:温度卡(实时上涨占比/涨跌停/总成交,五档情绪判定)
+ 今日宽度分时(上涨/下跌/涨停家数三线)+ 近 60 日涨停跌停家数与上涨占比
- SentimentSampler:交易时段每分钟采样全市场广度(get_market_stat),
停牌/盘外自动跳过、失败不中断;SentimentStore 落 SQLite
(~/.easy_tdx/sentiment.db,(date,minute) 幂等主键,重启不丢)
- /market/sentiment/today|history:当日分钟曲线 + 逐日聚合(收盘快照占比/峰值)
- /market/limitup-history:涨停跌停家数逐日历史由 vipdoc 离线回补,
无需采样积累即时可用;缓存按 days 分键(修复 10 天缓存被 60 天请求命中)
- 采样历史需交易日积累,页面空态有明示;涨停/跌停历史开箱即有 60 天
|
2026-09-05 03:10:19 +08:00 |
|
Justin Gu
|
e419f911b7
|
feat: 盘面洞察三栏目 — 热点滚动/大盘日历/涨停生态,移除龙头池
- 热点滚动 /hotspots:交易日×板块涨跌矩阵(行业/概念/风格FG、领涨领跌镜像、今日~30日窗口),
每日名次徽标+连板/累计/首榜统计,统计卡可点击展开成员板块;后端 /board-mac/hotspot
两段式数据(历史日K矩阵当日缓存 + 今日实时列,周末 pre_close 未滚动去重),
单连接约束下后台构建+进度轮询;风格轮动 /styles 为同视图 FG 路由别名
- 大盘日历 /calendar:指数全年红绿热力图,方框大小编码成交额(年内四分位),
悬停浮框显示收盘/涨跌幅/成交额
- 涨停生态 /limitup:本地 vipdoc 日线离线回算连板天梯/首板二板分布/炸板率/跌停;
仅统计最后一根 bar 等于全市场最新交易日的股票(防停牌/退市/未下载陈旧文件污染),
主板 5% ST 判定带低价护栏;名称前端经 symbol-info 懒加载补齐
- 移除龙头池栏目及 /market/core-leaders 端点(screen 模块 universe=core 保留)
- 设计文档:docs/hotspot-rolling-design.md、docs/market-insights-roadmap.md
|
2026-09-05 02:43:02 +08:00 |
|
GitHub
|
ef9b34b88d
|
release: v1.32.3 — 策略库保存名称带股票名 + 参数寻优买入持有基准对比
|
2026-09-04 22:45:04 +08:00 |
|
GitHub
|
50f00440c5
|
test: E2E 适配保存策略名称带股票名 — 预填名预期值更新为「双均线交叉 · 000001 · 平安银行」
|
2026-09-04 22:44:24 +08:00 |
|
GitHub
|
5476ba0f33
|
feat: 参数寻优新增买入持有基准对比 — 两个寻优接口返回同口径 buy_hold(run_buy_hold_benchmark),全局最佳/最优结果总收益旁展示 [买入持有:xx.xx%],涨红跌绿
|
2026-09-04 22:42:13 +08:00 |
|
GitHub
|
9b9d123105
|
feat: 保存策略默认名称挂股票名 — 弹窗打开时查 /mac/symbol-info 拼成「策略 · 代码 · 股票名」,失败/手动改名不打扰,摘要行同步带名
|
2026-09-04 22:42:07 +08:00 |
|
GitHub
|
75a741e03c
|
release: v1.32.2 — baostock 自动兜底数据源(TDX 全败时最后一级回退 + warehouse 多源 + EXE 内置)
|
2026-09-04 19:58:09 +08:00 |
|
GitHub
|
2359df8694
|
feat: warehouse sync 支持 --source auto/tdx/baostock + EXE 打包内置 baostock 兜底源 + README 使用说明
|
2026-09-04 19:40:28 +08:00 |
|
GitHub
|
01e8fc0cc1
|
feat: /bars 自动兜底数据源 baostock — TDX 全部路径失败时最后一级回退(仅日线及以上),响应带 source 字段标注数据来源
|
2026-09-04 19:24:05 +08:00 |
|
GitHub
|
bc2774bbf5
|
docs: README 头部调整 — 宣传图移至 Star History 图表之前
|
2026-09-04 18:48:26 +08:00 |
|
GitHub
|
d3fbedd1ee
|
docs: README 开头新增 Star History 星标历史图表(深浅主题自适应 picture 版)
|
2026-09-04 18:26:42 +08:00 |
|
GitHub
|
cb506dc0ed
|
docs: README 新增回测防过拟合验证链实拍(WF 样本外/一条龙评估/25 项指标/成交明细)与期货持仓排名页截图
|
2026-09-04 18:20:29 +08:00 |
|
GitHub
|
f6dab148bb
|
docs: README 行情终端章节新增行业/概念总览三张实拍截图(热力图通栏 + 20日排序/概念页并排)
|
2026-09-04 18:12:12 +08:00 |
|
GitHub
|
55494b799a
|
docs: README 开头重写为定位+四大能力总览(去版本号堆砌),补 CLI 新命令与 Web API 端点(板块总览/回测任务/策略库/自选/AI)
|
2026-09-04 17:52:56 +08:00 |
|
GitHub
|
41db6b0ca7
|
release: v1.32.1 — 行业/概念总览上线:WebUI 板块全景双栏目(热力图/表格+统计条+三榜/翻红翻绿+板块弹窗复用)
|
2026-09-04 16:00:04 +08:00 |
|
GitHub
|
f6560f3c6d
|
feat: 行业/概念总览 — WebUI 板块总览双栏目(统计条+热力图/表格+三榜/翻红翻绿+板块弹窗复用)+ /board-mac/overview 聚合端点(多排序归并+15s缓存)
|
2026-09-04 15:59:57 +08:00 |
|
Justin Gu
|
d6478a1e1c
|
ci: 排除 test_ai_llm.py — CI 无 API key 且 runner 卡顿时 LLM 异步轮询必然超时抖挂
|
2026-09-04 13:09:50 +08:00 |
|
Justin Gu
|
d0b72e1bd1
|
release: v1.31.3 — 紧急修复盘中分时数据错乱(实时命令解析错位,全程改走历史分时)
|
2026-09-04 12:42:44 +08:00 |
|
Justin Gu
|
a69fa4103a
|
fix: 寻优指标缓存键改内容哈希 — 修复 v1.25 起两段式加速静默失效
缓存键此前用数组对象 id 做签名,而引擎每次 run 会重建数组对象,
id 逐网格点漂移导致跨点永不命中——ParamGridOptimizer 的指标缓存
全程 0 命中,两段式加速自 v1.25 引入起就没生效过。正确性不受影响
(缓存未命中即走重算路径,结果与无缓存逐位一致),属纯性能回归;
test_optimizer_cache_reuse_across_grid_points 因此一直在失败。
- IndicatorCache._atom 数组签名由 (id, shape) 改为
(dtype, shape, blake2b 内容摘要 16 字节):同值不同对象视为同一
数据;NaN 按字节参与哈希,位模式不同只多算一次、不会误命中
- 删除防 id 复用的 _array_refs 强引用表(内容寻址下不再需要,
缓存不再延长数组生命周期)
- 新增缓存级回归测试:同内容不同对象必须命中;原失败测试转绿
- 实测 16 点网格命中率 38%(修复前恒为 0);全量 pytest 1613
通过、ruff/mypy 全绿
|
2026-09-04 12:29:09 +08:00 |
|