BnbDualTimeframeTrendConfluenceLS
Hypotheses
BNB Dual-Timeframe Trend Confluence, Long-Short (BNBUSDT.BINANCE USD-M, 8H Primary + 1D Confirm, Flat on Disagreement, Volatility-Scaled Size, ATR Trailing Exit, 3-Parameter)
Hypotheses
Implements exactly the stated mechanism: 8H primary trend read confirmed by a 1D trend read, flat on disagreement, volatility-scaled sizing, ATR trailing exit, three tunables (ema_ratio, daily_lookback, trail_atr_mult) with declared _param_bounds matching the in-code clamps. The signal is returned continuously in natural units (ATR-normalised EMA spread, roughly +-5) and thresholded at zero in should_enter, so it never goes flat/constant. Venue is Binance USD-M futures because the strategy goes short and uses 2x leverage; leverage is read in position_size via the max-notional cap, which binds in low-volatility regimes where the risk-based quantity would otherwise exceed equity notional. The daily leg is the SAME instrument at a slower timeframe, so it is exempt from the same-timeframe alignment barrier and cannot stall the primary path, and extra_instruments carries BNBUSDT.BINANCE positionally paired with the daily bar type. Entry frequency is a simple two-condition agreement that flips several times a year on 8H BNB data, well clear of the zero-trade risk; per-bar work is O(1) incremental (EMAs, bounded TR deque) so the 300s smoke budget is not at risk. One caveat, per instructions to state it: this dual-timeframe confluence recipe has repeatedly failed to generalise off BTC in past ports, so I would expect the walk-forward gate to be the binding test here.
Hypotheses
Overfit / no-generalization death (NOT fee-edge — per-trade return 1.36% clears the floor). Two unwaivable HARD gates fail: holdout Sharpe -0.993 <= 0 on the unseen last-year window (52 trades — a NEGATIVE forward edge, not a marginal one), and PBO 0.6376 > 0.5 (selection more likely than not overfitting; worst window 0.79). Robustness confirms the selected Sharpe is best-of-N noise: deflated_sharpe 0.708 << 0.95, is_significant=false, and it does not survive programme-level FDR (keeps 3 of 239, candidate_p 0.2917). The walk-forward shows the classic decay (avg IS 1.22 -> avg OOS 0.672, one OOS window -0.05). Per the overfit-vs-dead-premise rule, high-IS/OOS-collapse-with-negative-holdout is ABANDON not revise: the identical BNB dual-timeframe momentum-confluence long-short mechanism has ALREADY died overfit twice on this exact BNBUSDT instrument (siblings Sharpe 0.97/PF 1.82 overfit, 0.38/PF 1.19 overfit), and this variant is below the only tier that has ever survived this class (ADA dual-TF: Sharpe 1.6/PF 2.19). Sensitivity is flat with no cliff and no untried robust region, so iteration (attempt 1 of 2) has nowhere better to tune toward — re-pointing the same recipe just overfits again. The oos_vault is itself flagged underpowered (~63 expected trades vs 100 needed), so the mechanism is too slow to validate on available history. Failure pattern: overfit / no-generalization (BNB dual-timeframe trend-confluence clone).
Implementation
BNBUSDT Binance USD-M perpetual dual-timeframe trend confluence, long and short. The fast leg on 8-HOUR bars computes a volatility-scaled EMA spread ((EMA_fast - EMA_slow) / ATR, continuous every bar); the slow leg on 1-DAY bars computes the sign of the daily_lookback-day return. A position is taken only when the two agree (both up -> LONG, both down -> SHORT); on any disagreement the strategy stays flat. Exits fire on an ATR trailing stop (give-back of trail_atr_mult x entry ATR from the best close since entry), a daily trend flip against the position, or an 8H spread flip against the position. Size is risk-first (equity * risk_pct / trailing-stop distance) so each trade risks ~1.5% of equity regardless of regime, capped at max_notional_frac * equity * leverage.
Verification Results
On restart, reconstruct side from the actual open position in cache (cache.positions_open) rather than from the signal sign.
Verification Results
should_exit() infers self._side from the sign of the live signal when state is lost (restart). This is a benign fallback in backtest (state never lost mid-run) but on a live crash-restart it could mislabel the open position's direction and mis-fire the trailing/regime exits. Advisory only.
Verification Results
The developer's own note and the factory's recent history both flag this exact mechanism as overfit-prone: dual/multi-timeframe momentum-confluence has repeatedly failed to generalise off BTC (ETH, XRP, AAVE, LINK, DOT all abandoned as overfit or fee_edge). The sandbox win_rate is low (34.7%, short leg only 29.9%) and the profit is carried by a few large wins (avg_win 2640 vs avg_loss 1007, largest_win 17.6k, kurtosis 6.4), with the sandbox Sharpe CI [-0.12, 1.42] straddling zero. Not a blocker — the code is a faithful implementation — but the walk-forward/OOS generalisation gate is the binding test here, so treat the headline metrics with caution at backtest review.
Backtest Review
avg_trade_return_pct 0.952% clears the Binance USD-M 0.15% fee floor by a wide margin; commission is only 3.74% of gross, so this is a gross-positive edge, not fee-fragility.
Backtest Review
Reliable sample: 331 trades over 6.3 years, profit_factor 1.373, max_drawdown a modest 13.9%, recovery_factor 5.8.
Backtest Review
Trades faithfully implement the hypothesis: balanced 184 long / 147 short confluence book, low win rate (33%) offset by large winners (avg_win 2747 vs avg_loss 982) — the correct signature for a trend-confluence system, not a mechanism mismatch.
Backtest Review
Positive across all vol regimes (calm 1.05 / normal 0.68 / stressed +0.37) and across most stress windows — does not collapse in the stressed tercile.
Backtest Review
Base Sharpe 0.666 is modest and the Sharpe CI [-0.12, 1.39] straddles zero; win rate 33% (short leg only 28%) with fat right-tail kurtosis 6.4 means the result leans on a few large wins.
Backtest Review
Class caution: single-name dual-TF momentum-confluence off BTC has generalised poorly (ETH/XRP/AAVE clones abandoned overfit), and QA flags this exact mechanism as overfit-prone. The walk-forward/OOS generalisation gate is the binding test.
Backtest Review
2026 YTD is negative (-1.44%); recent rolling Sharpe was deeply negative through 2025 before recovering.
Analysis
avg_trade_return_pct 1.36% clears the Binance USD-M 0.15% fee floor by ~9x; commission only 3.28% of gross, so this is NOT a fee-edge death — the edge is real gross-of-costs in-sample.
Analysis
Sensitivity is clean: no cliff parameters (cliff_count 0), smooth surface, walk-forward is_overfitted=false, modest optimized drawdown 10.5%.
Analysis
HARD gate — holdout failed: Sharpe -0.993 on 52 trades over the unseen last-year window. The edge produced a NEGATIVE forward result, not merely a degraded one (consistent_with_oos is true only because the WF-OOS estimate is itself noisy).
Analysis
HARD gate — PBO 0.6376 > 0.5: the parameter selection is more likely than not overfitting (worst window PBO 0.79).
Analysis
Selected Sharpe indistinguishable from best-of-N noise: deflated_sharpe 0.708 < 0.95, is_significant=false, and it does not survive programme-level FDR (Benjamini-Hochberg q=0.10 keeps 3 of 239; candidate_p 0.2917).
Analysis
IS->OOS decay confirms overfit: avg IS Sharpe 1.22 -> avg OOS 0.672, with one OOS window at -0.05.
Analysis
oos_vault flagged UNDERPOWERED (~63 trades expected vs 100 needed) — this mechanism is too slow to validate its own out-of-sample on available history.
Analysis
The identical BNB dual-timeframe momentum-confluence LS mechanism has already been abandoned OVERFIT twice on this same instrument (siblings Sharpe 0.97/PF 1.82 and 0.38/PF 1.19); this variant sits below the only surviving tier (ADA: Sharpe 1.6/PF 2.19).
Analysis
Benjamini-Hochberg at q=0.10 over 239 programme candidates keeps 3. A candidate that does not survive here is not distinguishable from the programme's own noise, however good its individual statistics look.
Outcome Summary
BnbDualTimeframeTrendConfluenceLS-7e9a2548e6
Outcome Summary
A clean in-sample edge with high PBO and a negative holdout is a no-generalization death — and a mechanism already dead-overfit twice on the same instrument, too slow to validate its own OOS, has nowhere to tune toward.
Outcome Summary
Post-optimization analyst abandon verdict: two HARD gates failed — holdout Sharpe -0.99 (≤0) and PBO 0.6376 (>0.5) — with robustness confirming the Sharpe was best-of-N noise (deflated 0.708 < 0.95, IS→OOS decay 1.22→0.672).
Outcome Summary
A BNBUSDT USD-M long-short trend-confluence system that only takes a position when an 8H volatility-scaled EMA spread and a 1D trend direction agree, sizing risk-first and exiting on an ATR trailing stop or a trend flip.
Outcome Summary
Initial backtest returned 86.1% over 6.3 years across 331 trades with Sharpe 0.67, PF 1.37, 33% win rate and 13.9% max drawdown; optimization lifted in-sample Sharpe to 0.89 (PF 1.57, avg trade return 1.36% of notional), but the held-out last-year window produced a negative Sharpe of -0.99 on 52 trades.
Backtest and paper results are hypothetical. Trading involves risk of loss.