源文件:research/quant_digests/2026-04-04_1920_dual-momentum-breakout-expansion-alpha.md
README.md + src/strategies/trend_long.py + src/portfolio.py + main.py)+ Binance Spot 公共 1h/15m 最小 portability probe这次看的主源不是论文,而是一个 2026 年新 GitHub 仓库:azuzxx9-jpg/quant-trade-system-v1。它不是单一指标玩具,而是一个完整的多币组合研究壳;最值得单独拎出来的,不是整个系统,而是其中的 trend_long sleeve:20-bar breakout + 20/60-bar dual momentum + ATR expansion + bull-regime gate,再接 next-open 入场、ATR/结构止损、partial take-profit、trailing stop、time stop、相关性上限、组合风险预算。
对我们当前 desk,这条线的价值不在于“又一个 breakout 变体”,而在于它把 raw alpha、本地执行、组合约束 串成了完整策略壳,正好能补到我们当前主线里“趋势 raw alpha 有不少,但 portfolio 化 / cross-sectional rank / correlation gate 还可以继续拆”的空缺。
src/strategies/trend_long.py)仓库里 trend_long 的核心触发非常清楚:
close > SMA20 > SMA50 且 ADX >= 18ATR/close 至少在过去 120 根里的 55% 分位以上close 突破前 20 根最高价也就是说,这不是“单纯新高就追”,而是:
这条线的 base alpha 可以直接说清:
> 正在加速的趋势币,在新高突破后更容易继续走,而不是立刻回落。
这满足 raw alpha 的定义,不只是 filter 或 overlay。
src/portfolio.py)这个 repo 有一整套可直接落地的策略壳:
open,加 5 bps 入场滑点min(SMA20 - 1.1 * ATR, signal-bar low)+2.2R 先平一半max_price - 5 * ATR96 根 barfee_rate = 4 bpsmax_portfolio_risk、max_gross_exposure、每个 sleeve 的 risk/notional budget、cross-symbol correlation threshold、score-based sizing、cooldown、可选加仓(pyramid)所以这不是“只有 entry 点子”;它已经是一个能直接转成实盘 research spec 的完整壳。
结合当前项目文档,这条线有几个明确对接点:
4h,但逻辑完全基于公开 OHLCV 与常规指标,迁移门槛很低。1h/15m 怎么样我用 Binance Spot 公共 OHLCV 做了一个最小便携性快检,窗口为 2025-01-01 ~ 2026-04-04,标的为 BTCUSDT / ETHUSDT / BNBUSDT / SOLUSDT。
为了不把 repo 的整套组合优化和相关性过滤混在一起,我先做了一个更保守但更透明的 isolated sleeve probe:
trend_long 这条 raw alpha;10 bps fee + 10 bps slippage? 不对,按这次简化实现是 round-trip 约 15 bps 级别 的交易摩擦处理;所以这组数字更像是“alpha 核心本体能不能站住”,而不是“完整组合最终成绩”。
1h 快检结果26 笔,累计约 +6.63%,平均每笔 +0.38%,PF 1.2210 笔,累计约 -2.89%,PF 0.8224 笔,累计约 -0.64%,PF 1.09(接近打平)18 笔,累计约 -14.12%,PF 0.5915m 快检结果8 笔,累计约 +1.88%,胜率 75.0%,PF 1.6340 笔,累计约 -3.02%,PF 0.9849 笔,累计约 -5.44%,PF 0.9420 笔,累计约 -14.25%,PF 0.43我对这组结果的解读是:
symbol_score 排名、相关性阈值、组合预算;结果恰好说明:如果把这类趋势 breakout 规则无脑铺到所有币,容易被 BNB/SOL 之类名字拖垮。1h 上比在 15m 上更像能站住。 这说明它更适合作为 1h regime + 15m execution 的上层 alpha,而不是直接当成宽 universe 的 15m 裸跑主策略。1h ETH 和 15m BTC 两段,不像已经彻底死掉,更像阈值和 ranking 还没对齐。如果只问一句:这篇东西最值得抄什么?
我的答案不是“抄它的回测收益”,而是下面三层:
把趋势延续写成:
breakout 负责确认价格已经脱离前高;20/60-bar momentum 负责确认不是随机刺穿;ATR expansion 负责确认不是低波动假动作。也就是把我们常见的“突破”改写成突破 + acceleration + expansion 三联条件。
这个 repo 一个很实用的地方是承认:
> 趋势 alpha 不是只看 entry 对不对,还要看同一时间到底让哪些币进组合。
所以它加了:
symbol_score 排名这对 short-cycle desk 很重要,因为趋势腿经常不是 单笔 亏,而是 一起亏。
对 5m/15m 最现实的迁移,不是直接把所有参数照抄,而是:
1h 的 trend sleeve 当 上层 raw alpha / regime gate;15m 做更细的 trigger 和 execution;BTC/ETH 这类更干净的 universe。目标:知道 repo 的 edge 到底来自 raw alpha,还是来自 组合排名与风控壳。
1h 与 15mBTC/ETH/SOL/BNB/XRP/AVAX,先复刻 repo universetrend_long + portfolio.pyfee/slippage 敏感度(6/10/15 bps)如果完整壳显著优于 isolated sleeve,就说明这条线真正值钱的是 portfolio wrapper,不是裸 breakout 本体。
目标:把它变成更贴近 15m 的 desk alpha。
1h bull regime + vol expansion15m 20-bar breakout,但只在 1h regime 为真时允许入场BTC/ETH3% / 5% 改成 rolling percentile 或 ATR-normalized thresholdpartial @ 2.2R + trailing stop,对比 full trailing only目标:解决这次快检里最明显的问题——币种选择比信号本身还重要。
trend_strength20/60-bar momentumATR expansion如果 top-N 明显改善,那它就很适合作为 desk 的 趋势篮子 sleeve,而不是单币固定模板。
这条 repo 里的 trend_long,我会把它放进研究池,但定位得很清楚:
如果只留一句话给后续复现:
> 先别把它当“又一个突破策略”;更该把它当“20/60-bar 加速确认 + ATR 扩张 + portfolio ranking/correlation 壳”的趋势组件。
azuzxx9-jpgquant-trade-system-v1trend_long:https://raw.githubusercontent.com/azuzxx9-jpg/quant-trade-system-v1/main/src/strategies/trend_long.pyportfolio shell:https://raw.githubusercontent.com/azuzxx9-jpg/quant-trade-system-v1/main/src/portfolio.pymain config:https://raw.githubusercontent.com/azuzxx9-jpg/quant-trade-system-v1/main/main.pyBTCUSDT/ETHUSDT/BNBUSDT/SOLUSDT,1h / 15m,next-open entry,显式 fees/slippage,独立 sleeve backtest