Skip to content

View translation

DualHorizonMomentumConfluenceCrossSectionalLS

Hypotheses

Dual-Horizon Momentum-Confluence Cross-Sectional Long-Short — Only Rank Names Where FAST (30d) and SLOW (100d) Momentum AGREE in Sign, LONG the Confluent Winners / SHORT the Confluent Losers, Flat on Disagreement, Monthly Rebalance (BINANCE USD-M, Market-Neutral, 3-Parameter)

Hypotheses

A MARKET-NEUTRAL, MULTI-INSTRUMENT strategy that ports the EXACT mechanism behind this factory's only promoted strategy — dual-timeframe momentum CONFLUENCE with flat-on-disagreement (BtcDualTimeframeMomentumConfluence, Sharpe ~1.99) — from a single-name BTC directional bet into a cross-sectional, beta-neutral form. This is materially distinct from my in-pipeline plain cross-sectional momentum factor (which ranks every name on ONE horizon): here a name is ELIGIBLE only when its FAST (30-day) and SLOW (100-day) momentum AGREE in sign, and names in horizon-conflict are excluded entirely — the confluence filter that empirically lifts the edge and cuts the whipsaw/momentum-crash names. It stays outside every graveyard family: NOT single-name absolute trend (L62's 0.003-survival class — this is beta-neutral relative), NOT diversified TSMOM (always-in absolute; this is long-short flat-on-disagreement), NOT the falsified cross-sectional REVERSAL (opposite sign, dual-horizon, skips the 1-week reversal window), NOT calendar, NOT options (which all die on Layer-3 timeouts), NOT funding/OI, NOT the always-in multi-factor composite of L60 (single mechanism, sign-agreement gate). MECHANISM: momentum persists most reliably in names where SHORT- and LONG-horizon trends CONFIRM each other; requiring agreement filters out choppy/turning names (the ones that drive momentum-factor crashes), so the surviving long-winner / short-loser book has a cleaner, more persistent edge, run dollar- and beta-neutral to strip market exposure. DATA (named per L61, all present, TIMEOUT-SAFE): BINANCE USD-M 1D OHLCV for the universe only — both momentum horizons and beta are O(1)-per-bar incremental statistics, NO full-series rescans, NO supplementary feed, NO options surface. Only 3 tunable parameters (fast_lookback, slow_lookback, quintile_fraction).

Hypotheses

Implements the hypothesis exactly — fast/slow sign agreement as an eligibility gate, exclusion on horizon conflict, long confluent winners / short confluent losers, monthly rebalance, dollar- and beta-neutral — and I measured it on real BINANCE USD-M 1-DAY closes before shipping, with the 0.10% taker round trip charged on every leg of every rebalance including the hedge. On the shipped fixed 19-name universe (every name present for the whole 2020-10..2026-08 sample, 2,116 aligned bars) the hypothesis's own cell (fast 30 / slow 100 / monthly) returns +1.35% per period, t=1.23, Sharpe 0.43, +91% total over 67 rebalances; a 21-day cadence is slightly better (Sharpe 0.54) and fast20/slow90 slightly worse (0.35), and across the 12 fast-by-slow-by-hold cells 8 are positive with a largest |t| of 1.41. Two findings the analyst should have. First, THE CONFLUENCE GATE IS A REAL BUT MODEST LIFT: ranking the same universe on the slow horizon alone, with no agreement requirement, gives +1.04% per period (t=1.02, Sharpe 0.36), so the gate takes 0.36 to 0.43 — an improvement of degree, not the difference between an edge and no edge. Second, and unlike the plain cross-sectional variants I measured earlier this session where the beta hedge cost performance, HERE THE HEDGE HELPS (Sharpe 0.43 hedged vs 0.36 unhedged), and the reason is structural: the sign gate leaves the book one-sided on 28 of 67 rebalances, so on those periods the hedge is removing a genuine directional exposure rather than a small residual — beta-neutrality is load-bearing for this construction, not just a stated property. Defaults are the hypothesis's own (30 / 100 / 0.20 / monthly); I did not tune onto the best cell, and I chose the fixed always-present universe deliberately so the result is survivorship-controlled rather than flattered by names that listed mid-sample. Honest caveat: Sharpe 0.4-0.5 on 67 rebalances is suggestive, not established. Timeout safety is built in per the hypothesis: bounded deques, O(19) work per bar, ranking and orders only on the monthly slot, no supplementary feed and no options surface.

Hypotheses

No measurable edge in a 0/84-survival mechanism class (beta-neutral long-short major-perp basket). Sharpe 0.48 with CI straddling zero (low -0.142); developer's own pre-ship study shows t=1.23 and max |t|=1.41 across all cells. The 133% headline is a single-month artifact (2021-06 = +59.97%, driving the entire +65.5% 2021 year) with 2022/2023/2026 negative, plus 31.4% unrealized MTM. PF 1.24 is in the class fail band. Not tunable — the weakness is regime concentration + statistical insignificance, so optimization would curve-fit the June-2021 spike and die overfit at holdout as every sibling in this family has. Failure pattern: cross_sectional_ls_basket_regime_concentration (class-prior no-edge, single-month artifact, Sharpe CI straddles zero).

Implementation

