Skip to content

View original

SolDailyTripleSmaBullishAlignmentTrendLong

Hypotheses

SOL Daily Triple-SMA Bullish-Alignment Trend Continuation Long

Hypotheses

A long-only, single-instrument, single-timeframe strategy on SOLUSDT.BINANCE Daily bars implementing a STATE-BASED structural signal: triple-SMA bullish alignment. The mechanism: enter long when (a) close > sma_50 > sma_100 > sma_200 (price above all three SMAs AND SMAs themselves stacked in bullish order), (b) state has persisted for >= 5 consecutive days (sustained alignment, not a single-day flicker), (c) current bar closes at a new 5-day high (active upward progress), (d) modest volume floor. Critically distinct from every existing pipeline entry: (a) NOT a Golden Cross (single crossover event between 2 SMAs); THIS requires concurrent alignment of THREE SMAs as a sustained state; (b) NOT a Donchian channel breakout (uses a single Donchian period); THIS uses MULTI-HORIZON SMA structure (50-day, 100-day, 200-day) as the regime confirmation; (c) NOT a breadth/rotation/basket (single asset); (d) NOT an oscillator (state comparison only, no smoothing or divergence math). The mechanism captures the regime where multiple long-term moving averages are aligned bullishly — a state that mathematically requires the trend has been intact over MULTIPLE timeframes simultaneously, providing stronger regime evidence than any single SMA crossing. Applied to SOL Daily because: (a) SOL has narrative cycles distinct from BTC/ETH (memecoin frenzies, Solana ecosystem launches, NFT cycles), producing prolonged alignment phases (e.g., Sept 2023-Feb 2024 sustained alignment yielded 400%+ rally); (b) SOL Daily bars are confirmed-working (SolDailyEmaTrendContinuationLong in pipeline); (c) NO existing SOL strategy uses triple-SMA alignment — SolDailyEmaTrendContinuationLong uses single EMA, this uses three-SMA structure. Single-instrument, single-timeframe, NO secondary instruments — directly avoids the multi-instrument audit_stale failure mode.

Hypotheses

Iteration 3 fix (Layer 2 synthetic failure): the reported TypeError '_sma_at() takes 3 positional arguments but 4 were given' comes from the Layer-2 proxy in strategy_verifier.py re-binding every instance method onto a wrapper via types.MethodType, which injects a spurious extra `self` when one method calls another helper method through `self.`. The smallest robust fix is to move the two pure helpers (_sma_window and _sma_aligned) to MODULE LEVEL as free functions taking explicit args — free functions carry no instance binding, so they are immune to the proxy artifact. All signal, entry, exit, and sizing logic is byte-identical to the previous iteration; only the helper call convention changed (self._sma_at(...)/self._aligned_at(...) -> module functions). Imports remain clean (numpy + nautilus only), preserving the already-passing Layer 1. Implements the hypothesis's sustained three-SMA multi-horizon alignment state, distinct from Golden Cross / Donchian / oscillator / basket entries.

Hypotheses

Failed deflated Sharpe and every forward gate on optimization attempt 1. DSR=0.0 (vs 0.95 bar) with the optimized Sharpe 2.39 FAR below the 225-trial expected-max luck bar of 6.735 (is_significant=false, PBO 0.5886 >0.5) — after multiple-testing correction the selected config is statistically indistinguishable from best-of-N noise; probabilistic_sharpe 1.0 vs DSR 0.0 is the textbook selection-inflation trap. The walk-forward is is_overfitted=TRUE: avg IS Sharpe 3.12 collapses to avg OOS 0.0 with all three OOS windows EXACTLY 0.0, and the time-ordered HOLDOUT FAILED (ratio 0, holdout_sharpe 0.0). The edge is outlier-carried across two bull runs (annual +304% 2021, +129% 2023, then NEGATIVE -7.7% 2024 and -9.9% 2025; return_kurtosis 159, skew 12.2, a single +200% day 2021-11-14) on a sparse 36-trade base (16 optimized). The clean 0-cliff sensitivity grid and positive CI-low measure consistency, not significance, and are computed on the same 2021/2023-dominated sample. Not iterate (despite attempt 1 of 2): the binding failure is an EMPTY out-of-sample (all OOS windows 0.0) and a selected Sharpe vastly below the luck bar on a signal too sparse and regime-dependent to tune toward significance — a second best-of-225 sweep re-selects another bull-run-overfit config. Not revise_hypothesis: this is the overfit case (high IS -> zero OOS), and per the overfit->abandon rule reframing the same triple-SMA mechanism onto another target just re-overfits; SOL is a fine instrument and there is no promoted triple-SMA sibling stranded on a dead target. FAILURE PATTERN: a genuinely differentiated sustained triple-SMA (50/100/200) alignment state does NOT escape the single-asset daily trend-following deflation signature — a clean, 0-cliff, low-drawdown base with a flattering full-sample profit_factor produces an edge concentrated entirely in the 2021 and 2023 SOL bull markets whose walk-forward OOS is identically zero, whose holdout fails, and whose best-of-225 optimized Sharpe (2.39, DSR 0.0) falls far below the 6.735 expected-max luck bar. Signal novelty and a stable sensitivity surface do not rescue a sparse, regime-dependent long that fails deflated Sharpe with an empty out-of-sample.

