Skip to content

View translation

AtomBtcMacroConfluenceTrendLS

Hypotheses

Cross-Asset Beta-Confluence Directional Trend, Long-Short (ATOMUSDT.BINANCE USD-M 4H primary, GATED BY THE BTCUSDT DAILY MACRO TREND rather than ATOM's own slow timeframe) — trade a high-beta L1 alt's 4H momentum ONLY when it agrees with the market-leader's macro direction, flat on disagreement, ATR-trailing exit, 3-parameter

Hypotheses

A LONG-SHORT, two-instrument, pure-OHLCV directional strategy. PRIMARY = ATOMUSDT.BINANCE USD-M perpetual on 4H bars (the instrument actually traded). CONFIRM = BTCUSDT.BINANCE USD-M 1D trend (signal-only, never traded). Not a single-instrument dual-TF reskin of the deployed BTC/ADA/ETH confluence winners and not a same-instrument regime/efficiency/volatility gate (dead per L92): the confirming filter is a DIFFERENT ASSET. High-beta L1 alts inherit BTC's macro direction with a lag; an alt's own 4H momentum mixes BTC-led beta (trends, clears fees) with idiosyncratic chop (mean-reverts inside fees, why naked alt momentum fee-dies). Trading ATOM's 4H momentum ONLY when it agrees in sign with BTC's daily trend isolates the beta-led leg and discards the chop. ATOM chosen: liquid ~5yr L1 major, not in the deployed book or the failed-clone list. Fills pairs-scope (13.5%) and long-short (14.1%) under-represented buckets. 3 params: ATOM 4H EMA ratio + BTC daily lookback; ATR trailing exit.

Hypotheses

Implements the hypothesis literally: ATOM is the only traded instrument (4H primary), BTC daily is a cross-asset confirming filter carried as extra_instruments/extra_bar_types and consumed in on_extra_bar, never traded. The gate isolates ATOM's BTC-led beta leg (which trends far enough to clear the ~0.10% round-trip taker cost) and discards its idiosyncratic chop, which mean-reverts inside fees. Exactly 3 tunables as specified (ema_ratio, btc_lookback, trail_atr_mult), each clamped with matching _param_bounds so the optimizer never tests values the code silently rewrites. Venue stays BINANCE USD-M because the strategy takes shorts and uses leverage>1, which is genuinely consumed in position_size via self.config.leverage. The BTC leg is a slower timeframe than the primary, so the base template's same-timeframe alignment barrier does not apply and 4H processing never stalls waiting on it; on_extra_bar dedupes by timestamp because the macro lookback indexes history positionally. Entry frequency is high (sign agreement fires on roughly half of bars once both legs are warm, ~19 days), so a zero-trade sandbox is not a risk. All state is incremental (EMAs, bounded ATR deque, bounded BTC close deque), so per-bar cost is O(1) and the 300s smoke limit is comfortable. Both catalog paths (ATOMUSDT.BINANCE-4-HOUR, BTCUSDT.BINANCE-1-DAY) were verified present before submitting.

Hypotheses

Marginal/negative net expectancy on a reliable 410-trade / 6.6-year sample: profit_factor 1.0086 (fee-drag band [0.85,1.10]), Sharpe 0.125 with CI [-0.67, 0.92] straddling zero, recovery_factor 0.08. The nominal avg_trade_return_pct 0.354% is illusory net of costs — impact_cost_pct is 84.6% of gross PnL and capacity_usd is only $139k, so on thin ATOM (~0.5x equity notional/trade) market impact devours essentially the entire edge (QA's 39% sandbox impact concern borne out and worse on full history). This is not optimizable: a PF-1.0086 signal whose gross edge is already consumed by impact cannot be tuned above costs (L18). It is also a single-name 4H trend/momentum clone sitting far below the only tier this class has ever survived (Sharpe>=1.5, PF>=2.0) — the cross-asset BTC-daily gate does not add robustness deflation can't strip, and it loses in the 'normal' vol tercile (-9.7%). Not worth 2 hours of optimization. abandon_class=negative_expectancy.

Implementation

Long-short ATOMUSDT.BINANCE USD-M perp trend strategy on 4H bars whose direction must agree with the BTCUSDT 1-DAY macro trend (a DIFFERENT asset, signal-only, never traded). Fast leg: ATR-normalised EMA spread on ATOM 4H, computed continuously every bar. Macro leg: sign of BTC's btc_lookback-day return, updated in on_extra_bar from BTCUSDT 1-DAY bars. Enters long when the ATOM spread exceeds +entry_thresh and BTC's daily trend is up, short on the mirrored condition, and stays FLAT whenever the two disagree. Exits on an ATR trailing stop (give-back of trail_atr_mult x entry ATR from the best close since entry), on a BTC daily trend flip against the position, or on an ATOM 4H spread flip. Risk-first sizing: equity * risk_pct / trailing-stop distance, capped at max_notional_frac * equity * leverage (2x), so per-trade risk is ~1.5% of equity and cannot compound into a blow-up.

Verification Results

Reconstruct side from the actual open position (cache.positions_open entry direction) rather than from the momentary spread sign.

Verification Results

should_exit() infers a lost _side from the live signal on restart (self._side = 1 if signal >= 0 else -1). This never triggers inside a single backtest run (state is retained), but in a live restart it could infer the wrong side and mis-manage the trailing stop for one position. Cosmetic for the smoke test / backtest path.

Verification Results

Sandbox impact_cost_pct is 39.2% of gross PnL (capacity ~$651k): with max_notional_frac 0.25 x leverage 2 = ~0.5x equity notional per trade on ATOM (thinner than BTC/ETH majors), the strategy pushes a meaningful fraction of gross into impact. The full backtest should confirm the ~0.36% per-trade edge survives realistic slippage on ATOM. Separately, the strategy LOSES in the 'normal' vol regime (-17.2%, sharpe -0.11) while winning in calm/stressed terciles, so the cross-asset gate's edge is regime-lumpy rather than uniform. Both are performance observations for the analyst's real-backtest review, not correctness defects.

Backtest Review

Mechanism is correctly implemented: 410 signaled = 410 submitted, balanced long/short (220/190), cross-asset BTC-daily gate wired via on_extra_bar with positional pairing; entry diagnostics show no drops.

Backtest Review

avg_trade_return_pct 0.354% nominally clears the 0.15% Binance USD-M fee floor and max_drawdown (20.8%) is not catastrophic.

Backtest Review

profit_factor 1.0086 sits squarely in the fee-drag band [0.85, 1.10] with 410 trades (L18 signature) — the gross edge is essentially consumed by costs; net expectancy is ~break-even.

Backtest Review

impact_cost_pct 84.60% of gross PnL and capacity_usd only $139k — market impact devours nearly the entire edge on thin ATOM (~0.5x equity notional/trade); real only at toy scale. QA's 39% sandbox impact flag is borne out and worse on full history.

Backtest Review

Sharpe 0.125 with CI [-0.67, 0.92] straddling zero; Sortino 0.134; recovery_factor 0.08 — no risk-adjusted signal.

Backtest Review

Regime-lumpy: loses in the 'normal' vol tercile (-9.7%, Sharpe 0.03) and 2025 (-20.8%); the cross-asset gate does not add a uniform edge.

Backtest Review

Single-name 4H trend/momentum clone far below the only surviving tier for this class (Sharpe>=1.5, PF>=2.0); the base backtest is the ceiling and deflation only lowers it.

Outcome Summary

AtomBtcMacroConfluenceTrendLS-cdb03a2f9e

Outcome Summary

A signal whose gross edge is already consumed by market impact and fees cannot be tuned above costs and should be screened on capacity/impact before spending optimization time.

Outcome Summary

The backtest-review gate returned 'abandon' before optimization: net expectancy was essentially break-even and impact cost was 84.6% of gross PnL on thin ATOM with only ~$139k capacity, so the nominal 0.354% avg trade return was illusory net of costs.

Outcome Summary

Trade ATOMUSDT 4H momentum long/short only when its direction agreed with the BTCUSDT daily macro trend, isolating BTC-led beta and discarding idiosyncratic chop via an ATR-trailing exit.

Outcome Summary

Over a 6.6-year, 410-trade backtest it returned 15.77x gross with 29.1% CAGR but a Sharpe of only 0.125 (CI [-0.67, 0.92]), profit factor 1.0086, 39% win rate, and 20.8% max drawdown.
Strategy report

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