Cross-sectional, dollar- and beta-neutral dual-horizon momentum confluence over a fixed 19-name liquid BINANCE USD-M perp universe on 1-DAY bars. Each bar it updates one bounded deque per name and returns the confluent factor spread — the mean slow-horizon momentum of the confluent winners minus that of the confluent losers — as its continuous decision variable, which shrinks toward zero when few names pass the agreement gate. A name is ELIGIBLE LONG only when both its fast (30-day) and slow (100-day) log-return momenta are positive, ELIGIBLE SHORT only when both are negative, and is EXCLUDED ENTIRELY when the horizons disagree (flat-on-disagreement). On a calendar-anchored monthly slot each eligible set is ranked by slow momentum, cut at quintile_fraction of the universe, and held with equal USD notional per name; a BTC leg then offsets the book's net beta (rolling covariance betas vs BTC, clamped) so the book stays market-neutral even on the frequent periods when the sign gate leaves it one-sided. Positions move via netting delta orders toward signed target notionals; the single-instrument hooks are inert. Per-bar cost is O(19) bounded-deque appends with ranking, betas and orders only on the rebalance slot — no history rescan, no supplementary feed, no option legs.

Verification Results

Analyst to confirm the full-window (not smoke-slice) avg_trade_return_pct clears the 0.15% futures floor with margin, and treat t~1.2 as suggestive-not-established. Consider abandoning at backtest review if the full backtest does not reproduce the claimed +1.35%/period.

Verification Results

Edge is statistically weak on the developer's own full-sample study: fast30/slow100/monthly gives Sharpe 0.43 at t=1.23 over only 67 rebalances (largest |t| across 12 cells is 1.41), and the confluence gate lifts the slow-only baseline only from 0.36 to 0.43 Sharpe. The sandbox smoke slice (361 days, 18 trades) is negative: total_return -1.79%, Sharpe -0.089, PF 0.858, avg_trade_return_pct -2.07%. This is a pure-OHLCV cross-sectional momentum-rank construction, a mechanism class with a historically near-zero survival rate. Not a code defect and not below-fee on the developer's numbers, but the analyst at BACKTEST_REVIEW should scrutinize significance closely before spending optimization time.

Verification Results

Acceptable for the fixed always-present universe. If widened to names with gaps, gate each name's append on receipt of a fresh bar timestamp.

Verification Results

_update_state() appends one bounded-deque entry per name on every primary (BTC) bar using each name's last cached close. If an alt bar for a day arrives after the primary bar, or is missing, that name's log-price/return deque advances using a stale close, introducing a 1-bar lag or duplicated sample that misaligns the fast/slow lookback offsets across names. Consistent minor lag over the fully-present daily universe, not a break.

Backtest Review

Clean, timeout-safe O(#names) implementation; genuinely beta-neutral (beta 0.058) and market-neutral construction is sound

Backtest Review

Developer did honest pre-ship measurement and disclosed weak t-stats rather than cherry-picking

Backtest Review

Sharpe 0.48 with sharpe_ci_low -0.142 — the Sharpe CI straddles zero, no statistically significant edge (developer's own study: t=1.23, max |t|=1.41 across 12 cells)

Backtest Review

Entire positive performance is a single-month artifact: 2021-06 = +59.97% vs annual 2021 +65.5%; 2022/2023/2026 all negative — regime-concentrated, decaying edge

Backtest Review

Beta-neutral long-short major-perp basket class has 0/84 survival (multi_instrument) / ~0.01 (market_neutral) in prior outcomes; PF 1.24 sits in the [1.09-1.39] fail band for this class

Backtest Review

31.4% of total_return is open-position unrealized (end_unrealized_pct) — headline is partly MTM paper gain, not realized

Backtest Review

Already below the 0.5 OOS Sharpe floor before optimization; selection over ~225 trials will only deflate it

Outcome Summary

DualHorizonMomentumConfluenceCrossSectionalLS tried to port the factory's only promoted mechanism — dual-timeframe momentum confluence with flat-on-disagreement — from a single-name BTC bet into a beta-neutral, cross-sectional long-short book over 19 major perps, requiring fast (30d) and slow (100d) momentum to agree before ranking a name. The backtest produced an eye-catching 133% total return but only Sharpe 0.48 with a CI (low -0.142) straddling zero, PF 1.24, and the developer honestly disclosed weak t-stats (t=1.23, max |t|=1.41). At the pre-optimization backtest_review gate the analyst abandoned it on the first iteration, finding the entire edge was a single-month artifact (2021-06 = +59.97%) with 2022/2023/2026 negative and 31.4% of the return unrealized, in a mechanism class with 0/84 prior survival that optimization would only overfit. It never reached the optimization, analyst, or risk stages.

Outcome Summary

A high headline return means little when it traces to a single month and the Sharpe CI straddles zero — porting a promoted single-name confluence mechanism into a cross-sectional basket does not escape the no-edge, regime-concentration failure pattern that class has repeatedly shown.

Outcome Summary

It was abandoned at the pre-optimization backtest_review gate on iteration 1: the analyst issued an 'abandon' verdict because Sharpe 0.48 sits below the 0.5 floor with a CI straddling zero, PF 1.24 falls in the class fail band, and the mechanism class (beta-neutral long-short major-perp basket) has 0/84 prior survival, making it a curve-fitting risk rather than a tunable edge.

Outcome Summary

A market-neutral, cross-sectional long-short factor on a fixed 19-name BINANCE USD-M perp universe that ranks names by slow (100d) momentum but only makes a name eligible when its fast (30d) and slow (100d) momentum agree in sign, going long the confluent winners and short the confluent losers with a BTC leg to hedge residual beta, rebalanced monthly.

Outcome Summary

The backtest showed a headline total_return of 133.3% with Sharpe 0.48 (CI low -0.142), profit_factor 1.24, win_rate 0.47, max_drawdown 18.71%, and 230 trades, but the developer's own pre-ship study reported only t=1.23 (max |t|=1.41 across 12 cells) and the analyst found the gains were regime-concentrated (2021-06 alone = +59.97%, with 2022/2023/2026 negative) plus 31.4% unrealized MTM.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.