← 返回首页
Trendline Replication Briefs
生成时间:2026-06-18 06:55 UTC | 这页是 E 模块的第一批 clean-room replication brief:目标不是马上宣称复现成功,而是先把“如何落地、用什么数据、先复现到哪一层”讲清楚。
当前结论(一句话)
第一批 replication shortlist v1 现在已经不只包含论文型对象;它同时覆盖了 成本 / regime 约束(Svogun 2022)、event-source bridge(pytrendline)、以及后续待补的几何 / 机制候选,因此这页的目标也不只是“复刻论文结果”,而是把 clean-room bridge / replication / mechanism mapping 的最小落地路径讲清楚。
Brief 页怎么读
- 如果对象本身有明确外部 alpha / backtest claim,它更像传统 replication brief。
- 如果对象更像 detection engine / structure tool,它在这里的 brief 角色是 clean-room bridge brief:回答“我们该先复现到哪一层,怎样接到 mainline”。
- 所以这页现在同时容纳:paper replication、engine bridge、mechanism mapping。
Replication / Bridge priority(对齐 shortlist v1)
| 优先级 | 对象 | 角色 | 为什么先做 | 最小目标 |
| PARKED |
Chan et al. (2022) |
Support / Resistance feature reference |
方向有启发,但缺方法细节与官方代码,不再继续 faithful / active replication |
保留为 literature / feature reference |
| P1 |
Svogun & Bazán-Palomino (2022) |
Cost / regime constraint paper |
直接帮助我们给 breakout / trend 研究加现实约束 |
继续推进 gross vs net + regime 生存性比较 |
| P1 |
pytrendline (Eduardo Nunez) |
Event-source bridge / explainability engine |
有代码、结构定义清楚,和当前 unified event schema / source bridge 主线直接相连 |
先复现 detection → bridge → event validation 这条 clean-room 路径 |
| P2 |
Optimal Stopping S/R paper |
Confirmation / retest mechanism |
全文可得,最适合支撑 confirmation / retest / regime-switch 机制设计 |
先补 protocol mapping brief,再决定是否上实验 |
| P2 |
trendln (Gregory Morse) |
Geometry / channel baseline |
有代码,适合作为 support-resistance / channel 的几何 baseline,但与当前主线贴合度略低于 pytrendline |
后续补 channel / geometry brief |
候选角色对照(对应 E3-B)
| 对象 | 更适合的角色 | 当前定位 |
| pytrendline | mainline event source | active bridge candidate |
| Chan 2022 | feature candidate | parked / reference only |
| Svogun 2022 | filter / confirmation constraint | active paper replication |
| Optimal Stopping | filter / confirmation | mechanism / protocol brief |
| trendln | pure explainability reference | geometry baseline |
| Ed Nunez blog | pure explainability reference | engineering background only |
Factor intake gate v1(什么时候能从 reading 升到 factors)
不是每个 replication brief 都会自动变成“本地候选因子”。当前固定的最小入库门槛是:
- clean-room 定义已经写清:核心事件 / 因子定义不能还停留在口头启发。
- 已有最小本地验证:至少要有 event study 或 MVP backtest 之一。
- 样本与统计口径已报告:不能只给一个好看的收益数字。
- 至少有一个现实约束切片:交易成本/滑点、OOS、rolling、跨资产 中至少做一项。
- 角色判断诚实:明确它更像
alpha candidate、feature candidate 还是 filter candidate。
- 若第 1 / 2 项任一缺失:继续留在
reading/,不能升到 factors/。
- 若 1~4 都齐,且第 5 项角色判断清楚:可升为“本地候选因子 / candidate factor”。
- 如果它最强的价值只是过滤或确认层,不要硬包装成 alpha;诚实标成
filter candidate 反而更有用。
Factor intake decision #1 · Svogun 2022
decisionfilter candidatenot alpha candidate
决定:Svogun 2022 当前可以进入本地候选库,但角色应标为 filter candidate,不是 alpha candidate。
- 为什么能进 gate:
- 已有 clean-room 定义:`ma_crossover` 与 `rolling_breakout_20` 两个最小 baseline;
- 已有最小本地验证:8 币 `60m_365d / 60m_730d` 的 survival experiment;
- 已有样本与统计口径:交易数、胜率、均值、中位数、IQR、positive_symbol_ratio;
- 已有现实约束切片:`gross / net_low / net_high` + `bubble_proxy` regime split。
- 为什么不是 alpha candidate:
- 在 `60m_730d` 上,`rolling_breakout_20` 虽然 gross 平均收益为正(约 +0.12%),但到 `net_high` 就转负(约 -0.18%);
- 这更说明它的价值在于“提醒后续 breakout 研究必须报告成本与 regime 生存性”,而不是直接给出一个可部署的赚钱规则。
- 当前最诚实定位:作为 breakout / trend 研究的
filter / constraint layer 保留,并优先服务后续所有 breakout 候选的 gross/net + regime 约束审查。
Chan 2022 faithful replication 规范提取
如果你关心“为什么这篇现在收口了”,请看这页:
这页现在的作用是收口说明:我们已经确认它缺方法细节与官方代码,所以当前不再继续把它当 active replication task。
Chan 2022 · 收口记录
论文2022reference only
当前决定:这篇论文保留为 literature / feature reference,不再继续作为 active replication task。
- 原因:缺足够完整的方法细节,且未找到可信的作者官方代码。
- 我们已经完成:
- 摘要级 claim 提取
- faithful replication feasibility 审核
- 一版 clean-room 对齐实验记录
- 现在保留它,只是为了说明:我们已经读过、评估过、并决定先收口。
相关页面:faithful replication spec | clean-room replication report
Brief A · pytrendline (Eduardo Nunez)
GitHub repo2021event-source bridge
原始 claim:pytrendline 本身不是论文级 alpha claim;它更像一个 candlestick-aware 的 support / resistance / breakout detection engine。对我们最重要的,不是“faithful 复刻某个收益数字”,而是 clean-room 复现它的 结构检测 → bridge → event validation 路径。
1) 我们准备复现什么?
- 不把它当成完整交易系统复刻。
- 第一版只复现对主线最有价值的三层:
- detection layer:pivot / candidate line / duplicate grouping / breakout tagging
- bridge layer:把 representative lines 映射成 unified event schema 可消费的 source sample
- validation layer:对 event rows 做最小 forward-return / observation 页面
2) 我们用什么数据?
- 优先用项目内已经稳定接好的 OHLCV window,而不是全市场重型扫描。
- 第一版默认 recent-window 研究口径,例如:
window=96 的 BTC / ETH 5m 或与 bridge 报告一致的样本窗口。
- 原因:原仓库 README 已明确是 O(N^3) 穷举点对扫描,更适合作为 offline research engine,而不是大规模实时引擎。
3) 最小 clean-room 定义
- 输入:标准化的
timestamp/open/high/low/close candles。
- 输出先不直接下交易信号,只输出:
- support / resistance pivots
- support / resistance trendlines
- breakout-tagged lines
- representative grouped lines
- 然后把 representative lines 再翻译成:
engine_line_id
line_side
event_family
event_timestamp
slope_bucket / score_bucket
4) 最小实验设计
- 先跑 recent-window detection,确认 pivots / lines / breakout tags 的结构输出稳定。
- 再只取 representative lines 做 source bridge,避免一开始就被重复线淹没。
- 最后对 event sample 做固定 horizon 的 forward-return observation,而不是直接上完整 strategy backtest。
5) 成功标准
- 不是要求复刻出某个外部论文收益率。
- 而是要证明:我们能把 pytrendline 稳定翻译成一个可审计、可桥接、可进入 event validation 的 structure engine。
- 如果这条路径稳定成立,pytrendline 对主线的价值就成立——它会成为 source / explainability 对照,而不是“神奇 alpha 仓库”。
6) 风险
- 它的 O(N^3) 扫描决定了:不适合直接搬成大样本实时研究主引擎。
- 它当前更擅长 breakout / touch candidate,不等于已经完整覆盖 rebound / retest / confirmation。
- 因此正确落点是 bridge / event-source / explainability,不是直接当交易系统部署。
相关页面:repo deep dive | event source bridge | event validation v1
Brief B · Svogun & Bazán-Palomino (2022)
论文2022cost / regime constraint
原始 claim:crypto 里的技术分析规则并不是一扣成本就全灭,但交易成本会显著改变结果,bubble periods 也会改变 excess return 的概率。
1) 我们准备复现什么?
- 不必先完整复刻论文中的 69 条规则族。
- 第一版先复刻它最重要的洞见:breakout / trend 类规则一旦计入成本,哪些还活得下来;regime 是否会改变存活概率。
2) 我们用什么数据?
- 同样优先用容易稳定获取的数据:crypto OHLCV。
- 第一版建议:60m 为主,不先上 1-min,避免先被噪音和数据工程拖死。
- 资产仍先用 BTC / ETH / XRP / LTC,再可扩展到我们当前主宇宙。
- 样本:365d + 730d。
3) 最小 clean-room 定义
- 规则族先压缩为 2 组:
- moving average crossover baseline
- breakout baseline(Donchian / rolling high-low / trendline breakout)
- 每组先做:
- gross returns
- net returns(低成本 / 高成本)
- trend-strength / bubble-proxy 分层
4) 最小实验设计
- 对同一批规则,先跑 gross。
- 再加两档成本假设:
net_low / net_high。
- 再按 regime proxy 分层:
- 例如价格远离长期均线 / realized trend proxy / expansion regime
- 比较哪些规则在 gross 好看,但一到 net 就失效。
5) 成功标准
- 不是要求和论文一模一样的 odds ratio。
- 而是要证明:成本会显著重排 breakout / trend 类规则的优先级,而且 regime 确实会影响存活率。
- 如果这一点在我们的复现里也成立,这篇论文对当前主线就有实用价值。
6) 风险
- 论文用 1-min 与 1-day;我们先从 60m 起步,属于 clean-room 近似复刻,不是像素级还原。
- bubble 的原始定义较重,第一版可以先用 regime proxy 代替,再决定是否补 PSY。
Brief C · Optimal Stopping S/R paper
working paper2021 / 2025 v2confirmation / retest mechanism
原始 claim:support / resistance 更像一个 path-dependent regime switching 下的最优停时问题;真正有价值的不是“见线就追”,而是把 touch / break / confirmed switch 分层,再决定什么时候承认状态真的切换。
1) 我们准备复现什么?
- 不去复刻论文里的数学证明本身。
- 第一版只复现它对当前主线最有价值的那一层:
- 把 line touch、line break、confirmed switch、retest hold 组织成一套可执行的 protocol mapping
- 并把这套映射挂回当前 trendline / support-resistance event schema
2) 我们用什么数据?
- 优先复用项目内已经存在的结构线来源,而不是另起一套检测器。
- 第一版可以直接接:
pytrendline representative event rows
PyIndicators confirmation ladder / segment events
- 样本先从现有 15m / 30m / 60m 结构研究窗口开始,避免为了理论 brief 先重跑大回测。
3) 最小 clean-room 定义
- 把每次结构交互先分成 3 层:
touch_or_cross
provisional_break
confirmed_switch
- 允许的第一版 confirmed-switch 证据:
confirm1:下一根仍收在线外
confirm3:3 根内至少 2 根收在线外
retest_hold:突破后回踩原线位不失守,再次恢复
- 目标不是立刻算收益,而是先把 protocol layer 做成统一、可审计的状态机。
4) 最小实验设计
- 先在文档 / 页面层明确这套 protocol mapping。
- 再把它映射到现有 `trendline_confirmation_protocol` / unified schema 文档。
- 最后才考虑比较:裸 break vs confirm1 vs confirm3 vs retest_hold 的最小 forward-return / false-break 比较。
5) 成功标准
- 不是要求复刻论文里的 closed-form 结果。
- 而是要证明:这篇论文能稳定反哺我们当前的 confirmation / retest protocol 设计,而不是只停留在抽象机制层。
- 如果它能帮助我们把 `假突破` 和 `状态真正切换` 分得更清楚,这张 brief 就算成功。
6) 风险
- 这是一篇理论 / 机制型论文,不是直接给你分钟级 alpha 的经验论文。
- 因此它更适合当 protocol / mechanism brief,不适合被误读为“已验证赚钱规则”。
- 如果后续映射太复杂,也要接受它可能只能留下机制启发,而不一定进入 active experiment。
相关页面:quant digest | Trendline Confirmation Protocol
当前已落地的页面
当前阶段性结论:Chan 2022 这条线先收口;Svogun 2022 仍是 active paper replication;pytrendline 是 active bridge brief;Optimal Stopping 是 mechanism brief;trendln 是 geometry baseline brief;而 Fibonacci 这条线现在先补成 secondary mini brief,服务后续 pullback / confirmation 小实验。
Brief D · trendln (Gregory Morse)
GitHub repogeometry baselinechannel candidate
原始 claim:trendln 不是论文级 alpha claim;它更像一个程序化计算 support / resistance trend lines 的几何工具箱。对我们最重要的,不是直接拿它下单,而是把它作为 extrema → line search → line quality 的 clean-room 几何 baseline。
1) 我们准备复现什么?
- 不把它当成完整交易策略复刻。
- 第一版只复现对当前项目最有价值的两层:
- geometry layer:extrema 抽取、support/resistance line search、基础 quality 指标
- channel baseline layer:把近似平行的 support/resistance lines 组织成 channel candidates
2) 我们用什么数据?
- 优先使用项目内已经标准化的 OHLCV 窗口数据。
- 第一版只做窗口级结构输出,不上全市场/全参数长样本暴力扫描。
- 更适合 15m / 30m / 60m 的结构研究窗口,而不是超短频实盘引擎。
3) 最小 clean-room 定义
- 先输出:
support_slope
resistance_slope
support_touch_count
resistance_touch_count
channel_width_mean
channel_width_std
is_parallel_channel
- 然后再由上层决定是否派生:
breakout_distance_over_upper
close_confirm_bars
retest_hold
- 也就是说,trendln 的正确定位是 geometry baseline,而不是直接交易信号工厂。
4) 最小实验设计
- 先做窗口级 support/resistance line 输出与 quality 字段。
- 再做 channel candidate 判定:要求 slope difference 足够小、宽度足够稳定、上下轨触点足够多。
- 最后才考虑把 channel breakout / retest 事件接到上层 protocol 或 validation 页面。
5) 成功标准
- 不是要求 trendln 自己给出某个可交易收益率。
- 而是要证明:我们能把它稳定翻译成 support-resistance / channel 的几何 baseline,并能和 pytrendline / mainline protocol 做有意义的对照。
- 如果它能帮助我们把 channel 问题拆得更清楚,这张 brief 就算成功。
6) 风险
- 它不擅长逐 bar 状态机,不直接回答 confirmation / retest / 假突破过滤。
- 不同 extrema 方法会显著改变结果,参数稳定性需要单独审计。
- 因此它更适合作为 geometry / explainability baseline,而不是 active alpha engine。
相关页面:repo deep dive | Trendline Alpha Scout
Brief E · Fibonacci pullback confirmation (Gurrib et al., 2022)
paper2022secondary mini brief
原始 claim:Fibonacci 回撤位可以构成交易规则,但真正更值得迁移的,不是把这些位当独立 alpha 主体,而是把它们当作 pullback / breakout 的确认层,尤其强调 确认窗口要短。
1) 我们准备复现什么?
- 不复刻论文里的能源股 / 能源 crypto 日频收益数字。
- 第一版只复现它对当前主线最有价值的那层:
- recent-window swing high / low → Fibonacci 回撤位
- 回撤位作为 pullback / breakout confirmation layer
- 短窗口确认是否能降低假突破 / 假回踩
2) 我们用什么数据?
- 优先用我们当前最容易稳定获取的 15m crypto 数据。
- 第一版建议:BTC / ETH / SOL。
- 方向层固定,不在这张 brief 里继续优化,例如:
EMA50 > EMA200 只做多,反之只做空。
3) 最小 clean-room 定义
- 从 recent-window(例如最近 48 根 15m bar)提取局部 swing high / low。
- causal swing protocol v1:
- swing high / low 必须用
2-bar right confirmation 确认;也就是某个 pivot 只能在其后再出现 2 根 bar 后才算正式可见。
- 回撤位只能由“最近一对已确认的 opposite swings”生成,不能提前偷看未确认 pivot。
- 一旦某次交易候选已经基于某组 swings 形成,该次候选在失效 / 成交前不允许被后来才确认的新 swing retroactively 重写。
- 计算:
23.6 / 38.2 / 50 / 61.8 回撤位。
- 优先不把 Fibonacci 位直接当入场条件,而是作为“已经出现 pullback / breakout 候选后,是否继续确认”的过滤层。
4) 最小实验设计
baseline:裸 pullback entry(触及 38.2 或 50 就进)。
confirm-1bar:触位后下一根仍朝有利方向收盘才进。
confirm-2of3:3 根内至少 2 根收盘支持方向。
retest-hold:先破位,再回踩 38.2 / 50 不失守后进。
- 关键比较:
false_break_ratio / max_drawdown / post_cost_return。
5) 成功标准
- 不是要求 Fibonacci-only 收益率很好看。
- 而是要证明:把回撤位当 confirmation layer 后,能否在不明显伤害收益的前提下,压低假突破 / 假回踩和回撤。
- 如果这点成立,这条线就值得作为 filter / confirmation candidate 继续留在本地验证队列。
6) 风险
- 原论文主样本是日频能源股 / 能源 crypto,不是我们主战场。
- 即使写了 `causal swing protocol v1`,pivot delay 也会让信号变慢,因此后续应把“更干净的因果边界”和“更少的时效性损失”分开评估。
- 因此它当前只适合作为 secondary mini brief,不适合直接升为 active replication 主候选。
相关页面:quant digest | Trendline Alpha Scout
我建议的落地顺序
- 继续 Svogun 2022:它负责给 breakout / trend 研究加现实约束。
- 继续把 pytrendline 当成 active bridge candidate:推进 source bridge / event validation 与主线协议的连接。
- 把 Optimal Stopping 当成 mechanism brief:优先反哺 confirmation / retest protocol。
- 把 trendln 当成 geometry baseline:服务 channel / support-resistance 的几何对照,而不是直接抢主线。
- 把 Fibonacci 线当成 secondary confirmation brief:优先服务 15m pullback / breakout 小实验,而不是升主候选。
- Chan 2022 保留为参考:不再继续作为 active replication 任务。
下一步交付
- P1:继续推进 Svogun 2022 的 gross vs net + regime 规则存活性实验
- P1:把 Optimal Stopping 的 protocol mapping 真正挂回 confirmation protocol 页面
- P2:对 Fibonacci 线先做 15m `裸 pullback vs confirm-1bar vs confirm-2of3 vs retest-hold` 的最小 clean-room 对照
- P2:若要继续 E 模块扩量,再补新的 confirmation / retest / failed-breakout 候选,而不是继续改 shortlist v1