源文件:research/quant_digests/2026-03-19_1557_vajra-controlled-pullback-depth-budget.md
这轮看的是一个很新的仓库:Aatharva21 (2026) 的 BTC-EMA-based-strategy-1H-(Vajra)。 我没有照搬它的整套 1H BTC 策略,而是只抽了一个更适合我们 desk 的旁支问题:
> controlled pullback <= 1.5% 这条规则,放到我们 15m EMA/PSAR continuation 里,应该当触发过滤,还是当“前置状态预算”来用?
repo 里这条支路很清楚:
pullbackLookback = 5maxPullbackPct = 1.5nearEMAvolume > 1.2 * SMA20ADX >= 25pullback<=1.5% 几乎不筛选样本(108/109 已天然满足),所以它不适合当触发后 gate;更像该前置到“setup 预备状态预算”层。BTC/ETH/SOL 120d 15m cache,统一 next-bar open + hold 8 bars + no-overlap + 6/10/15bps,比较 baseline / depth15 / depth15+touch+green / repo_branch。6bps/side):baseline:mean_total_return = -3.66%,mean_trade_count = 34.67depth15:-2.53%,但 retention = 99.05%(几乎没筛选)repo_branch(深度+nearEMA+green+vol1.2+ADX25):-2.47%,但 retention = 29.94%、positive_asset_ratio = 0/31.0% 反而比 repo 默认 1.5% 更稳:depth<=1.0%:mean_total_return ≈ -1.34%,retention ≈ 92.66%depth<=1.5%:mean_total_return ≈ -2.53%,retention ≈ 94.50%retest depth budget 更像前置资格,不应和 post-break trigger 混成同层。如果问“为什么这题比继续做旧派生假设更值”:因为它是 fresh repo-based,且直接修正我们三线都在反复遇到的一个执行位错——预算层 vs 触发层混用。
reports/artifacts/quant_digests/vajra_controlled_pullback_proxy/candidate_events.csvreports/artifacts/quant_digests/vajra_controlled_pullback_proxy/trade_log.csvreports/artifacts/quant_digests/vajra_controlled_pullback_proxy/asset_summary.csvreports/artifacts/quant_digests/vajra_controlled_pullback_proxy/overall_summary.csvreports/artifacts/quant_digests/vajra_controlled_pullback_proxy/depth_threshold_sweep.csvreports/artifacts/quant_digests/vajra_controlled_pullback_proxy/summary_snapshot.json下一轮不要再把 depth<=x% 接在 trigger 后面,改成 pre-armed 状态机:
armed_pullback(过去 N 根内出现回踩,且 depth<=x%、nearEMA 成立);EMA/PSAR continuation trigger 才可放行;x 第一轮固定只测 0.75% / 1.0% / 1.25%,避免继续用过松 1.5%。先看 4 个指标:
post_cost_expectancytrade_count_retentionflip_to_fail_3bars_ratemedian_fwd3_retBTC 1H,不是 15m crypto 通用模板;emaAngle 在 Pine 里用原始价差换算角度,跨资产可移植性弱,本轮未把它当硬门;vajra_strategy.pinepullbackLookback=5、maxPullbackPct=1.5、nearEMA、volume > 1.2*SMA20、ADX>=25