新成员上手报告:一个关于信号、右尾、信任的故事
这不是一份目录,而是一个故事——我们在赌什么、为什么这套策略注定会回撤却依然值钱、我们怎么一个一个把因子筛出来(又拒绝了大多数)、回测版本怎么一步步逼出来、以及最关键的:实盘怎么和回测逐笔对齐,从而把投资人的钱(和信任)一笔笔换进来。读完它,你应该不只是"知道有哪些模块",而是"理解我们为什么这样做"。
00怎么读这份报告
事实 git 可审计历史第一个 commit 是 2025-11-25 7dacc62 “Initial commit from existing project”——「from existing project」说明此前已有一套在跑的项目(最早的 V1 监控思路)。所以:git 前的 V1(2025 秋)只能推断(凡涉及我都标「git 前/推断」);2025-11-25 起的一切可逐条核对。
策略的故事:我们到底在赌什么
01我们在赌什么
每个交易日,期权市场会成交数十万笔单子。其中绝大多数是噪音。但偶尔,某家机构会突然在某只股票上砸下几十万美元、主动买入(ASK)看涨(call)期权——不是慢慢挂单等成交,而是直接吃掉卖方报价。这种行为往往发生在股价大涨之前。
这不是内幕,是信息不对称投下的影子:有人比市场先一步形成了高确信度的方向判断,并用真金白银的期权杠杆下注。UnusualWhales 把这些"异常大单流"实时抓出来卖给我们。我们赌的,就是系统性地把这种"机构主动建仓的影子"捞出来,在它指向的正股上跟一手。
经验 · 为什么是这个切面 原始数据是 call+put、ASK+BID 的全集(294,022 行,见 §04)。我们只取 ASK + call 这一刀——主动买入看涨 = 最干净的看多方向信号。不交易期权而交易正股,是因为正股流动性好、可大额、可复现回测;期权的隐含波动率/时间价值会把"方向对了但赚不到钱"的情况放大。这一刀切下去,剩下的全部工程都是在回答一个问题:这么多 ASK+call 大单,哪些值得跟?(答案就是评分卡 + 因子,见 Part 三。)
02右尾驱动:这个策略的灵魂
如果你只记住这份报告的一件事,记住这个。事实 3 年回测 1,477 笔交易的盈亏分布:
经验 · 这一个事实解释了策略的一切:
- 连续 −15% 止损不是策略坏了,是策略的代价。你想要那个 +136% 的赢家,就必须忍受它来临之前的一串止损。事实 2026-05 的某一周,上周的大赢家 HIMX 没有再出现,账户就眼看着 −8%;然后 5/22 一个 CMPS +13.5%,单票一天就把一周的回撤修回来。
- 为什么严格 −15% 止损、为什么单票仓位上限 15%、为什么同日同票去重、为什么分散持仓——全都是为了"活到大赢家出现":控制每一笔输家的尾部,保证组合不会在大赢家来临前先被一两笔单子打残。
- 我们不靠"高胜率小赢",靠"右尾大赢家 + 复利"。这意味着评估这个策略不能看胜率、不能看某一周——要看它有没有持续捕捉右尾的能力。
03与市场解耦:为什么这是"真 alpha"而不是杠杆
事实 3 年回测,策略与 SPY 的日收益相关性 0.092、市场 Beta 0.17、R² <1%。
- 经验 · 一枚硬币的两面 想要"和大盘不相关",就必须接受时点错配:SPY 涨的时候我们可能在跌(像 5 月那周),SPY 跌的时候我们可能不跌。要分散价值,就得接受这种错配——不能既要解耦、又要"大盘涨我也涨"。
- 事实 这种周/月级别的脱钩,3 年回测里出现过 10 次("SPY 三天≥−1%,策略三天≤−4%"),每 3–6 个月一次;最极端的是 2025-04-09 关税反弹日:SPY +8.58%,策略 −6.28%。脱钩是策略 DNA。
- 事实 年度最大回撤:2023 −5.9% / 2024 −7.6% / 2025 −10.4% / 2026 −7.2%。任何一周 −8% 都落在历史正常区间内。
信号从哪来:数据地基
04数据地基:Strategy_bigopen_10plus.csv
事实 主信号源是单个 CSV:future_v_0_1/database/Strategy_bigopen_10plus.csv(≈91 MB)。「10plus」= 开仓权利金 ≥ $10,000 的期权大单(source_bucket 分 10_20=\$10–20K、20plus=>\$20K)。它不是 UW_Flow_Dumps_..._chunks/ 那批 14 天 dump 分片(那是给 flow 类因子用的另一份,~757 万行)。
| 维度 | 真实分布 | 含义 |
|---|---|---|
| 权利金档 | 20plus 173,281 · 10_20 120,741 | 大单为主(>$20K 占 59%) |
| 类型 / 方向 | call 151,848 / put 142,174 · ASK 145,941 / BID 148,081 | 原始是全集;策略只取 ASK+call |
| 情绪 tags | BULLISH 147,353 · BEARISH 146,669 | 几乎对半(含 🐂/🐻 + 🛍️ASK/🦴BID) |
| 按年 | 2023:32,608 · 2024:81,896 · 2025:110,767 · 2026:68,751 | 2025 信号最密(牛市) |
date+time 无时区列),全链路要 tz_localize('Asia/Shanghai')→tz_convert('America/New_York') 才能和美东盘口对齐——错了就前瞻/错位 4–5 小时。② dte 是下载当日算的,使用必须用 expiry−entry_date 重算。05从一条异常流,到一笔真实交易
这是把"世界观"变成"可执行"的完整链路——也是后面所有版本演进围绕的主轴:
经验 这条链路里,第 ③ 步(底表 base_xy)和第 ④ 步(因子打分)是研究与实盘共用的核心:回测和实盘用同一份因子定义,所以"回测好"才可能"实盘一致"。这正是后面"实盘=回测"(Part 五)能成立的工程前提。
我们怎么筛因子(这是真功夫)
06因子筛选:四阶段漏斗
事实 标准流程固化在 skill /explore-factor 里,每个候选因子都要闯四关,任一关不过即停。判官是「8 核生产基线」(CAGR 105.35% / MaxDD 13.65% / Calmar 7.72 / 1,432 笔,asof0427、1x、窗口必须 2023-04-20→2026-04-27)。
y_2d。过关线:ANOVA p<0.05;最优桶超额收益 >+0.2%;与已有因子(nbp3d/ret_5d/score_raw/stock_price)相关性 |r|<0.4(正交);+1 触发率落在 8%–18%(太稠密=没区分度,太稀疏=没样本)。claude_explore/factors_zlj/ + factor_registry_zlj.py 迭代(主干零污染),但结构必须照抄主干 FactorBase/codex spec builder——这样 Phase 4 通过后整段 PR 迁入主干不用重写,实盘和回测的因子定义不会漂移。这是"实盘=回测"的纪律延伸到研究阶段。07因子合格性检验:一套完整的"电池"
这是团队最值钱的方法论,也是新人最该吃透、能直接上手照做的部分。事实 它固化在 skill /explore-factor,并在 LRH(兰容亨 / Ian Lan)的每一份因子 PR 报告里逐项实操——reports/nbp3d_factor_exploration.md、ret_5d_rolling_factor_exploration.md、uw_directional_factor_unified_evaluation.md 都是活模板。核心只有一个问题:这个 +pp 是真 alpha,还是过拟合 / 伪装 / 单年异象? §06 是流程,下面 9 关是判据电池——任一关塌了就毙。
low(4 年 Calmar 全升)弃 high(2024 MDD 恶化近 4pp);选 binary 弃 ternary——ternary 在 2024 主动踢掉 12 笔胜率 58% 的好信号(误杀),binary 不扣分(2024 收益 44.7% vs 35.1%)。STOCK/ADR 训练,不混 ETF——ETF 有日内到期、流量结构不同,混进去会把"低分位"边界往 0 压、污染阈值("分析池与训练池不对齐 = 用的不是同一分布的分位数")。nbp3d / ret_5d 都加了 training_asset_types=(STOCK,ADR)。lag_1week "+6pp 年化"经分解发现 57% 来自单笔 SMCI +$179k 的边界运气,且 2026 三版完全一致 → 推翻"降噪"假说、恢复 no_lag。经验沉淀:"分年均值的改善可能来自单笔暴击;评估 A/B 必须拆解 仓位复利 × 独有交易 × 对手独有交易"。uw_flow_codex_combo_070 第一个拿到 1.19×。新人直接接入:拿一个候选因子,跑
/explore-factor,对照上面 9 关逐项过——这就是我们筛因子的全部标准。08因子坟场:我们拒绝了什么、为什么
经验 一个团队的成熟度,看它敢不敢枪毙自己做出来的"好结果"。这些否定性结论全部归档在 reports/ 与 claude_explore/,避免后人重复踩坑。每一个都是被上面某一关拦下的——看"哪一关塌了"比看结论更有用:
| 被毙的因子 / 方向 | 当初多诱人 | 真相(哪一关塌了) |
|---|---|---|
ret_5d Wide rolling (p10–90) | CAGR 107% > Deep 的 101% | 关 5:percentile U 型双峰,2023–24 退化成"恒 +1"蹭牛市 beta——那一年它根本不是同一个因子 |
sparse 系列(sparse_ask / B、C 变体) | +0.289 / t=2.80(最高) | 关 7:drop-2025 塌到 +0.058 / t=1.01,是 2025 单年异象;"加 sparse 约束"本身就是过拟合产物 |
| expiry-match bear 全系列 | — | 关 1/7:全样本已是负贡献——限定到同一合约链后 bear 不再代表"反转",沦为双向消息混杂的噪声 |
nbp3d lag_1week | +6pp 年化 | 关 9:57% 来自单笔 SMCI 边界运气,2026 三版完全一致 → 恢复 no_lag |
count_14d_zero | 回测 +pp 漂亮 | 关 6:FSLY 一个离群点撑起,拿掉就崩 = 假因子 |
current_call_low_oi | score_raw==5 条件下 +7.34pp | 关 8:去条件改纯 +1 因子后 −10.49pp 比基线还差——是 admission rule 不是因子,alpha 全在边界 |
| 整轮 V8 探索(83 组矩阵) | 一堆 +pp | 关 3:(ft,fd) 分组 dump 窗口数据 bug,+pp 是人工产物。F2 复测从 +8.63pp 缩到 +2.18pp |
| F2(opening ask spread)全阈值 | +1~3pp | Phase 3 未达标:边际且 DD 全部变差 ~1pp |
- dvol 第 10 因子:8 维度 workflow 裁决(real-alpha/plateau/look-ahead/orthogonality/...),结论 SHIP WITH CAVEATS 信心 ~0.80(方向高、绝对幅度低;且发现它删的正是 SPY guard 该拦的低量能信号,收益与 guard 多坏成正比)。
- exit 方式 sweep(35+ 变体):7 个 agent 对抗验证,抓出一个差点漏掉的 look-ahead——gate 必须 on
ex_2td<entry,否则偷看未实现价格。修正后 walk-forward day2-gate 真改进(Calmar 7.63→~10)。
codex_explore/ · minimax_explore/ · claude_explore/ 三个 AI 探索工作区——多智能体是我们的研究方法论,不是噱头。09当前因子清单(评分卡的零件)
事实 全部注册在 factor_registry.py(python3 factor_registry.py list/show <key> 可看每个因子的打分表)。每个因子对一条信号产出一个整数分项,求和 = score_raw,门槛 min_score=6。生产线从 6 核 → 8 核(8f) → 9 核(9f) → 10 核逐步长出来。
理解评分卡的关键:它其实在回答一个问题——"一个高质量的 ASK+call 大单信号,长什么样?" 核心 6 因子刻画"信号本身的质量",后加的滚动/gating 因子补上"时机与环境"的边际。下面逐个讲"它衡量什么 + 为什么这么打分"。
核心 6 因子 — 刻画"信号本身的质量"(V7 沿用,静态打分,−2~+2)
| 因子 | 打分表 | 衡量什么 & 为什么这么打(直觉) |
|---|---|---|
| iv 隐含波动率% | ≤25→−2 (25,50]→+1 (50,100]→+2 >100→−1 | 市场给这个标的定价了多大的预期波动。中高 IV(50–100)最好(+2)——说明确实有大事在酝酿、机构愿意为波动付费;IV 太低(<25,没人预期会动)说明信号"师出无名",IV 太高(>100,彩票/暴雷区,往往已经异动过或太贵)都扣分。 |
| stock_price 股价$ | ≤20→+2 (20,50]→+1 (50,150]→−1 (150,500]→−2 >500→0 | 越便宜的股票,% 涨幅空间越大,一笔大单押在它身上的信息含量也越高。低价股(≤$20)+2(右尾大赢家最可能从这里出);大盘高价股按 % 算动得少,所以扣分。这直接服务于"右尾驱动"——我们要的是能翻倍的票。 |
| otm 虚值度% | ≤2→−2 (2,5]→−1 (5,10]→0 (10,20]→+2 (20,50]→+1 >50→0 准入[5,50] | 这笔期权离当前股价多远。甜区是 10–20% OTM(+2):够远,是真方向性押注而不是近月对冲/做市;又不至于太远而沦为纯彩票。太近(ATM,可能只是对冲)和太远(>50%,赌博)都不给分。OTM 还兼任硬准入:只有 5–50% 的信号才进可交易池。 |
| asset_type 资产类型 | STOCK/ADR→+1 ETF_ETN→−1 | 单只股票的期权流带的是个股特有(idiosyncratic)信息——有人对这家公司有判断;而 ETF 上的大单多是对冲/宏观仓位,方向信号不干净。所以个股 +1、ETF −1(实盘本来也只交易 STOCK/ADR)。 |
| rule_hit 规则命中 | rule 非空→+1 rule 空→−1 | UW 会给每条流打一个 rule 模式标签(它自己的形态识别)。被标了 rule = 落入某个被平台识别的已知形态,比没有任何标签的"裸流"更可能是真信号,而非随机噪音。 |
| time_slot 信号时段(美东) | open 09:30–10:30→+1 close 15:00–16:00→+1 盘中→0 | 一天里开盘和收盘的流最有信息:开盘 = 对隔夜消息、新形成的高确信度的即时反应;收盘 = 机构为次日/隔夜布局。盘中(10:30–15:00)多是算法拆单和噪音,给 0。 |
后加的 4 个因子 — 补上"时机与环境"的边际(滚动 IC / gating)
这 4 个不是静态分箱,而是按交易日滚动、用 IC(信息系数)自动找最优阈值、严格无前瞻(训练窗口 [D−7−90, D−7),留 7 天 gap 让 2 日收益完全 settle)。它们回答的不是"信号好不好",而是"现在这个时点、这个波动环境,适不适合下手"。
| 因子(属于) | 打分逻辑 | 衡量什么 & 为什么(直觉) |
|---|---|---|
| nbp3d_low 第7 · 8f | ratio=(看多权利金−看空权利金)/总看多={call吃ASK + put吃BID} ratio 低 → +1(滚动阈值) | 过去 3 天这只票的净买压"还不高"时,当前这条 ASK+call 反而是好信号。为什么?低 ratio = 最近还没被大量看多流挤过,说明我们抓到的是"第一波/早期布局",而不是追在已经拥挤的交易尾巴上。这是 contrarian / 抢早入场的逻辑(训练只用 STOCK/ADR,防 ETF 的日内到期外溢污染阈值)。 |
| ret_5d_roll_deep 第8 · 8f | ret_5d=close[T-1]/close[T-6]−1近 5 日跌得越深 → +1 阈值只从 [5,10,15,20,25] 深分位选 | 大单 + 标的刚刚深度回调 = 拉升前低吸(机构常在恐慌回调里建仓)。窄尾分位设计(只在最深的 5–25% 里找阈值)是为了避免在宽尾上搜出一个过拟合的"漂亮"圆整阈值;rolling 版还能自适应 regime,并作为老的静态 −10% 阈值的 sanity check。 |
| rv3d_band_15_30 第9 · v9_2 | rv_ratio = rv3d / 当日IC阈值落 [1.5, 3.0] → +1,否则 0 | 3 日已实现波动率的"金发姑娘区间"。双峰诊断:rv_ratio<0.6 太死寂(没东西在动 = 噪音)、[0.6,3.0] 是好区(有健康的波动= 真有事在发生)、>3.0 太狂暴(暴雷/已经异动完,反而是反指)。band[1.5,3.0] 专抓"升温但未失控"的波动环境;walk-forward 显示最优 band 随样本单调收敛到 (1.5,3.0),不是拍脑袋。 |
| dvol_10d_low_pen 第10 · main | gating:近 10 日期权美元成交量低 → 扣分(惩罚方向,非对称) | 当标的近期期权活跃度 / 美元成交量很低,这条 BigOpen 信号其实处在一个低流动性、低市场关注度的环境里——这类单子统计上负 EV 偏多。所以低 dvol 直接惩罚。对抗式验证证明它删掉的 236 笔确是真负 EV(保留组的胜率/收益显著更高),是真"删坏单"而非单纯降仓。 |
nbp3d_low:方向 low(弃 high,4 年 Calmar 全升)· binary(弃 ternary 防误杀)· tol=0 合约级精确 · 只用 STOCK/ADR 训阈值 · no_lag(lag_1week 的优势经查是单笔 SMCI 假象)ret_5d_roll_deep:窄尾 [5,10,15,20,25](弃宽尾 p10–90,后者退化成"恒 +1"蹭 beta)· static −10% 仅作 sanity baseline(阈值 ±5% CAGR 差 <2pp,证明不过拟合)rv3d_band_15_30:walk-forward expanding window 最优 band 单调收敛到 (1.5,3.0)(train 23→1.0、+24→1.2、+25→1.5)· plateau 内 16 组合 4/4 年同向(不是单点最优)dvol_10d_low_pen:gating 删掉 236 笔真负 EV 单(保留组胜率/收益显著更高)· 8 维对抗式验证 ship-with-caveats 信心 0.80
--start-date 2023-04-20(默认 0310 会凭空少 4–7pp);④ 新因子直接用 V9.1 框架写,别写一次性脚本。回测版本演进史:每一版都在解上一版的痛
10从监控,到评分卡,到可复现流水线
ai_store 的 LLM 动态止盈止损是后来 AI Store 通知链路的源头。经验 · 一句话总线 重心从"找 alpha"逐步转向"让 alpha 可复现、可上线、可对账、可运营、可扩容"。越往后,工程难度不在因子本身,而在"让回测的好,真的变成实盘的好"。
实盘 = 回测:信任的根基
11逐笔对账:实盘没有"漏血"
事实 5/1 上线后,把回测 capital 重置到实盘 4/30 净值、同 V9.1 算法、同窗口、同 daily mark-to-market,两条 NAV 曲线几乎完全重合:
| 节点 | 实盘 4001 | 回测(daily MTM) | 差距 |
|---|---|---|---|
| 5/6 高点 | $988,828 | $987,131 | +0.18pp |
| 5/19 谷底 | $888,690 | $860,877 | 回测更深 −2.66pp |
| 峰→谷回撤 | −10.13% | −12.79% | 同量级(回测预测更深) |
| 4 笔 −15% 止损 | −14.99~−15.50% | −15.09% ×4 | 精确匹配 |
- 事实 入场一致率 ~80–85%(BOTH / LIVE_ONLY / BT_ONLY 三分类对账);CTRI/MEI/TNDM/WRBY 四笔 −15% 止损价位实盘≈回测,差<0.3pp。
- 经验 · 这就是信任的工程 没有"实盘开垃圾票、回测会拒收"的 admission bug,也没有"实盘止损打脸"。每周/每节点出一份逐笔对账报告(
investor_5_22_explain_zlj//investor_0529_update_zlj/),就是把"相信我"变成"你自己看数据"。这是入金(Part 六)能持续进来的根本原因。
12−8% 回撤是 DNA,不是 bug(怎么对投资人讲)
5/14 峰 → 5/19 谷(4 个交易日)策略 −8.2%,SPY 仅 −1.93%——跌幅是大盘 4 倍。表面看像"出事了"。事实 真相:3 个交易日内打掉 3 笔 −15% 止损(MEI/TNDM/WRBY)+ 一批小亏,复利账面 −8%。而这种模式3 年回测出现过 10 次,且当周回测预测的回撤比实盘还要深。
经验 · 给投资人的六句话(直接取自解释报告,是可复用的话术):① 执行 0 误差;② 本周 −8% 是策略特征,历史 10+ 次;③ 弱相关是 feature 不是 bug(Beta 0.17);④ 右尾驱动 = 必然有连续小亏段(前 5% 贡献 110% 总盈利);⑤ 反弹已启动(CMPS +13.5% 单票把组合从 −3.6% 拉回 −1.0%);⑥ 长期画面:3 年年化 ~110%、最大回撤 12.4%,本次在正常区间。
13对齐的敌人:复现陷阱 + 漏单 bug
经验 "回测好≠实盘一致"的差异来源被逐个定位、归档。新人对账时先扣这些已知项,再谈策略:
| 差异来源 | 本质 | 纪律 |
|---|---|---|
| 回测不可复现 事实 | 同一张钉死的 signal_table,一次 121%/12%DD,几小时后 138%/19.6%。两因:① SPY 护卫 fail-open(API key 缺就静默关护卫,12%→19.6% DD);② ret_5d 的 daily_bars 缓存被反复写污染。 | 只信同会话 delta;fast-path 钉死 9f 表只改新因子列。 |
| partial-fill 漏单 事实 | ib_bigopen_v9_1_store.py:2341 Cancelled 分支:limit 单重试到上限后只记已成交量,没 fallback 市价单补足。pos_ratio<0.3 的票几乎都是漏单。 | NAV 差距里"sizing 差异"主因是它,不是算法设计。这次(5/1–5/22)漏单碰巧打在大亏票上净帮 +$15.5k,但下次命中 +30% 大赢家就会显著少赚——是 bug,要修。 |
| 评分分阶段灰度 事实 | 4 月实盘评分按 6→7→8 因子分 5 阶段上线(含 shadow 影子阶段)。 | 对账 4 月必须按阶段切对应信号表,否则前 3 周全是假差异。 |
| 两个数据 bug 事实 | pandas 3.0.1 us/ns 精度(stage1_build.py:872,asof≥5/19 build 全废);UW (ft,fd) 分组窗口 bug(V8 探索全废)。 | 用 _zlj patch 版;新 UW builder 用 codex global-dedup。 |
uw_sparse_ask_dominance_14d/uw_floor50_dom_bid_14d)曾从 4/20 起一度 fail-open=0(表名拼错 _zljtest 后缀 + cache 未更新),现已修复并在实盘启用。经验 留作教训:遇到任何因子 score=0,先分清是"真 0"还是"fail-open 0"(查表名 / cache 是否新鲜),别想当然。入金 = 投资人信任曲线
accounting/ 与 daily_nav 为准。14从 3 个朋友的 3 万港币,到 130 万美元
事实 资金时间线(accounting/transactions.csv)讲的是一条信任如何建立、加码、又被理性管理的曲线:
15账户即部署单元:清单 / 收益 / 入金出金
bigopen_v4_store)。| port | IB 登录名 | 内部代号 | strategy(实跑) | 币种 | 备注 |
|---|---|---|---|---|---|
| 4001 | merton1994 | WK | bigopen_v9 | HKD | 主基金 |
| 4011 | zjj | zgl | bigopen_v9 | USD | --no-feishu-alert(赠股噪音) |
| 4021 | chenyingwenkai | WKLP | bigopen_v9→v9_1 | USD | --force-guard 半仓(要取钱) |
| 4031 | langpingxu | langping | bigopen_v9_1(10 因子) | HKD | 6/1 起停跑 |
| 4041 | wenjing1228 | WJ | ai_option_store | USD | 测试账户 |
| 4061 | lrh→ustcian2026 | LRH/兰容亨 | bigopen_v9 | USD→HKD | 4/24 兰/徐各入 $35k |
| 4081 | bigopen_v4_jx | jx→金洲 JZ_FUND | — | USD | 已下线/改名(PR #133) |
入金 / 出金 / 净投入(accounting 口径,2/1–4/25)
| 账户 | 入金 USD | 出金 USD | 净投入 USD |
|---|---|---|---|
| WK(主基金) | 800,000 | 0 | 800,000 |
| WKLP | 393,067 | 0 | 393,067 |
| LRH | 95,593 | 0 | 95,593 |
| WJ(测试) | 10,789 | 0 | 10,789 |
| ZLJ(已清空) | 44,526 | 41,972 | 2,554 |
| 合计 | 1,343,975 | 41,972 | 1,302,003 |
事实 账户级收益以旗舰 WK 主基金为例:成立至 5/1 NAV 1.188(+18.78%,总损益 +$140,585)。其余账户受入金时点 / 跨账户划转 / 起投净值不同影响,账户级收益不可横向直接比较(口径见下方"划转污染"说明),此处不逐一列示。
经验 任何跨入金/出金/划转的区间,必须以"划转完成后"为基准重定基再算收益,否则像 4061 那样把入金当成 +253% 业绩、或把出金当成崩盘。
three_accounts_report_zlj 就是统一从划转后的 6/2 起算,剔除划转扰动后再比三账户的纯交易表现(结论:三者高度相关,同属 big-open 动量多头,差异来自杠杆/现金状态与个别独有持仓)。--force-guard 半仓 · 下线/改名走 PR + 5/1 做了完整清算复核(应收应付全部归零)。参考与证据
16实盘系统 / Signal Store / 通知 / 安全(速查)
事实 · 数据链路 UW API → Signal Store 采集(每分钟) → RDS PostgreSQL → FastAPI(:8000) → run_strategy.py → IB。DB 关键表:custom_alert_signals(BigOpen 当前用) / positions / trades(flow_id 可溯源)/ daily_nav(收益权威口径)/ strategy_signal_scores。
| 通知通道 | 用途 / 演进 |
|---|---|
| 飞书 | 因子 daily_run 成功/失败 + 开盘 10 分钟无信号预警 + ai_store LLM 群;可按账户 --no-feishu-alert |
| Telegram | PUT 监控 + EOD 综合分析;6/1 起邮件停发迁 TG |
| Make.com webhook | EOD 转发 + LLM 英文 markdown 摘要(限字 + web search) |
ae3820f 发现)。用户已决定:不轮换、不 scrub,接受现状(私有库+内部 DB)→ 不必再提醒。经验:新代码一律从 .env 读凭据,绝不新增硬编码;任何对外产物不含密钥。17探索分支与多智能体(没全进 main 的经验)
| 分支 | 负责人(推断) | 领先/落后 | 主题 | 进 main |
|---|---|---|---|---|
| dev_langping | Langping | 0/9 | 主开发分支,绝大多数 PR 来源 | 已并 |
| dev_zlj | ZLJ | 51/28 | claude_explore 全部探索(因子/对账/投资人报告/容量/overlay) | 部分 |
| dev_v9_lrh | Ian Lan | 3/1 | V9 离线打分 pipeline、rv3d、dvol、ret_5d fail-loud | 主要已并 |
| dev_lrh | Ian Lan | 2/430 | 老分支:fixed-time exit + daily bar API | 历史 |
| codex/minimax-prior-flow-shadow | Codex | 38/59 | minimax 探索 + 实盘 log prior-day flow shadow | 未并 |
| codex/uw-flow-b-floor-factors | Codex | 35/75 | prior-day UW flow 因子(sparse_ask/floor50 来源) | 部分 |
| codex/uw-quiet-option-spike · factor-explore-curated | Codex | 1/28·1/41 | quiet option spike / 因子 curate 笔记 | 未并 |
| codex-worktree | Codex | 13/41 | MegaConsensus public CSV audit | 未并 |
| option_dev_zlj | ZLJ | 14/91 | 期权策略复现包;含"Calmar 13+ 是回测幻觉"sanity cap 修正 | 独立 |
| feat/dvol-10d-low-pen | Ian Lan | 1/1 | dvol 第 10 因子 | 已并 |
事实 claude_explore 重点产物:uw_flow_explore/(因子探索总文档)· capacity_analysis_zlj/(V9 容量 ~$30M,催生 V10)· index_overlay_zlj/("闲置资金配低相关底仓"研究,结论"平均闲置 55% 是均值骗局、可靠闲置≈0")· investor_5_22/0529_zlj/(投资人对账)· exit_sweep_zlj/ · dvol_verify_zlj/ · monday_exit_analysis_zlj/ · strategy_pitch_zlj/。
18经验总结
A证据附录
A.1 PR Ledger(merge commit 重建,#1–#133)
事实 gh 不可用,PR 从 merge commit 重建;绝大多数来自 dev_langping。缺号为未走 first-parent 或关闭未合并。
| 日期段 | PR | 来源 / 主题 |
|---|---|---|
| 2025-11-25 | #1 | Initial commit from existing project |
| 2025-12 | #2–#11 | earnings / RealtimeMonitor / Signal Store 雏形(含 zlj-server #8) |
| 2026-01~02 | #12–#26 | IB 实盘策略 + 采集 |
| 2026-03 | #27–#50 | BigOpen V4→V7 评分卡 |
| 2026-04 | #51–#104 | V9 流水线 + NBP3D/RET5D;含 count-f2(#52,53)/uw-flow-3(#58)/ret5d-fix(#87) |
| 2026-05 | #105–#127 | UW flow 因子 + 在线打分 API + asof;count-14d(#105)、dev_v9_lrh(#126) |
| 2026-05~06 | #129–#133 | CALL/PUT 统一监控 + rv3d;4081→金洲(#133) |
A.2 main first-parent 关键 commit(节选)
A.3 文件改动热点(全分支累计 top)
A.4 已知局限
- 事实 git 前 V1(2025 秋)只能推断,无 commit 可核。
- 事实 PR ledger 由 merge commit 重建,关闭未合并的 PR/评审/描述不可见。
- 事实 账户收益/入金出金来自
accounting/(多处标"待确认",如 12/15 首笔汇率反推 6.52 异常)+daily_nav,非审计报表。 - 事实 回测绝对数字受复现陷阱影响可能漂移;本报告引用"已与同事对齐"的同会话口径。
- 经验 标「经验」者为归纳推断,可能随 regime/代码演进失效——引用前回到对应 commit/文件核对。
A.5 新人"先读 + 先跑"清单
- 读:本报告 →
BIGOPEN_V9_USAGE.md→STRATEGY_BIGOPEN_V7.md→ 给投资人的investor_5_22_explain_zlj/INVESTOR_EXPLAIN.md(感受"实盘=回测"的故事) - 读:
factor_registry.py+ skill/explore-factor(因子方法论)+uw_flow_explore/总文档(含因子坟场) - 读:
accounting/README.md+summary.md(资金会计模型) - 跑:Stage1-1 fetch → 1-2 build → build_factors → run_backtest(
--start-date 2023-04-20),亲手复现 8 核 ≈ 105%