Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기信号实验室 · tdsignal
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
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),是所有策略挖掘与推荐的最高评估标准: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 直连) | 公开接口 |