Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
A股/港股/全球盘后复盘情绪看板:综合情绪分(0-100)、市场宽度、恐贪指数与技术分析参考点,一屏看懂多市场冷热。
Translation pending
FinancePython · JavaScriptGitHub @xp13465OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
信号实验室 · tdsignal
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A股/港股/全球盘后复盘情绪数据看板 —— 把散落各处的情绪值、涨跌家数、连板高度、买卖点信号、ETF 评分、策略实验室汇总到一处, 攒成历史序列,用数据挖掘从数千笔回测交易中反推出"降亏过滤标志",每日生成白话速递, 辅助判断市场情绪拐点与买卖时机。 一句话:免费数据源 + 情绪指数 + ETF 评分 + 凯利仓位回测 + 数据挖掘降亏过滤 + 每日速递, 一个把「数据采集 → 计算 → 可视化 → 交易信号 → 信号质量挖掘 → AI 解读 → 自动交易执行」全链路打通的开源情绪数据看板。 在线体验:(CF Workers 主站,wrangler.jsonc 绑定,push main 自动 deploy,支持 br 压缩 + _headers CSP/HSTS) 备用站点: •(GitHub Pages) •(MaoziYun,300MB 总大小限制) •(R2 CDN,大 JSON 产物) 本项目的第一设计准则,由项目作者定调(2026-08-23),是所有策略挖掘与推荐的最高评估标准:Read the full README ↗
A股/港股/全球盘后复盘情绪数据看板 —— 把散落各处的情绪值、涨跌家数、连板高度、买卖点信号、ETF 评分、策略实验室汇总到一处, 攒成历史序列,用数据挖掘从数千笔回测交易中反推出"降亏过滤标志",每日生成白话速递, 辅助判断市场情绪拐点与买卖时机。
一句话:免费数据源 + 情绪指数 + ETF 评分 + 凯利仓位回测 + 数据挖掘降亏过滤 + 每日速递, 一个把「数据采集 → 计算 → 可视化 → 交易信号 → 信号质量挖掘 → AI 解读 → 自动交易执行」全链路打通的开源情绪数据看板。
在线体验:https://ss.fx8.store/(CF Workers 主站,wrangler.jsonc 绑定,push main 自动 deploy,支持 br 压缩 + _headers CSP/HSTS)
备用站点:
trade-data-signal / tdsignal
本项目的第一设计准则,由项目作者定调(2026-08-23),是所有策略挖掘与推荐的最高评估标准:
定位:A股·港股·全球 三大市场一站式智能决策看板 —— 从市场情绪到买卖点,让每一笔决策都有数据与回测背书。
复盘必备:一眼看清市场温度、板块冷暖与全球动态。
docs/kelly/analysis/kelly-overfit-monitor-design.md)docs/market-state/market-state-analysis.md)docs/global-ticker-free-source-research.md)docs/data-dictionary.md)从信号到仓位,AI 把「交易什么、何时交易、买多少」一次说清。
docs/signal-finalize-time.md)docs/kelly/position/kelly-nextday-open-backtest.md。🆕 #91(2026-09-06)买入口径双档切换:凯利回测页顶部「买入口径」按钮可一键切次日开盘(默认,真实跟单)↔ 当日收盘(旧基线,对比用)——两档各自独立回测产物(signal_kelly_backtest*.json + signal_kelly_trades* 全量与按年分片),切换整区(卡面/全信号表/交易记录)按所选口径重载重算;买入日不变(恒为信号日)、仅买价不同;交易记录表加「口径」标注列(用户拍板 Q3)。凯利双口径·权威源清单(2026-09-16 codex findings #39 P2-8 落档):三个镜像并存、发布时点不同,权威源按口径区分——①次日开盘(默认,真实跟单) =
signal_kelly_trades*.json(17:50 全量回测产物,唯一实盘跟单权威源);②当日收盘(可选,旧基线仅对比) =signal_kelly_trades_sdc*.json(只对比、不跟单);③盘中增量(仅展示) =signal_kelly_trades_intraday.json(9:40 盘中产物,非权威,17:50 全量版接管后自动降级为历史临时视图)。跨镜像对账铁律:实盘只认「次日开盘」全量产物,SDC 仅对比、盘中仅展示,勿把盘中/SDC 档当实盘跟单依据。
fund_etf_spot_em,含开盘价列;fund_etf_fund_daily_em 无开盘价列不可用)把上一交易日信号提前入账:主档买入定价=信号次日开盘,9/7 信号原本要等 9/8 17:50 全量回测才出,盘中档让用户开盘即见昨日信号的盘中交易。铁律=只做加法绝不覆盖——盘中档只用 --rerun-date 限回测上一交易日当日、绝不动历史,产物入独立小文件 signal_kelly_trades_intraday.json + signal_kelly_backtest_intraday.json(不并入 72MB 主文件)。页面「盘中增量」视图标注盘中价;17:50 全量版照常接管、盘中视图自动降级为历史临时视图并以全量版为准。数据就绪闸:今日真实开盘价取不到 → 本轮跳过留下 17:50(exit 5 + unit SuccessExitStatus=5,告警降为 WARN(30min 聚合,2026-10-12 降噪;对账 FAIL/超时仍 SEVERE));「取不到价」类超出单日比例阈值(ratio>R)才整轮跳过(阈值内放行出档,仅累计天数闸持续示警),绝不带假数据上线(§23.15)。🆕 2026-10-12 未定价标的(#254 治本):09:40 时点取不到「可证实为当日」开盘价的标的,不再一律整轮跳过,改为不计入本轮买价基准并在制品根级字段 intraday.unpriced_codes(注意:无 meta 层,前端读 d.intraday.unpriced_codes)带出代码数组;其中「09:40 前零成交」类由子集字段 intraday.unpriced_zero_volume_codes 标出(可缺失)。前端盘中视图(common.js _bannerHtml 单源实现,凯利交易记录弹窗 + 首页模拟回测弹窗共用)在 unpriced_codes 非空时显示一行说明(≤8 只时列代码),文案分两档:甲档(子集覆盖全部未定价成员,即全属零成交类)→「本期 N 只标的 09:40 前无成交(未定价),未计入买价基准…已知正常形态, 非数据故障」;乙档(否则,含「取不到价/源挂」类,或子集字段缺失/为空)→ 中性措辞「本期 N 只标的未取得可证实为今日的开盘价(未定价),未计入买价基准。其余标的不受影响」,不武断说是零成交。两种档位均把「买价=今日真实开盘定价」的宣称改为带条件表述(无未定价标的时逐字维持原宣称),并同步头行/表头 title/脚注/说明行四处(§22 一致)。unpriced_codes 缺失 / 空数组优雅降级(不显示该行、不报错、零 pageerror)。定时=云上 systemd timer trade-kelly-intraday-rerun(9:40,perl alarm 180s 限时,with_lock 防与 deploy 撞,is_trading_day 假日跳过);链路 3 段=回测生成 → --intraday-verify 结构/哈希漂移机检(FAIL→SEVERE 不上传)→ 上传 R2+purge(upload-data-files 显式指定,已排除脱 upload-all 大名单)。设计/用户拍板见 docs/kelly/analysis/intraday-backtest-rerun-design-20260908.md。🆕 2026-09-09 盘中视图联动过滤:顶部「盘中增量」视图随当前展示模式联动——按弹窗/凯利页当前所选 卖出模式 + 降亏模式(s06 按当日生效基座 / 静态档按所选键组合)+ K 档 过滤后展示,顶部明确标注口径(如「A 卖出模式 · s06降亏 · K=1 过滤后 1/5 笔」),过滤链与主交易记录表同源(复用 _simPassesFade 同一谓词,非第二份实现);切换模式/降亏档/K 档顶部增量跟随重算,未传参数保持全量展示。🆕 2026-09-10 etf 代码交互:盘中增量表 etf 代码列与主交易记录表同款交互——hover 高亮 + 点击弹出该 ETF 走势与买卖/强平点小窗(复用 _openEtfTrendPinModal 单源弹窗;容器级事件委托 + 未加载时自动懒加载 lab.min.js,免疫懒加载时序,任意展示位/任意时序点击都能弹窗)。🆕 2026-09-10 当前价/收益率盘中跟随刷新:盘中增量视图的「当前价(盘中)」「收益率」两列不再定格在 9:40 开盘价,改为随 intraday 快照每 10 分钟刷新——复用 已拉的 全市场实时市价 df(15:00+ 由 intraday-close 自拉一次取收盘价),更新每笔 并按 重算 (当前价与收益率两列口径一致,§22);前端盘中活跃时段(17:50 前)每 60s 轮询重拉重渲染,价格跳变即时可见,17:50 后随视图降级自动停轮询(复用 判定)。config/signal_kelly_freeze_orphan_backfill.json,1,848 行 = 4 象限 × 11 模式 × 42 候选,登记表收录全部 49 条孤儿买事件——42 条即时成账(即上述 1,848 行)、7 条待行情就绪后自动成账;拍板时 36 条系 10-14 快照,同源损伤持续至 49 条),凯利页全史笔数 341,000→342,848;回滚=删或清空配置即 no-op;配套观测开关 SIGNAL_KELLY_FREEZE_ORPHAN_ALERT(云上运维开关,开启后新孤儿即告警);依据报告 docs/ops/252-freeze-orphan-backfill-20261016.md/tmp/kelly-rootfix-research-result.md):
signal_kelly_etf_freeze.json)的 K=1 赢家,排序/返回/展示统一取冻结时点 track_score(新增 _bk_ts 显式冻结分字段),不随 board_etf_map 双树/重生值漂移;三端同构覆盖——后端 _align_home_top1_to_backtest(app/queries.py)/ 前端 _topEtfByScore(static-site/app.js)/ 买入计划生成器 _top_etf_by_score + _kelly_sort_key(scripts/nextday_plan_generator.py),§21 公示同步(purpose-notes.js / app.js / lab.js)$REPO/data/board_etf_map.json 同步到 git 树 $GIT_REPO/data/ + 双树哈希校验(§22 一致性),哈希不一致阻断 deploy——双树同源,根除「同信号不同树读不同 board_etf_map → 冻结表各批 track_score 分叉」的漂移源_idempotency_check 入口加 gate——buy_date <= 运行日 today 时,已有 seq1 行一律 skip(禁 replace 改写)、无 seq1 行也 skip(禁 append 补登);主链 buy_date=T+1>today 不受影响,回填段历史组冻结保持fb13dbde8/ff930e657):S06·大盘领先切换由可选档升为 v1.1.7 起默认基座(common.js _KELLY_FADE_DEFAULT_MODE="s06" 单源),选址依据=综合 auto 王者,用户拍板观察期6c057c43e):UI 灰标(删除线+置灰)在新增默认态不生效的 bug 修复75a0c1611/a2386f39f):当日已满行从未被隐藏的过滤失效修复,_posCapKeptMap 改 key 字符串a8027ae14/e54eeb565):_dayItems→dayItems 消除报错66f581af4/132dd191a/81d99fcef):渲染/tooltip/公示/机检四处跟随 + hoverpop 前缀「K1终审」→「当日认可」ab5976532/012ee47f2):etf_hist/fund_score/etf_score_list 导出失败升 SEVERE 通知 + 告警去重5258a3687/69e54db1d/039762d1f):baostock 降并发限速、akshare 东财三级兜底转正e9be32a4d/8b671f549):exp_fund_nav 失败升 SEVERE + 时序倒挂 export 前置过闸 + mismatch 文案修正49a644d21/eb6a40693):化工ETF易方达(158017)上市 kw 命中收录,空数组名单移除docs/kelly/analysis/has-track-null-count-audit-20260825.mdconfig/universe_rules.yaml 显式登记),兜底唯一实例 bj50→159543 为全站最弱关联(3.9 分/近一年反向 49pp);新信号不再兜底入样,738 笔历史残留交易待下次重跑回测自然清除_sigWinN 一键切换,w15 字段全量产出)check_universe_alignment.py trades 校验改 static-site/data 活产物优先 + data/ 回退,根治「断言3 长期校验旧副本」的机检盲区docs/codex-reviews/(协议见 docs/codex-collab-protocol.md)让数据不止在看板里:主动推送、移动端、多主题随取随用。
docs/feishu-bot-integration-plan.md)docs/api-data-query.md、docs/data-pack.md、docs/intraday-self-heal-plan.md) ┌─────────────────────────────────────────────────────┐
│ 采集层(多源互备) │
│ mootdx(TCP) BaoStock 腾讯 东财 同花顺 申万 │
│ 中证指数 HKEX/CCASS CFFEX cninfo 美指/黄金 │
│ 异源兜底: 美财政/HKEX JS/东财数据中心/上交所期权IV │
└─────────────────────────────────────────────────────┘
│ 云上 systemd timer 定时调度
┌─────────────────────────────┬───────────────────────────┬────────────────────┐
│ 17:50 update_all 并行流水线 │ 盘中每10min intraday 快照 │ 盘后 export+deploy │
│ (采集→末尾统一1次deploy) │ (R2 实时,不推 main) │ (增量导出,4遍→1遍) │
└─────────────────────────────┴───────────────────────────┴────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ 存储层(R2 / CF Static Assets) │
│ 全量品种/大range历史序列 → R2 桶 ssd.fx8.store │
│ 小状态文件 → CF Workers Static Assets │
└─────────────────────────────────────────────────────┘
│ git push main → CF 自动 deploy
┌──────────────────────────▼──────────────────────────┐
│ 前端层(多端一致) │
│ 主站 ss.fx8.store CF Workers (br压缩+_headers) │
│ 备站 sss.sugas.site GitHub Pages │
│ 备站 s.sugas.site MaoziYun │
│ dataUrl: -all/5y/3y 大文件直连 R2 │
└─────────────────────────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────┐
│ 浏览器端(SPA + SW) │
│ 原生JS + ECharts · Service Worker 版本化缓存 │
│ PWA · 4主题 · 分时1min自愈轮询 · 通知 │
└─────────────────────────────────────────────────────┘
│ 交易信号(可选接执行)
┌──────────────────────────▼──────────────────────────┐
│ 自动交易执行(可选 · 独立仓库 thsautoorder) │
│ easytrader 二次开发 · 验证码识别 · API 队列监听 │
│ 看板交易信号 → 自动下单(程序化需备案) │
└─────────────────────────────────────────────────────┘
数据流:多源采集(防单源封禁,互备降并发)→ SQLite 主库(sentiment.db / etf_national_team.db)→
指标计算 → 静态 JSON 产物 → R2/CF 分发 → 前端渲染;小文件走 CF,大文件走 R2 直链,manifest.json + sha256 全程可校验。
异源兜底(2026-08-15 新增):核心指标自动切换真异源(不同 host/供应商,非伪多源)多重兜底——us10y(东财▶美财政部 CSV)、hk_south(东财▶HKEX 官方 JS 反算南向净买额)、cn10y(中债▶东财 datacenter)、gold 沪金(新浪▶东财 futsseapi)、a_turnover_rate(腾讯▶东财 push2delay)、美股/全球指数(新浪▶东财 push2);QVIX 3 重:主源 optbbs → 备 A 上交所官方期权 IV 方差互换自算(T+1 可历史回填)→ 网底本地 RV(口径不同已公示)。每次采集落 daily_metric.source 归属标记(treasury/hkex/em/sse/rv_local)溯源,collect_health/log 记录切源,消费方零改动;QVIX 算法公示见 docs/qvix-rv/qvix-data-sources.md(CBOE VIX 方差互换、math.erf 无 scipy 依赖)。
前端展示的交易信号可接自动交易执行(可选,easytrader 二次开发 → thsautoorder,独立仓库)。
| 层 | 技术 |
|---|---|
| 后端 | Python 3.11 + FastAPI + SQLite(sentiment.db / etf_national_team.db) |
| 采集 | mootdx(TCP 全 A 日线 16M 行)+ BaoStock(校验)+ 腾讯/东财/同花顺(互备)+ 申万/中证/HKEX/CCASS/CFFEX/cninfo |
| 前端 | 原生 JS + ECharts(分时/恐贪/评分弹窗/信号卡/策略实验室)+ Service Worker + PWA,build_min.py 压缩 + 版本号破缓存 |
| 存储 | Cloudflare Workers(主站)+ R2 对象存储(全量品种/大 range 历史序列)+ GitHub Pages / MaoziYun(备站) |
| AI | 每日速递(2026-09-06 起默认规则版,非AI、零 DeepSeek 成本,AI 预测代码保留可随时恢复);DeepSeek 仅用于邮件白话化 + 本地 thinking 代理(官方 DeepSeek 直连 /anthropic + thinking disabled 注入,per-role 省 token,scripts/thinking_proxy.py) |
| 交易执行 | easytrader 二次开发 → thsautoorder(独立仓库):验证码识别 / API 接口队列监听 / 可用性提升 |
| 调度 | 云上 systemd timer:17:50 主采集并行流水线 / 盘中每 10min intraday 快照 / 盘后 export+deploy / futures/lhb/rzhb/etf-national-team/backfill/lab-auto/schedule-monitor |
| 部署 | GH Actions deploy-cf.yml + wrangler deploy(加速 20min→1-2min),push main 自动上线 |
特点:
config/indicators.yaml),增删改不动核心代码本项目的很多模块站在开源社区 / 学术界 / 公开数据源的肩膀上。在此逐一致谢 —— 致敬不是贴标签,是"我真的用了,且说清用在哪"。
用途:策略实验室 的凯利回测,从 44,832 笔真实模拟交易 中反推「系统性亏损特征组合」作为降亏过滤开关(v1→v4 四轮挖掘,最终 Greedy 组合净提升 PF 1.285→1.713,净 +149 万)。
| 方法 | 致敬来源 | 本项目用在哪 |
|---|---|---|
| 子群发现 Subgroup Discovery | Lavrac/Flach/Kavsek《Adapting classification rule induction to subgroup discovery》(2002);Atzmueller (2015) 综述;pysubgroup WRAccQF | v3 找高纯度"亏损显著过代表"子群,支撑"比值>2 高纯度子群"路线 |
| 决策树 CART | Breiman et al. (1984);手写多路分裂(非 sklearn) | v3 路径提取 = 规则,路径亏损率 = 规则纯度 |
| Beam Search | 子群发现精炼启发式 (Valmarska/Lavrač/Fürnkranz 2017) | v3 子群候选搜索(depth4 beam30) |
| 对比集挖掘 Contrast Set Mining | Webb et al.; growth rate = supp_loss/supp_gain | v4 找"亏损组显著过代表"条件集(1-4 itemset 主路线) |
| 涌现模式 / JEP | Dong & Li (1999) Emerging Pattern | v4 识别"只出现在亏损组的模式"(盈利组 support=0) |
| Apriori / Closed Itemset | Agrawal & Srikant (1994) | v4 4-itemset Apriori(1502 个 ratio>3)+ 去冗余验证 |
| 贪心组合优化 | 经典贪心逐步选择 | v4 Greedy-7/15 从 930 候选产出最终 toggle 集 |
| Walk-forward 滚动验证 | 时间序列前向验证范式 | 未来 v5 方向:t-1 年选 toggle、t 年验证,防过拟合 |
| Decision Set 互斥规则集 | 规则集互斥设计 | 未来 v5 方向:每笔交易至多命中一条规则 |
| PSM 倾向得分匹配 | Rosenbaum & Rubin (1983) | 未来 v5 方向:消除选择偏差、验证净效果非混淆因素所致 |
| 漂移检测 Drift Detection | 概念漂移 (concept drift) | 未来 v5 方向:检测标志有效性随时间漂移(5 月 shift 发现雏形) |
| 4 窗口稳定性验证 | out-of-sample 验证共识 | 历轮:比值>2 + maxSh<0.60 + 逐年验证,防 5 月 shift 类过拟合 |
完整推导、文献清单与代码见项目内文档:
docs/kelly/mining/kelly-loss-mining-methods.md— 8 种方法 Python 代码 + CrossRef 学术文献完整清单 + 推荐流程docs/kelly/mining/kelly-mining-literature.md— 文献/方法论/方案引导速查(fresh context agent 复用)docs/kelly/mining/kelly-loss-mining-v3.md/-v4.md— 各轮完整推导与候选清单- 方法论也受 "信号过滤 = 训练分类器预测信号质量,过滤低质量信号即减亏" 这一交易行业共识启发(Kissell《Machine Learning Techniques》; Zhang & Pinsky 策略-分类模型类比)
用途:策略实验室 凯利回测的「组合降亏预设宏」——把已有降亏 toggle 打包成命名组合(年末季节/稳健核心/最大化降亏/1月调整),成员选择与组合验证复用国外特征选择/组合方法论(详见 docs/kelly/combo/kelly-combo-signal-research.md 调研 + docs/kelly/combo/kelly-combo-round3-verify.md 数据验证 + docs/kelly/combo/kelly-jan-adjust-combo-verify.md 1月调整元素级验证)。「1月调整」组合来自元素级重组挖掘(18,047 组合全扫描,用户"摘取要素交叉成新标志"直觉的直接产出):5 标志要素拆解后 1 月是真空地带,1 月中旬(11-20 日)+ mid 评级为唯一新边际(比值 4.71、4 窗口全 >2、与现有标志 90% 不重叠、AI降亏过滤结构内边际 +0.3 万(2026-08-12 重跑,旧 live4 口径 +14.4 万已过时))。组合=成员 toggle 的打包宏,过滤仍走成员谓词并集(零新增过滤逻辑、幂等可叠加、组合勾选态由成员派生),满足「用户视角 N 展示位数据一致」铁律。
| 方法 | 致敬来源 | 本项目用在哪 |
|---|---|---|
| IV 信息值 / WoE(评分卡) | Siddiqi《Credit Risk Scorecards》(Wiley, 2006),FICO 评分卡标准 | 比值(降亏%/损盈%)= 本项目"亏损组 vs 盈利组偏斜强度"的 WoE/IV 交易版,按比值排序选成员 |
| mRMR 最小冗余最大相关 | Peng, Long & Ding (IEEE TPAMI, 2005) | 组合成员两两 Jaccard 重叠率 <40% 判据(低重叠=去相关互补) |
| RFE 递归特征消除 | Guyon et al. (Machine Learning, 2002) | 组合成员逐一 drop 验证边际贡献(v4 Closed Itemset 去冗余已实现) |
| Lasso / Elastic Net(L1 稀疏) | Tibshirani (JRSS-B, 1996);Zou & Hastie (JRSS-B, 2005) | 若未来做"成员加权评分"式组合,Lasso 给成员稀疏权重 |
| 特征聚类 + 多重共线性 | López de Prado《Advances in Financial Machine Learning》(Wiley, 2018) Ch.8 | 组合成员先做交易集重叠聚类(同簇只留最强代表),直接决定"进组合/排除谁";重要性须 OOS 算、高相关特征先正交化 |
| DSR / PBO 防过拟合度量 | Bailey & López de Prado (JPM 2014 / JCF 2017) | 1502 itemset 挖掘后组合选择的多重试验惩罚(本项目用 maxSh+4 窗口近似) |
| 多重检验校正(t>3 / FDR) | Harvey, Liu & Zhu (RFS 2016);Benjamini & Hochberg (JRSS-B 1995) | 成员进组合阈值比单次检验更严(4 窗口全>2 + maxSh<0.6 双门槛) |
| alpha 组合收缩 | Kakushadze《101 Formulaic Alphas》(2016) | 标志高度相关时组合权重应收缩→组合选低相关成员 |
| 低相关因子分散组合 | Asness, Frazzini, Israel & Moskowitz (JPM 2014) | 组合跨独立经济逻辑线(11/12 月末、纯非五月、广谱 Greedy),不堆叠同逻辑标志 |
| Walk-forward 滚动验证 | Pardo《The Evaluation and Optimization of Trading Strategies》(Wiley, 1992/2008) | 组合评估标准流程:t-1 年选成员、t 年验证(pre2025 选样/2025+ 验证两段全 >2 才稳) |
| 决策集互斥规则集 | Lakkaraju, Bach & Leskovec (KDD 2016) | 组合优先低重叠成员(决策集宽松版),现用并集幂等无害 |
用途:本项目用多 agent 分工做开发协作——调研 agent(只读定位根因)→ 实施 agent(写码)→ reviewer agent(独立批判性查影响面 + 回归冒烟测试)→ 测试 agent,配 cron 兜底轮询 + 进度文件回写, 借鉴 traderagent 风格的多智能体团队模式(原版 tradingagents / 中文改版 TradingAgents-CN,分析师/研究员/交易员/风控分工协作)来组织工程流水线:
每日 AI 速递 的预测编排受 TradingAgents-CN/原版 TradingAgents 多智能体辩论架构启发(多角色辩论收敛)——6 个角色子 prompt(技术/资金/情绪/风控/研究员/主编)各自只注入对应数据域、独立分析后互相校验/辩驳,再由主编合成白话解读(不做交易决策角色,合规)。但预测所用的方向锚信号胜率、因子权重为自研 8 年数据挖掘成果(见 docs/ai-predict/ai-predict-direction-market-winning-signals-20260820.md),非抄 TradingAgents;TA 仅提供多角色辩论编排的组织形式启发。工程规范与协作机制详见
CLAUDE.md(§2 监工 loop / §11 通知兜底 / §15 回归 / §16 agent 画像)。
用途:版本发布前的外部独立盲审——经 OpenAI codex CLI 以只读沙箱身份做交叉验证,防「内部实施↔内部 review 同源盲区」。协作机制:Claude 主控调 scripts/codex-review-request.sh 把审计范围打包成 git ref(refs/codex/req/<id>)→ codex 在独立环境读仓库执行影响面 grep / 冒烟测试验证 / 口径交叉核对 → 报告 JSON 回传 /tmp/codex-reports/ → 主控校验归档至 docs/codex-reviews/。codex 不 commit、不 push、不改源码;2026-08-24 首轮 v1.1.4→v1.1.6 前置两轮审计均 PASS,揪出 QTH 全史快照前视取舍、tester skill 缺规范挂接等内部 review 未覆盖项。协议全文见 docs/codex-collab-protocol.md。协作通讯走信号桥(2026-08-26):scripts/agent_inbox_watcher.py 常驻监听 /tmp/codex-reports/signals/ 双收件箱(2 秒文件轮询,待机零模型调用),发单秒级拉起 codex exec、报告回传自动 schema 机检 + 推飞书,替代 cron 盲轮询的 7-8 分钟延迟——链路全图、launchd 部署模板与利弊分析见 docs/codex-signal-bridge.md。
用途:每日速递 邮件 —— 收盘后生成 daily_brief 白话解读(情绪拐点 + 信号汇总 + 合规 gating),
邮件正文对 期货风向 / 公募基金 做白话化改写,让"机器算出来的数字"变成"人读得懂的话"。
生成方式(2026-09-06 用户拍板:砍整链退规则版):默认由 规则版 生成(generate_rule_brief,内置规则拼装 复盘·趋势·关注·风险 四段 + 方向/区间断言,零 DeepSeek API 成本,产出 meta.version=rule);定时入口(run_daily_brief.sh 20:40)与手动 CLI 默认都走规则版。AI 预测代码(多角色 run_multi_agent / 单 prompt build_prompt+call_deepseek / parse_ai_output)全部保留未删,config/daily_brief.yaml 的 ai_prediction_enabled 改回 true 即可恢复 AI 主链路;--mock/--rule-only 测试 flag 仍保留。
订阅推送延伸(2026-08-17):速递内容经 Cloudflare Workers KV(订阅者管理 + api_key 鉴权)与标准 SMTP(config/email.json,smtp.resend.com,2026-08-17 起)实现「生成即推送」订阅服务,daily_brief.json 生成后自动送达订阅者邮箱/Webhook/飞书,避免用户自行上站查看。
影子模式验证(2026-08-20,已于 2026-08-28 关闭,历史供参考):AI 预测 方向锚/归因升级曾处于影子验证期——线上输出零改动(direction_anchor_enabled/reflection_factor_attribution_enabled 默认关,prompt 逐字不变),后台按 date 把「方向锚会预测什么方向」旁路落盘 data/brief_shadow.json,次日盘后由 scripts/aggregate_shadow.py 对账真实方向,聚算 7 个真实交易日影子命中率,用数据决定开/不开/改(契约全文见 docs/ai-predict/ai-predict-shadow-validate-20260820.md)。影子是旁路记录,不发邮件/通知、不写主链。
用途:首页每日速递 🔊 播放按钮朗读预测文本。基于开源库 edge-tts(MIT)—— 调用微软 Edge"大声朗读"的免费在线 TTS(非 Azure 商用,无 key/无计费),在服务端(gen_daily_brief.py)把预测合成 daily_brief_tts_<date>.mp3(音色 zh-CN-XiaoxiaoNeural)上传 R2,前端用 <audio> 播放;合成失败不阻塞主流程、前端隐藏按钮降级(备选浏览器 speechSynthesis 兜底)。⚠️ 2026-09-06 起默认规则版不合成语音(gen_daily_brief.py 仅对 ai/ai-multi 版本合成),该按钮仅历史 AI 条目可见。依赖微软免费服务、无 SLA,微软调整协议时升级 edge-tts 包即可(见 docs/ai-predict/ai-predict-tts-plan.md)。
用途:全站邮件通道 —— 信号/每日速递/告警/订阅推送 + 留言箱新留言提醒站主(#82:留言保存成功后由 Cloudflare Worker 直调 Resend HTTP API(api.resend.com/emails,Bearer 认证)发提醒邮件,try/catch 尽力而为,任何邮件失败不影响留言主流程)。2026-08-17 起邮件发送从 smtp.163.com 切换到 Resend(smtp.resend.com SMTP + HTTP API 双通路共用一把 key,发件地址 [email protected]),Python 侧走 SMTP、Worker 侧走 HTTP API。
Worker 内发信原方案 MailChannels 免费集成已于 2024-06-30 停运(官方公告),故改走 Resend。
用途:README 顶部 TDSIGNAL 渐变辉光 banner(A股 · 港股 · 全球 + ◆ ONLINE ◆)——由 DeepSeek 设计艺术字方案、本项目做主题适配(无线电主题标签改为项目实际覆盖范围)。
用途:/guide.html「理财专员使用指南」站内页 = 把 docs/理财专员使用指南.md 用 Python-Markdown(tables/fenced_code/toc/sane_lists 扩展)渲染成静态 HTML,自动生成目录锚点 + 表格,随代码树 rsync 上线(纯静态零 JS)。
用途:把看板交易信号接上真实下单执行(可选独立模块,不进主站点运行链路)。基于开源库 easytrader(MIT,模拟操作同花顺等客户端 + miniQMT 官方接口模式)做二次开发, 产出独立仓库 thsautoorder 独立迭代。二次开发点:验证码识别(登录稳定性)、 API 接口队列监听(看板信号 → 下单指令)、可用性提升(客户端版本变化自愈)。
📦 本仓库以 git submodule 方式关联 thsautoorder:
easytrader_deploy/目录 = submodule,指向https://github.com/xp13465/thsautoorder(自动跟随新仓库迭代)。git clone 本项目需加--recurse-submodules才会拉取该子模块;已 clone 的项目用git submodule update --init补拉。 ⚠️ 合规:程序化交易(含低频)须备案,未备案即交易 = 违规(详见 NOTES.md 调研)。本看板只出信号不自动下单,自动执行模块独立可选。
用途:把「看图验收」变成「程序化断言」的通用内部工具 —— 主控看不了图片,用
Playwright(MIT)headless Chromium 抓 console 报错、网络请求、
DOM 断言、语义结构树,全是文本可直接读。工具在 scripts/playwright-accept/(accept.js /
snapshot.js / ticker-check.js / verify_sigkelly_y1_render.mjs),纯验收不碰业务代码,供 reviewer/tester 派单复用。
verify_sigkelly_y1_render.mjs= sigkelly 渐进加载「y1 先渲染」验收(route 拦截分片制造可控时序:hold 阶段2 → 断言 y1 先渲染 + 阶段1 数字与全量后逐 cell 一致 + 全量后无占位残留,无痕 context 零 localStorage)。 仅内部开发/测试工具,不进站点运行链路;致敬 Playwright 驱动浏览器的 console/网络/DOM 自动化能力。
本看板以免费公开数据源为主(无 API key),并于 2026-09 试点接入同花顺 FAPI 官方 API(带 key,仅供兜底互证,key 存 .env 不入库不入日志)。没有这些开源项目与公开接口,就没有这个看板:
| 数据源 | 用途 | 类型 |
|---|---|---|
| mootdx | 全 A 股 TCP 日线(历史 10 年回溯) | 开源库 |
| BaoStock | 指数/日线校验与补采(8/10 指数 + kc50 兜底) | 开源库 |
| akshare | 东财/新浪/腾讯行情统一接口 + 场外公募基金基础信息(基金经理/费率/规模/成立日/投资策略等,#79 基金评分基础字段) | 开源库 |
| a-stock-data | 策略实验室回测信号生成(scripts/lab/*.py runtime import gen_buy_signals / gen_sell_signals)+ 采集层东财防封 / 腾讯行情实现参考其 SKILL.md | 开源仓库(代码复用) |
| 腾讯行情 / 东财 push2 | 盘中分时批量实时 + 主力资金 | 公开接口 |
| 同花顺 | 概念板块/行情批量 | 公开接口 |
| 申万宏源 / 中证指数公司 | 行业分类与指数行情 | 公开数据 |
| HKEX / CCASS | 港股指数 + 北向持仓披露 | 公开数据 |
| CFFEX | 期货机构持仓 | 公开数据 |
| cninfo | 公募基金 / ETF 持有人结构 | 公开数据 |
| 同花顺 FAPI(金融开放平台) | A 股全市场日线 T+0 dump(2026-09 转正 app/collector/fapi_daily.py 写 fapi_daily_raw,兼任:①mootdx 空/断片自动兜底(挂 width 采集链,width_history.py 无 mootdx 序列日期自动补 FAPI)②北交所 920 段 341 只日线源(独立 30% 档宽度 a_bj_* 指标)③双源互证校验(check_data_integrity.py 挂 deploy 链,两源 close 差异率>0.5% 告警 FAIL);方案见 docs/fapi/fapi-integration-plan-20260901.md) | 官方 API(带 key,key 仅存 .env 不入库不入日志) |
| 美财政部 CSV | us10y 异源兜底(东财失联时,data.treasury.gov) | 官方公开数据 |
| HKEX 官方 JS | hk_south 南向净买额异源反算(SSE+SZSE Buy-Sell,JS 从 datacdn.rscd.org.hk 拉当日指数净买额数据) | 官方公开接口 |
| 东财数据中心 | cn10y 国债收益率异源兜底( RPTA_WEB_TREASURYYIELD) |
数据源细节、采集时点与合规说明见
docs/data-sources.md。
用途:首页底部「🌍 全球市场行情 · TradingView」折叠区(2026-08-26 新增)——嵌入 TradingView 官方免费小部件三件:全球品种跑马灯(黄金 / BTC / ETH / SOL / PAXG / 美债10Y / 标普500 / 纳指100 / 原油)+ 美股热力图(SPX500 成分股按市值成块、涨跌着色、行业分组)+ 加密货币热力图(按市值成块、24h 涨跌着色)。纯前端 embed script 直连 TradingView CDN 渲染,不经过本站后端。默认整体收起:收起态页面不含任何 TradingView 脚本与请求(零外部请求,保首页加载速度 + 加密货币等内容风控隔离),点展开才懒加载注入;不做记忆,每次进页默认收起。
| 小部件 | 致敬来源 | 本项目用在哪 |
|---|---|---|
| Ticker Tape 跑马灯 | TradingView Widgets(web component tv-ticker-tape) | 首页底部全宽横幅:全球宏观品种行情滚动 |
| Stock Heatmap | 同上(embed-widget-stock-heatmap.js) | 首页底部左列:S&P500 市值 × 涨跌 × 行业热力图 |
| Crypto Coins Heatmap | 同上(embed-widget-crypto-coins-heatmap.js) | 首页底部右列:加密币种市值 × 24h 涨跌热力图 |
致敬 TradingView 免费提供高质量行情可视化小部件。
用途:notify.py 飞书发送渠道 + feishu_ws_listener.py 长连接接收进程(企业自建应用收发一体)。
| 能力 | 致敬来源 | 本项目用在哪 |
|---|---|---|
| 飞书开放平台(自建应用) | 飞书开放平台(中国版域名 open.feishu.cn) | 发消息 API im/v1/messages(tenant_access_token 鉴权)+ 长连接事件订阅 im.message.receive_v1;应用进 3 群按 chat_id 分组路由 |
| lark-oapi 官方 SDK | lark-oapi(官方 Python SDK) | feishu_ws_listener.py 用 lark_oapi.ws.Client(WS 长连接,SDK 自带断线重连)收群消息,事件分发器 EventDispatcherHandler.register_p2_im_message_receive_v1 |
完整实现、3 群映射与接收落盘格式见
docs/feishu-bot-integration-plan.md。
本看板代码 MIT 开源;每日盘后产出的全量数据在独立数据开源仓库 trade-data-signal-staticdata(数据开源门面):
https://ssd.fx8.store/ 直链下载,无鉴权、无需 API keysentiment.db / etf_national_team.db / stock_daily.db / public_fund.db
打包 tar.gz 挂在数据仓库 GitHub Releases研究 / 复现 / 离线使用时一键复原全部数据集:
git clone https://github.com/xp13465/trade-data-signal-staticdata.git
cd trade-data-signal-staticdata
bash fetch_data.sh # 按 manifest.json 从 R2 下载全部 JSON(约 1GB,可重复跑,已下载自动跳过)
manifest.json(含 url / size / sha256 校验)与还原脚本 fetch_data.sh 均在数据仓库curl -o overview.json https://ssd.fx8.store/data/overview.jsonoverview.json 今日快照 / sentiment-*.json 情绪历史 / a-stock-*.json A股 32 指标 / industry-*.json 行业概念 / etf_national_team-*.json 国家队 ETF / futures.json 期货持仓 / index/{id}-all.json 44 指数全历史 / intraday_snapshot.json 盘中快照docs/data-dictionary.md(字段说明)与 docs/data-sources.md(数据源与采集时点)# 1. 安装依赖(国内镜像)
python3 -m venv .venv
.venv/bin/pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
# 2. 初始化数据库
.venv/bin/python -m app.db
# 3. 首次回填历史数据
.venv/bin/python -m app.backfill
# 4. 启动看板(二选一)
cd /Users/linhuichen/code/trade-data && /Users/linhuichen/code/trade/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 # 动态版:看页面 + 调 /api/* 读 DB
# ⚠️ cwd=trade-data/ 让 app/db.py .absolute() 读最新主库(trade-data/data/sentiment.db),非 trade/ 滞后镜像
# 或纯静态:python -m http.server -d static-site --port 8000
# 浏览器打开 http://localhost:8000
生产定时任务 2026-09-12 起迁云上 systemd timer(阿里云 Ubuntu 22.04,41 个 .timer 单元在 /etc/systemd/system/(2026-10-05 实测),统一前缀 trade-,时点与旧 launchd StartCalendarInterval 完全一致,详见 docs/deploy/systemd-units-20260912.md);日志仍在 data/logs/。本机 mac 纯开发不跑生产定时任务(launchd 已废弃,查 launchctl 是错的)。
# 云上启停/查看主采集(17:50 update_all)
ssh -i ~/tdsignal.pem [email protected]
systemctl enable --now trade-update-all.timer # 首次启用(含 17:50 时点)
systemctl status trade-update-all.timer # 查看下次触发时点
或一键脚本 bash scripts/update_all.sh(采集 + 静态导出 + 推送部署,云上执行)。
scripts/update_all.sh:4 条并行 pipeline(core 快核心 / width 慢宽度 / futures 期货 / stock_daily 后台死端)只采集+计算写 DB,末尾统一 1 次完整 deploy(O1 收敛,原 4 遍→1 遍,省 50-58min)+ export 增量导出(ab#39,只重算源数据已变化的 JSON,必更白名单 overview/信号类强制全量),约 30-40min 跑完,当日下午即可看到当日数据intraday_snapshot 推 intraday_snapshot.json 实时快照(走 R2 实时,不推 main)/etc/systemd/system/ 共 41 个 trade-* 周期单元,2026-10-05 实测;清单见 docs/deploy/systemd-units-20260912.md)app/
├── collector/ # 采集层(mootdx/baostock/腾讯/东财 多源互备 + em_get 防封)
├── compute/ # 计算层(signals 买卖点 / sentiment 情绪分 / cross 跨市场分)
├── queries.py # 共享查询层(22 函数 DRY,main.py/export.py 共用)
├── db.py # SQLite schema
└── main.py # FastAPI 端点(挂载 static-site/ 到根 /,/api/* 读 DB)
static-site/ # 前端(Cloudflare Workers 部署;FastAPI 动态版挂载根 /)
config/indicators.yaml # 指标注册表(增删改这里)
scripts/ # 采集/部署/一键更新/构建压缩脚本
launchd/ # 历史 plist 存档(生产任务已迁云上 systemd timer;仅 agent-inbox-watcher 本机用)
docs/ # 文档(数据字典/数据源/数据挖掘文献/回测分析/许可声明)
docs/kelly/ # 凯利回测专题文档子目录(2026-08-14 按主题拆分: mining挖掘/combo组合/position仓位/backtest-ai多AI回测/toggle降亏开关/analysis费率·分析)
详细文档:
static-site/data/ JSON 字段说明)scripts/notify.py send_tiered);warning 聚合链路带同源指纹降噪——归一化指纹 4h 固定窗内同源告警不再逐条入队,合并为「[第N次]」频次标注一封发出,恢复类消息([恢复]/[72h恢复])自动清零重新计,窗口内恶化翻倍或升级 critical 自动穿透绝不吞真告警(2026-08-26)trade-cloud-unit-patrol.timer 每日 08:27)——直连 /etc/systemd/system/trade-*.{service,timer} 真 unit,与仓库固化快照 docs/deploy/systemd-units-cloud-snapshot.txt 逐字段全量比对(scripts/systemd_timeout_gradient_audit.py --check-snapshot),漂移即 notify 告警(含哪个 unit / 哪个字段 / 云上值 vs 快照值)。消 #189 merge 闸门 7.8 的「快照陈旧」窗口(7.8 只保证 doc §2 == 快照,本巡检补「快照 == 云上当前」);仅告警不改生产_bt_in_universe ⟺ board_etf_map 重算入样判定、候选信号类型 ⊆ 白名单(config/universe_rules.yaml buy_whitelist)、回测交易无排除类别(债类 cgb_/情绪 s./商品 g./港股行业 hk_/空数组 ftse100·kospi)记录、yaml 排除类别 ⟺ map 实际缺失 key,任一 FAIL 阻断上线(同 §22 数据一致性校验逻辑)本看板仅供学习研究,不构成投资建议。买卖点信号为历史回测参考,胜率接近随机,不可作为独立交易依据。 数据准确性受数据源限制,请以官方披露为准。数据挖掘发现的降亏标志为统计特征,存在过拟合与漂移风险,使用前请复核 4 窗口稳定性。
🔐 凭证安全提示(2026-09-12 PURGE_SECRET 泄漏事件):
PURGE_SECRET(CF/api/purge-cache清缓存凭证)曾在公开仓库 git 历史中短暂以明文出现(已从 head 快照去除,改为EnvironmentFile从服务器.env读)。2026-10-03 用户拍板翻案并已轮换:旧值自 09-12 泄漏后公开 21 天,harm 边界经复核仅限清缓存(能力有限但无必要持续承担),趁国庆休市窗口完成 4 处轮换(Worker secret + 本地/云上三处.env),验证新值 200 / 旧值 403,旧值已全部失效;历史明文无法被常规 diff 扫到,未 force push 清历史。⚠️ 任何新 secret/凭证切勿明文提交进 git,一律走trade-data/.env(gitignored)+EnvironmentFile/环境变量注入;请勿再次引入同类敞口。改 CF Worker secret 前先过前置守卫检查(wrangler versions list+deployments list确认 latest 已部署,不满足先 deploy 规范代码再改,避免「latest isn't deployed」拦截),全文见docs/ops/sop-cf-secret-rotation-guard-20261003.md。
app/ / scripts/ / static-site/ 的 .py / .js / .css / .html 等)数据来源均为公开免费数据源(akshare / mootdx / BaoStock / HKEX / CCASS / 东财 / 同花顺 / 申万 / 中证指数公司 / 新浪 / 腾讯 / CFFEX / cninfo),详见 docs/data-sources.md 与上方「参考与致敬」段。
本看板仅供学习研究,不构成投资建议,详见上方免责声明。
本仓库由一个人维护:日常开发由一组带角色的 AI 会话跑(实施 / 审查 / 测试 / 调研各自独立上下文、互相把关,不让"干活的人"自己给自己发合格证),外面再套一层写死的规范与自动机检(CI 门禁 + 发布前六道关)兜底。
docs/sugas-dev/。pipeline_intraday_realtimefund_etf_fund_daily_emreal_current_price(当前-买)/买return_pct_hm()<1750_shares_planned 同构) / 状态(着色)/ 实际成交价 / 触发条件摘要。点买入行弹窗看当日全时间线、点卖出行弹所属买入组当日完整时间线(seq 排序、多日翻页、当前待执行/已挂单行高亮);历史回填行(近回填窗口补登的未到期卖出行)自动带「回填」角标(纯展示,tooltip 注明阶段一干跑不回写真实执行状态、恒显示待执行,track_score 为当日快照值非冻结值);「现在该干嘛」提示条 + 当日行高亮 = 当前该执行的动作,无待执行自动隐藏。数据源纯读 static-site/data/nextday_plan.json(当日计划概要)+ static-site/data/auto_trade_steps.json(行为级全史追加),纯展示不重算算法(§21 公示同步);盘中(交易日 09:00-17:50)60s 轮询、盘后与休市 5min 轮询就地更新;文件不存在/空计划时控件降级显示空态不崩。前端 PRD 见 docs/auto-trade/next-day-buy-prd-20260910.md。🆕 后端生成器方案A根治(2026-09-10):生成器(云上 systemd timer trade-nextday-plan 交易日 22:30)改走与首页 AI建议同一条选取链——读 sentiment.db signal_daily 当日信号(排除 s.* 情绪分)+ signal_kelly_etf_freeze.json 冻结表 top1 判定(_bk_top 权威)+ queries._ai_macro_hit_filters 降亏过滤 ⊥ S06 动态基座成员集(约定成俗,s06 快照缺行 fail-open 放行),K=1 每日 top1(track_score DESC→rating→signal→buy_date),buy_date=下个交易日、prev_close=该 etf T 日收盘(etf_daily),再经伪跳空剔除真校验(次日开盘 vs 信号日收盘 ±20%,|gap|>20% 剔除;22:30 生成时历史回填段次日 open 已入库即算,当日计划留 9:26 gap-check 二次剔除)——与首页 overview 逐位对账(信号/代码/track_score/prev_close 全一致)。🆕 生成器侧伪跳空真校验 + 9:26 gap-check(#45,2026-09-17):nextday_plan_generator.py 死代码 prev_close vs 信号日收盘 恒 gap=0 不剔除已根治,改为 _next_open 查 etf_daily T+1 开盘价真校验(阈值与回测 signal_kelly_backtest.PSEUDO_GAP_EXCLUDE=0.20 同源同常量);当日计划 T+1 开盘价尚未产生则跳过,由云上 systemd timer trade-nextday-gap-check(交易日 9:26)拉 akshare 当日真实开盘价对执行日买入行二次剔除(steps 行 status=skipped + status_text「伪跳空剔除(|开盘/信号日收盘-1|=xx%)」,nextday_plan.json 条目加 gap_excluded:true;开盘价取不到则 9:31 重试一次,仍失败标「伪跳空校验未完成(待人工)」+ severe 告警)。数据日期新鲜度校验(F4,2026-09-19):fund_etf_spot_em「数据日期」列必须 == 执行日,陈旧快照(9:26 拉到昨日数据)等同取不到当日真实开盘价,走同一重试→跳过+severe 告警链路,绝不照算旧价(防误剔真实跳空)。根治旧缺口:原实现从 signal_kelly_trades.json 选 signal_date==T,但主回测 KELLY_BUY_NEXTDAY=1 口径下买价=次日开盘价(信号次日才入账进 trades),今日信号永远不在 trades 里 → 定时跑必出空计划误导。数据就绪 gate(fail-closed,2026-09-17 时序倒挂根治):计划内任一 ETF 的 etf_daily 最新日 < T(缺当日收盘价 → prev_close 退化为前日价)→ severe 告警 + 退出码 2 阻塞不产出(不再 FORCE 用前日价)。日志 data/logs/nextday_plan_launchd.log(标准开始/结束行,schedule_monitor 可读)。落档见 docs/auto-trade/nextday-plan-signal-daily-design-20260910.mdapp/queries.py 单点参数表双档输出(w10 默认+w15 对照字段),scripts/overfit_monitor.py 同语义跟随默认 10 日;独立验证脚本与调研报告全史矩阵七类逐位对齐(差 ≤0.6pp),详见 docs/kelly/analysis/warn-signal-window-caliber-research-20260825.mdetf/{code}-all.json 全史前复权日K(etf_daily 表,2005 年起 21 年、1500+ 只 ETF,与指数全史同模式托管)(数据层详见 docs/data-dictionary.md)docs/kelly/ 分析与报告、docs/kelly/position/kelly-position-cap-k-sensitivity.md)。2026-08-22 新增第 5 个手动降亏键「牛市×辅备买全停」(默认关 🆕NEW 供实测):牛市·主升(hs300 四档)×辅买/备买信号时段级全停——补位口径(前端真实链路,被拦天的次优信号自动顶上)下 5-8 月连亏窗口 mode A K1 由 -5,166 收窄到 -1,030、全史 +66,530→+73,103(改善 +6,573,近1/2/3/5 年五窗全改善);理想对照(被拦笔直接消失口径)为 -256 / 全史 +9,895;变差年 4 个合计 -5,825(理想对照口径)已诚实标注;lab 凯利区 / 首页信号网格各有独立开关,互不影响(2026-08-22 用户定);首页模拟回测弹窗 2026-08-24 起恢复「过滤」总开关 checkbox(仅 fadeOn 快速切换层:开=按当前所选模式过滤 / 关=不过滤看全部信号 raw 口径;切开关不改模式下拉选中值与记忆 tds_sim_fade_mode,开关状态独立记忆 tds_sim_fade 默认开;「牛市×辅备买全停」仍只经模式 p9/a9/b9/c9 键生效),由其「AI降亏过滤」模式下拉 7 预设一键套用键组合(G/H/I 长线豁免同口径),数据支撑见 docs/kelly/analysis/sim-window-loss-mining-20260822.md)。2026-08-23 起 8 键固定组合升级为 「AI降亏·模式」7 预设一键切换(common.js 单源 _KELLY_FADE_MODE_PRESETS:8键默认 / 9键=+候选1 / A 进攻王 / B 均衡卡 / C 防守 / NEW14 / NEW18 重构换基座),下拉接入四处消费点(lab 凯利区 / 首页模拟回测弹窗 / 首页信号网格 / AI 监控卡,各自独立 localStorage 互不影响;默认 8键=现网行为逐位一致,机器断言 scripts/check_fade_predicate_parity.mjs diff=0);AI 监控卡非默认模式走「后端 recent 明细逐信号打标 → 前端组集」新链路(scripts/check_overfit_recent_parity.mjs 15 项断言全 PASS,聚合链与后端 rolling 口径逐位同构)。v1.1.5(2026-08-24 用户拍板)默认基座切换为 NEW14 十四键 + 新增「信号枯竭提示」:全站 AI 降亏过滤默认由旧八键(基础5+核心3)切换为 NEW14 十四键(hist 键 6:5月+6非5月 / Greedy-15 / 1月中旬+追关注 / 港股追涨剔除 / 主关注×概念 / 下降期×追关注 + 规则键 8:北向20日净流出 / 换手冰点×追关注 / 股息率低位 / QVIX低分位 / 升波×A股 / 牛主升×两融降温 / 备买×股息率分位低 / 追关注×全球类;规格单源 scripts/loss_rules.py),切换依据 = mine28 AUTO 轮动样本外全 FAIL(维持单模式)+ mine30 记分板 NEW14 全史第一(净利 +122,648 / 回撤 -4,178 vs 八键 +66,530 / -18,190,回撤浅约 77%、恢复快约 13 倍,权威报告 docs/kelly/analysis/new14-default-challenge-mine30-20260824.md);移出默认的 5 键保留为手动可开对照档(§23.7 不删档),模式下拉「8键旧默认·对照」一键回选;信号枯竭提示 chip(凯利实验室信号区 + 首页 AI 建议区,N≥20 才显示):NEW14 防守反击刀长时间无放行是常态运作方式(年均约 2.4 次 ≥20 交易日,全史 37 次;恢复后 3 个月 72% 为正),数据源复用 overfit_monitor.json recent 明细块零新增后端任务,防前视自查通过(§5.1⑥);2026-08-24 首页信号区配套三件(默认行为逐位不变,§23.7 纯新增):①「仅显示可用信号」开关(信号区工具行,默认关、localStorage 记忆)——开启后隐藏 AI 降亏过滤命中/未入样本的灰显行只留可操作信号,近30交易日无放行时显示引导性空态(含连续天数与"枯竭结束后 3 个月 72% 为正"历史统计,与 chip 同源同数字);②首页「近期技术分析参考点」窗口由近15扩容为近30交易日(后端 signals_today 拉取窗口同步扩容,期货净加仓卡保持15日独立窗口不动);③枯竭统计与 chip 共用 common.js 单源不写第二份;2026-08-24 新增第 8 个可选档**「NEW14+1 · 15键」(mine29c 用户拍板,§23.7 纯新增不改默认):NEW14 十四键全保留 + 整剔有跟踪 ETF 象限(track_tier=none/null 整卡——none=30-49 弱跟踪、null=<30 极弱或 N<30 无分;X1 键当日扩围「一起扩」与凯利区 etf_has_track 卡/首页筛选档4口径完全统一;规格单源 scripts/loss_rules.py 多值 spec 三端同构)。同日修复归类实现 bug:etf_has_track 卡初版只装 none 漏装 null(1,863 笔掉卡外),补装后与文案「跟踪分<50 或数据不足」一致。⚠诚实标注:全史净利 +122,705 vs NEW14 +122,648(噪声级 +57)、回撤 -4,178→-3,550 浅 15% 均为扩围前仅剔 none 口径,扩围后作废待正式穷举回测重算;bootstrap 全窗含 0 不显著已诚实标注,用户知情后拍板保留为可选档供实测。2026-08-25 新增第 9 个可选档「S06 · 大盘领先切换」——首个动态模式**(codex 通道 codex-task-20260825-001,用户拍板 B 级,§23.7 纯新增不改默认);2026-08-27(v1.1.7)用例升级为全站默认基座(common.js _KELLY_FADE_DEFAULT_MODE="s06",用户拍板观察期):不是固定勾键组合,而是按大盘风格逐日自动切换基座——T 日收盘算 size_spread=中证1000 近20日涨幅−沪深300 近20日涨幅,≤ −3.524%(2016-2020 选段 q30 冻结阈值)次日切 A 进攻王、否则次日回 NEW14·14键 防守兜底;连续破坏阈值 15 个交易日才切出(防震荡误切)、最短持有 10 个交易日(防频繁来回;持有天数=生效交易日数——进入当日计 1、其后每交易日递增无论当日是否再命中,持续非命中最多 15 个交易日必切出不锁死,2026-08-26 codex008 F2 口径修复),状态机 sticky 数组由 scripts/gen_kelly_mode_s06_state.py 单源生成快照 static-site/data/kelly_mode_s06_state.json(前端只读快照按信号日期取 effective_mode 套 a9/new14 键集,禁止前端自算);同引擎对照(验证段 2021 起,2026-08-26 held 口径修复后重跑):S06 净利 +100,572 vs 静态 NEW14+1 +83,718(多 +16,854)、最大回撤 -3,811 略深于 -3,550(⚠held 口径修复分年差诚实标注:2022 +1,014/2023 +2,019/2024 +4,296/2025 -3,538 唯一变差年/2026 +2,344);功能锚点 1:1(20260826 快照):2026-04-27 差值 +1.687% 未破阈值 → 4-28 生效 NEW14+1(3-24 进入的 A 段结束),2026-06-08 收盘破位 -4.049% → 6-09 起生效 A 进攻王至 7-06、连续 15 日未破于 7-07 切回,7-14 再破位按 T+1 于 7-15 起生效 A 进攻王至今(current=20260826 为 a9,since=20260715)。⚠ 换基座(2026-09-02 用户拍板,本分支 feat/s06-offbase-new14):S06 防守兜底基座由 NEW14+1·15键 换为 NEW14·14键(08-29 数据验证:mode A 全史 K1 换基座后 +160,314 vs 原 +155,683(Δ+4,630.75/+2.97%),K=2/3/4 正贡献一致,回撤覆盖期与近3年 mdd 完全相同;前端同构引擎当前数据重核 Δ 仍逐位 +4,630.75;权威数据 /tmp/s06_offbase_new14_verification.txt,新增快照覆盖率 20141114_KELLY_FADE_DEFAULT_MODE,v1.1.7 起默认基座);日期超覆盖期(coverage 自 2010-02-01 起;2014-11-13 前中证1000 无数据源,用同构价差「中证500−沪深300 20日涨幅」代理因子判定,方案2 消灭 2011scripts/check_s06_state.py 四断言 PASS,落档报告 docs/kelly/analysis/s06-mode-implement-report-20260825.md;§5.4⑥ 判定=纯新增可选档不动测试基准 v1.1.6,邮件链路暂不启用 S06(截至 v1.1.8 仍不启用)。2026-08-26 起快照每日盘后自动重生(云上 systemd timer trade-s06-snapshot 交易日 20:35 跑 scripts/s06_snapshot.sh 三段链:gen 重生成两树快照 → check_s06_state.py 四断言机检 → R2 兜底副本即时同步;时点依据=输入 csi1000/hs300-all.json 由 17:50 update_all 统一 deploy 的 export 生成、全链最晚 19:48 结束,留 ≥47min 缓冲用定型收盘数据;机检同步挂 deploy 校验链 check_data_integrity.py 任一 FAIL 阻断上线(§22),schedule_monitor.sh 加新鲜度兜底——coverage_end 落后最近交易日 >1 日 defer_warning「S06 快照过期 N 日」)。2026-08-26 新增 AI 信号认可度(首页信号 hoverpop 末行 X/Y 双段):Y=8 个降亏模式预设计票(静态 7 预设+S06 按信号日快照基座,与后端全量注入的命中键求交,0~8 分)、X=AI 仓位终审位(恒按标准视角 positionCap 开启+K1★主推档算当日 top1,不受界面开关影响);用于判断信号是"过滤层普遍认可的真金"还是"纸面繁荣"(X=0=K1 当天轮不到它),0 分灰显、非买入类显"—";同批修复后端 _ai_macro_hit_filters 对 r10May6NonMay/k3ConceptBuy 两键从未判定的历史缺口(v1.1.5 切 NEW14 后首页删除线/邮件实际只覆盖 12/14 键,补判后全 14 键生效;机检 check_fade_keys_alignment.py 新增断言⑦「全部预设键 ⊆ 后端可判键集」防复发),调研与口径见 docs/kelly/toggle/ai-consensus-score-research-20260826.md。2026-08-29 新增可观察模式「S06+1 · 仅K1剔高评级」(用户拍板形态乙观察档,§23.7 纯新增不改默认,默认仍 =s06):在 S06 动态基座之上叠加「当 AI仓位建议 K=1 时从同一日候选池剔除高评级(rating_high,score≥0.75)信号、mid/low 递补」附加规则;K=2/3/4 不做任何处理、逐位等于 S06 基线(Δ=0 铁律);判定核心复用 S06 per-date 快照链(_tdsS06FiltersForDate),四处消费点全部按 _tdsS06P1StripHigh(mode,K) 单一事实源一致剔除(lab 凯利区 / 首页信号网格 AI建议 / 模拟回测弹窗 / AI 监控卡,§22)。对照数字(与 S06 同口径每日池+top-K+费后):K=1 全史 +1,950,519 → +1,958,983(Δ+8,464 约 +0.4pp)、近1年 +292,928 → +301,306(Δ+8,378 约 +0.8pp)、近3/5/10年 Δ 均 +8,464;K=2/3/4 Δ=0、回撤无变化。⚠诚实标注:剔除样本仅 20 笔(高评级 70 笔中 K1 保留 20 笔被剔)、让位依赖每日排序非独立同分布、未过完整风格周期检验——观察档仅供对照不构成实盘推荐变更(数据源 /tmp/s06p1_report.txt 形态乙节)docs/kelly/position/kelly-ghi-real-price-rebase.md、docs/kelly/position/kelly-ghi-avsp-method-sweep.md。🆕 2026-09-17 accum_nav_map 按 ETF 懒加载:强平日真实净值数据供给由「整包 18.5MB accum_nav_map.json 全量加载」改为「per-ETF accum_nav/{code}.json 按需并行拉取(G/H/I 涉及约 116 只)」,弱网下首屏不再等全量净值、卡死「计算中」遮罩;全量文件保留每日生成+上传(回测本地源/对账对象/一键回退),拆分文件与全量同源逐位对账(check_data_integrity.py 新增 accum_nav_split_consistency 机检);前端三态门控 loaded/pending/failed 保证「未载 code 不漏计为时序窗口」「拉取失败 code 有限冷却重试不无限压死重算」,重算内核零改动、G/H/I 结果与全量逐位一致。方案见 docs/kelly/analysis/nav-lazy-loading-plan-20260917.mdsignal_kelly_trades.json),按时间范围 / AI 降亏过滤(「过滤」总开关 + 模式下拉:⭐S06 默认(v1.1.7 起)/A进攻王/NEW14·14键/NEW14+1·15键/9键/B均衡卡/C防守/8键旧默认·对照 八种一键套用(2026-08-24 起新增 NEW14+1 可选档;v1.1.7 起默认=S06 动态基座,NEW14 为 v1.1.5~v1.1.6 历史默认(可回选对照档),8键为更早对照档;NEW18 对照档 2026-08-26 用户拍板已移除),2026-08-23 起下拉替代旧「开启·默认8键」独立勾选;2026-08-24 起恢复总开关 checkbox 作快速切换层,开关与模式记忆正交各自独立持久化)/ K 档 / 交易模式 / 费率 5 组条件实时过滤(2026-09-06 #91 新增「价格口径」双档:次日开盘(默认,真实跟单) ↔ 当日收盘(旧基线,对比用),与凯利页同款按钮、本弹窗独立开关、2 边各自独立影响区域互不联动,切换后整区按所选口径重载重算,记忆键 tds_sim_buy_basis),13 列明细表逐笔算费后盈亏与累积收益,与凯利回测页同源口径、纯展示不与实盘关联。累积收益率=累计盈亏金额÷(全史峰值同时持仓笔数×¥10000)真实资金占用口径(#51 2026-09-05 定:分母=全史峰值恒值,不随窗口 30天/90天/全史 切换变化;非每笔收益率简单相加;2026-09-07 起弹窗渐进加载——打开先按所选窗口渲染秒开,全史分片后台补齐中峰值先用窗口内值并标「全史校准中」+ 曲线区「⏳ 后台补全全史数据」,补齐后原地自动刷成全史口径,窗口内展示数字全程与全史路径逐位一致);手续费列恒为支出扣费语义(负数+绿色)。2026-08-31 起弹窗明细表内 ETF 代码可点击弹出全历史真实历史走势 pin(复用凯利卡片同款走势组件,区切换行级过滤/缺价强平处理/×N 聚合口径与凯利实验室 lab 逐位对齐)。交易记录表列语义(2026-09-06 用户拍板):首列「信号日期」=信号触发日(非成交日);「计划买入时间」列上下换行展示——上=信号日期、下=实际买入日期(按当前价格口径:次日档=信号日下一交易日、当日档=信号日当天;最新信号次日未到来下行显示「—」)static-site/data/signal_kelly_snapshots/{date}.json:16 象限×5 周期×10 模式关键指标子集 + max_signal_date + 最近 10 笔成交 + 版本号)+ 迷你演进索引(index.json)。lab 凯利区「📈 演进」入口弹出迷你曲线(选模式看 total_return 演进 + max_signal_date 停滞提示)。🆕 2026-09-10 演进表格视图:同一弹窗新增「📋 表格(按日快照)」Tab = 日期行 × 10 卖出模式列,每格两行小字(累计净利元 + 峰值资金收益率%,±着色),末行「📌 当前全量」与全信号卡最后结果逐位一致——表格在浏览器端从同源 trades 实时重算(复用卡同引擎 _kellyApplyFeeRecompute 同口径:评级三区并集 × S06 动态基座按每笔 signal_date 取当日 a9/new14 × AI仓位建议 K=1 每日池 1 万等分 × ETF 主流费率重算),不复读后端静态主档,随上方降亏勾选/费率档/K 档实时联动;历史行 = 截至该日已平仓(closed-by-D)口径,已平仓卖价=历史收盘价固定 → 历史行天然稳定不受后期调档影响;首/末行「当前全量」= 含未平仓按最新价预估的实时视角(非已平仓口径),与日期行两口径天生不同属正常;污染快照日(如 2026-09-08 G/H/I tr:null)快照不可靠只作用于快照曲线(跳过该点),表格格为实时重算完全可算出——正常展示重算值并加「⚑快照不可靠」角标,不再置「—」;支持「近 60 行/全史」粒度切换。方案/对账见 docs/kelly/analysis/evolution-table-impl-20260910.md。配套监控:check_data_integrity.py 新增「signal_daily 最新信号日 vs etf_daily 最新 accum_nav 日」滞后再校验(>1 交易日 FAIL 阻断),signal_kelly_snapshot.py --check 挂 backfill 02:00/16:35/21:00 槽做停滞(max_signal_date 落后 ≥2 交易日)与突变告警——相对口径(🆕 #109,2026-09-11):滚动 60 日窗口(含昨日不含今日)判定 ① |今日−窗口均值|>3.0×std 且 单日|Δ|>窗口均值×5%(MUTATION_PCT),或 ② 单日|Δ|>窗口均值×5% 且前一日同向确认(|Δ|>窗口均值×1%,MUTATION_DIR_PCT);窗口均值 <500 元(ABS_FLOOR_MEAN)的小模式启用绝对兜底 单日|Δ|>200 元(ABS_FLOOR_DELTA);多 mode 命中合并单条发送,邮件+飞书同 body(§23.10)+ 24h 防抖;发版日(version 变化)豁免突变告警,防前视=阈值只用 t 之前快照(§5.1⑥)。背景=P0 断链(02:00 补采行缺 accum_nav → 回测滤掉信号日价格全跳,trades 停 8/31 线上零告警),根因排查与方案见 docs/kelly/analysis/kelly-sigkelly-advance-20260904.mdsignal_kelly_snapshot.py 同批生成 static-site/data/signal_kelly_snapshots/latest_posrating.json(全史 K=1..4 四档评级,复刻 lab _kellyApplyFeeRecompute K 档段:A 模式 all 伪象限 + S06 per-date 降亏过滤 + 每日池等分 top-K + 峰值资金统计,机检 scripts/check_posrating_parity.mjs 与 lab 逐位对账 PASS)。首页 renderOverview 首屏并行读该小文件注入首页槽 _AI_POSCAP_RATING_DYNAMIC_HOME,common.js _aiPoscapRatingSrc 按域分流(首页槽 / lab 槽 _AI_POSCAP_RATING_DYNAMIC_LAB 各自独立),lab 不再写全局槽——彻底解决「切到 lab 再切回首页 K 档值从 86.60% 跳变到 163%」的串台问题,进/出 lab 首页 K 档值稳定(§22 两处一致)。s06 状态文件缺失时跳过生成(防全放行残缺数据上线,首页回退静态兜底,§23.15)docs/ai-predict/daily-brief-research.md、docs/ai-predict/ai-predict-self-growth.md、docs/ai-predict/ai-predict-inject-research.md)fund_screener(与 fund_score 同库不同表,不新建数据库)+ scripts/sync_fund_screener_to_d1.sh 全市场平表同步(每只基金取各自最近可用分区,工作日也覆盖全市场 ~2.7 万只、不再只剩头部 2000 只),挂在 scripts/pf_score_daily.sh 末尾(16:00 后、避 17:50),同步失败不阻塞评分主流程。查询端点 GET /api/fund_screener(登录特权同 fund_score;全部条件经白名单 → 服务端参数化,无一处拼接请求值)。二期预留:多窗口正收益期占比、行业维度筛选、预设保存/分享、基金对比、换手率/重仓股重叠fund_daily_nav 表 2,177 万行逐只切片后按 FNV-1a hash(code) 末 8bit 分 256 桶 R2 nav_bucket/{xx}.json,每桶 {code: payload} map,桶内每只 payload 与原 per-code 同构),period tab 30 日/3 月/6 月/1 年/3 年/5 年/全部切换(复刻 #10 ETF 弹窗长历史交互:点开才拉、按桶缓存、轻量 SVG 与 echarts 双版本随皮肤);前端先按 _fundNavBucket 定位桶内读取、miss 回退 per-code 双读口径;R2 增量指纹上传只传真变化桶(清盘老基金序列冻结自然跳过),每日 update_all 盘后链自动刷新;当日净值晚间公布,入图最新通常 T-1。配套机检 check_fund_nav(抽样 DB↔产物逐位一致+覆盖率校验)挂 deploy 校验链datacenter-web.eastmoney.com| 公开接口 |
| 东财 futsseapi/push2delay | gold 沪金 / a_turnover_rate / 美股全球指数异源兜底(新浪/腾讯/中债失联时) | 公开接口 |
| 上交所官方期权 IV | QVIX 备 A 异源自算原料(query.sse.com.cn option_risk_indicator_sse,2015 至今 T+1 可历史回填) | 官方公开数据 |
| nkuguanrui/ivx | QVIX 备 A 方差互换自算参考(CBOE VIX 方差互换法 + sse 期权 IV 加权,multisource.py 自算实现参考其思路) | 开源项目 |
| gold-api | 首页全球盘面跑马灯现货黄金/白银备源(XAU/XAG 现货,东财挂时兜底,CORS 直连) | 公开接口 |
| open.er-api | 首页全球盘面跑马灯离岸人民币/美元日元备源(USD 基准汇率日更,东财挂时兜底,CORS 直连) | 公开接口 |