Implementation

Long-only SOL Daily trend-continuation strategy on a sustained triple-SMA (50/100/200) bullish-alignment state. Enters when close > SMA50 > SMA100 > SMA200 has persisted >= 5 bars, the bar makes a new 5-day high, and volume clears a modest floor. calculate_signal returns a continuous tanh SMA-stack score; the binary entry decision is stored in self._long_trigger. Exits on trend break (close < SMA50), a 12% protective stop, or a 120-bar time stop. BINANCE USD-M futures at 2.0x leverage (notional ~1.2x equity).

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['sma_mid', 'sma_fast', 'sma_slow', 'vol_window', 'min_notional', 'persist_days', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'vol_floor_mult', 'breakout_lookback'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: SolDailyTripleSmaBullishAlignmentTrendLong._sma_at() takes 3 positional arguments but 4 were given (bar timestamp: 1735701960000) - steady_downtrend: TypeError: SolDailyTripleSmaBullishAlignmentTrendLong._sma_at() takes 3 positional arguments but 4 were given (bar timestamp: 1735701960000) - flat_ranging: TypeError: SolDailyTripleSmaBullishAlignmentTrendLong._sma_at() takes 3 positional arguments but 4 were given (bar timestamp: 1735701960000) - volatility_spike: TypeError: SolDailyTripleSmaBullishAlignmentTrendLong._sma_at() takes 3 positional arguments but 4 were given (bar timestamp: 1735701960000) - zero_volume: TypeError: SolDailyTripleSmaBullishAlignmentTrendLong._sma_at() takes 3 positional arguments but 4 were given (bar timestamp: 1735701960000) - price_gap: TypeError: SolDailyTripleSmaBullishAlignmentTrendLong._sma_at() takes 3 positional arguments but 4 were given (bar timestamp: 1735701960000)

Backtest Review

Trades faithfully implement the hypothesis: 36 long-only entries, 0 shorts, 9.7% exposure — a genuine sustained-trend long, not a closet always-in position

Backtest Review

Clean entry pipeline (36 signaled = 36 submitted, zero size/notional/cash drops) — signal is functioning, not frozen or degenerate

Backtest Review

Adequate sample for a daily prolonged-phase strategy (36 trades); PF 2.35, win_rate 0.64, Sharpe 1.61 indicate a real (if regime-dependent) edge worth testing

Backtest Review

Return is severely outlier-carried (kurtosis 159, skew 12.2; single +200% day 2021-11-14 and +34% 2021-05-19 dominate) — high risk the edge is a few-events artifact

Backtest Review

Recent-regime decay: annual 2024 -7.7%, 2025 -9.9% — the mechanism has not worked in the last two years, a red flag for the forward holdout

Backtest Review

36 trades is thin for parameter fitting — optimizer may curve-fit to the 2021/2023 outlier events

Analysis

Clean sensitivity surface: 0 cliff parameters, Sharpe stable ~1.5-2.5 across all 11 parameters

Analysis

Signal is genuinely differentiated (sustained triple-SMA 50/100/200 alignment state) and single-instrument/single-timeframe, avoiding the multi-instrument stale-leg failure mode

Analysis

Low drawdown (18-29%) and high headline profit_factor (2.35 base / 13.7 optimized) — but only because the sample is dominated by two bull runs

Analysis

Deflated Sharpe = 0.0: optimized Sharpe 2.39 is far below the 225-trial expected-max luck bar of 6.735; is_significant=false, PBO 0.5886 — best-of-N selection artifact

Analysis

Walk-forward is_overfitted=true: avg IS 3.12 collapses to avg OOS 0.0 with all three OOS windows exactly 0.0 — no out-of-sample edge

Analysis

Holdout FAILED (ratio 0, holdout_sharpe 0.0 vs WF-OOS 0.0)

Analysis

Outlier-carried edge concentrated in 2021 (+304%) and 2023 (+129%) bull runs, then negative 2024 (-7.7%) and 2025 (-9.9%); kurtosis 159, skew 12.2, single +200% day dominates

Analysis

PSR 1.0 vs DSR 0.0 is the classic multiple-testing trap; sparse signal (36/16 trades) cannot support significant inference

Analysis

Do NOT optimize yet — the backtest headline rests on an implausible single day and must be made trustworthy first. Concrete steps: 1) INVESTIGATE THE +206% DAY (2021-11-14): a ~1.2-1.3x long cannot return +206% in a day (would require SOL to roughly triple). Two candidate causes — verify both against the trades in the detail_file: (a) a bad/spiked SOLUSDT.BINANCE daily bar around 2021-11-14, and (b) position over-exposure from pyramiding. 2) LIKELY ROOT CAUSE — PYRAMIDING: the entry trigger (sustained triple-SMA alignment AND new 5-day high AND volume floor) can fire on many consecutive days during a strong SOL rally. If should_enter / the base template does not block re-entry while already long, positions stack far beyond the intended 1.2x, which would produce the +206% day on a large underlying move. FIX: in should_enter, return None when a position is already open for this instrument (enter only from flat) so exposure caps at ~1.2x. Re-run and confirm no single-day return exceeds what ~1.2x leverage permits. 3) RE-ASSESS THE EDGE AFTER FIXING: with exposure capped and any bad bar excluded, check whether the trend edge survives. Be skeptical — 2024 (-9.8%) and 2025 (-10.9%) are losing years, the sample is thin (36 trades), and the result is heavily concentrated in the 2021 and 2023 bull-alignment windows (skew 12.3, kurtosis 161.8). If the fixed-exposure rerun still shows a positive, less tail-dependent edge with reasonable trade count, it can proceed to optimization (where it will still need to clear the deflated-Sharpe/walk-forward/holdout gates given the thin sample). If it collapses toward the 2024-2025 losing profile, abandon.

