Strategies
Dual-Timeframe Momentum Confluence on Six Untested OKX USDT Swaps (LTC/BCH/ETC/FIL/XLM/UNI): long-short per name when the 4H and 1D momentum signs agree, flat on disagreement, intrabar 3-ATR trailing stop, vol-scaled equal-risk panel (OKX 4H + 1D)
Outcome: Abandoned
OkxSixNameDualTfMomentumConfluencePanelLS
Outcome Summary
This hypothesis tried the factory's most often promoted directional idea, 4H/1D momentum confluence with a flat state when the timeframes disagree, as a fresh long-short test on six OKX swaps that had never had a confluence test. The unweighted average trade cleared the 0.15% floor, but each dollar traded earned only about 0.055%, and commissions were larger than the net profit. One XLM trade accounted for all of the gains, the drawdown was about 64-67%, and three of the six names lost money. The analyst abandoned it at the backtest review after one iteration, and it never reached optimization.
Hypothesis
Bucket choice: OKX (3.7%, below its 5% target), long-short (24.4% of the corpus), multi-instrument. BINANCE (49%) and BTC were avoided. The mechanism is the factory's best-supported directional family (L219), tested on six names that have never had it. A fixed-rule after-cost measurement was done before proposing, as L219 and L222 ask: 5 of 6 names were positive, about 0.3% net average per trade on the bare rule. Predictions are deliberately modest (OOS Sharpe 0.7) because the short arm is weak. 2,400 trades over about 6 years and 6 names, at roughly 400 per name after the trail and deadband, gives many distinct entry dates, not one basket date counted six times.
negative_expectancy. This verdict covers this frozen 4H/1D momentum-confluence panel on six OKX swaps with a 3-ATR trail. The 0.19% unweighted average trade clears the 0.15% floor, but each dollar traded earned only 0.055%: +$38.5k net on about $70M of notional, after $69.9k of commissions. PF is 1.03 and Sharpe 0.38. The single XLM long of Nov 2024 (+$50.2k) is more than the whole profit; without it the book loses $11.7k. Drawdown is 64.4%, more than twice the pre-registered 30% limit. Only 2021 and 2024 were positive years. LTC, UNI and BCH lose on both the long and short arms, and the short arm loses on four of six names. QA's concern is borne out: 35% of trades are immediate same-side re-entries after an exit. Optimization cannot fix this. The tunables (atr_mult and the two lookbacks) would only refit which few trend bursts get caught. Dropping the losing names or the short arm after seeing these results would be selection on the result, and either change would be a new hypothesis. ETC and FIL are profitable on both sides, but that is two names in one sample.
Implementation
Verification Results
In _refresh_signal, build the daily view from [(t, c) for t, c in daily if t <= ts] before choosing latest/ref, matching the filter _annual_vol already uses.
Daily-leg point-in-time protection relies on chronological delivery, not on an explicit check. _refresh_signal uses daily[-1] (and daily[-need]) without asserting daily_ts <= decision ts; only _annual_vol filters t < ts. The 4H legs are strictly guarded (leg bar ts must equal the primary ts), and in normal chronological replay a 1-DAY bar with a later close cannot have arrived. If the alignment barrier is ever released late (an extra leg has a 4H gap and the barrier waits for that leg's next bar), a daily bar stamped after the decision could be read. Lesson L147 asks for an explicit guard.
None required for verification.
Restart persistence: leg_book (stop_level, best_close) is persisted, but the resting reduce-only stop is found again only through cache.orders_open. After a paper restart without the order in cache, _manage_open_leg re-places a stop at the persisted level, which is the intended behaviour. Noted only; the backtest never restarts.
Keep warmup_bars >= 6 x (max(mom_1d_bars_high, vol_lookback_days) + 2).
min_bars_required is overridden on purpose: 6 x (max(mom_1d, vol_lookback) + 2) = 192 primary 4H bars at defaults, up to 6 x 47 = 282 at mom_1d_bars = 45. That is inside the plan's warmup_bars of 300, so it is consistent. Flagged only because Layer 1 raised base_shadow.
The sandbox booked 8,010 trades over about 2,400 days on 6 legs, roughly 1,300 per name. The pre-registration expected about 400 per name after the trail and deadband, and the bare rule produced 650-790. The trail-then-re-enter loop is the likely cause: after a stop-out the leg re-enters on the next 4H close while the confluence holds, which adds round trips. Combined with the weak short arm (about -0.4% to +0.3% net in the pre-study) and LTC being negative on the bare rule, the per-trade average may sit near the 0.15% floor. At the backtest review, check avg_trade_return_pct per leg and per side, and the share of trades that are immediate re-entries after a stop.
Backtest Review
- Sharpe
- 0.24
- Total return
- 5.01%
- Max drawdown
- 66.84%
- Trades
- 4005
- Win rate
- 34.2%
- Profit factor
- 1.00
The code implements the stated rule: both directions are traded (1512 long, 1665 short), each leg sits at about 0.15x equity of vol-scaled notional, and the 3-ATR trailing stop and the flat-on-disagreement exits fire as written.
ETC (+$75.6k, 0.65% notional-weighted) and FIL (+$75.4k, 0.70%) make money on both sides.
The sample is large: 3,177 closed trades over 1,728 days.
Net expectancy is too thin. The unweighted average of 0.19% clears the 0.15% OKX floor, but per dollar traded the return is only 0.055% (+$38.5k on about $70M notional), with PF 1.03 and Sharpe 0.38. Commissions came to $69.9k, more than the whole net profit.
One trade carries the result. Without the single XLM long of Nov 2024 (+$50.2k), net PnL is -$11.7k. Annual returns are 2020 -5%, 2021 +96%, 2022 -16%, 2023 -19%, 2024 +39%, 2025 -22%.
Max drawdown is 64.4%, against the pre-registered 30% constraint. Calmar is 0.11 and the longest drawdown lasted 1,445 days.
Three of six names lose money: LTC -$60.8k, UNI -$39.3k, BCH -$19.8k. The short arm loses on BCH, LTC, UNI and XLM, as the pre-study predicted.
QA's concern is borne out: 35% of trades re-enter the same side on the same name within one 4H bar of the previous exit, so stop-out and re-entry churn adds round trips.
Iteration History
Daily-leg point-in-time protection relies on chronological delivery, not on an explicit check. _refresh_signal uses daily[-1] (and daily[-need]) without asserting daily_ts <= decision ts; only _annual_vol filters t < ts. The 4H legs are strictly guarded (leg bar ts must equal the primary ts), and in normal chronological replay a 1-DAY bar with a later close cannot have arrived. If the alignment barrier is ever released late (an extra leg has a 4H gap and the barrier waits for that leg's next bar), a daily bar stamped after the decision could be read. Lesson asks for an explicit guard.
Outcome Summary
Momentum confluence that was promoted on majors did not carry over to this six-name OKX panel: the edge per dollar traded sat below costs, profit depended on a single trend outlier, and stop-out/re-entry churn (35% immediate same-side re-entries) added round trips, so check notional-weighted returns and single-trade concentration before relying on an unweighted average trade.
The backtest review gate returned 'abandon' for negative_expectancy: one XLM long from Nov 2024 (+$50.2k) was more than the whole profit, drawdown was over twice the pre-registered 30% limit, LTC, UNI and BCH lost money, and the short arm lost on four of six names. Optimization was judged unable to fix this, so optimization and the later stages never ran.
Trade six OKX USDT swaps (LTC, BCH, ETC, FIL, XLM, UNI) independently, going long or short only when 4H and 1D momentum signs agree and staying flat when they disagree, with a 3-ATR intrabar trailing stop and vol-scaled equal-risk sizing.
The attached backtest (Nov 2020 to Oct 2026) returned 5.01% total with Sharpe 0.24, profit factor 1.003, 4,005 trades, an average trade of 0.116% of notional and a 66.8% max drawdown; the backtest review cited 3,177 trades, a 0.19% unweighted average trade but only 0.055% per dollar traded, PF 1.03, Sharpe 0.38 and a 64.4% drawdown, with commissions ($69.9k) larger than the net profit ($38.5k).
Backtest and paper results are hypothetical. Trading involves risk of loss.