Outcome Summary

SolDailyTripleSmaBullishAlignmentTrendLong tested whether a sustained triple-SMA (50/100/200) bullish-alignment state on SOL daily bars could time durable trend continuation, and its initial backtest was encouraging enough (Sharpe 1.61, PF 2.35, +681%, 36 trades) to clear the backtest-review gate with an 'optimize' verdict. Optimization then exposed the edge as fragile: average in-sample Sharpe of 3.12 fell to exactly 0.0 out-of-sample across all three walk-forward windows, the holdout failed, and the optimized Sharpe of 2.39 carried a deflated Sharpe of 0.0 — far below the 6.735 luck bar — confirming a best-of-N overfit. The returns proved to be concentrated in the 2021 and 2023 SOL bull markets and negative in 2024–2025, so after 3 iterations the analyst abandoned it rather than re-tuning a sparse, regime-dependent signal toward significance. It ends as a clean example that signal novelty and a stable sensitivity surface do not rescue a strategy with an empty out-of-sample.

Outcome Summary

A novel, low-drawdown, zero-cliff signal on a single daily asset can still be a mirage: a flattering full-sample profit factor carried by a few outlier bull-run days (kurtosis 159, skew 12.2, one +200% day) collapses to an empty out-of-sample, so future iterations should treat sparse (~36-trade) regime-dependent longs as prone to the daily trend-following deflation signature regardless of signal originality.

Outcome Summary

The analyst returned an 'abandon' verdict at the post-optimization ANALYZING stage because the strategy failed every forward gate — deflated Sharpe, walk-forward OOS, and the time-ordered holdout were all 0.0 — showing the edge was best-of-225 selection noise concentrated in the 2021 (+304%) and 2023 (+129%) SOL bull runs, and negative in 2024 (-7.7%) and 2025 (-9.9%).

Outcome Summary

A long-only SOLUSDT daily strategy that entered when price sat above a bullishly-stacked triple SMA (close > SMA50 > SMA100 > SMA200) that had persisted at least 5 days and printed a new 5-day high, betting that sustained multi-horizon SMA alignment marks a durable trend-continuation regime.

Outcome Summary

The initial backtest looked strong on the full sample: +681% total return, Sharpe 1.61, profit factor 2.35, 63.9% win rate over 36 long trades with a 29.2% max drawdown. After optimization it showed Sharpe 2.39 on 16 trades, but walk-forward flagged is_overfitted=true with average in-sample Sharpe 3.12 collapsing to out-of-sample 0.0 across all three windows, the holdout failed (holdout Sharpe 0.0), and deflated Sharpe was 0.0 versus a 6.735 expected-max luck bar (PBO 0.59, is_significant=false).
Strategy report

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