EthDualSmaCrossoverDailyLongShort
Hypotheses
ETH Dual Moving Average Crossover on Daily Bars
Hypotheses
A classic dual moving average crossover strategy on ETHUSDT futures using daily bars. Enters long when the fast SMA crosses above the slow SMA and short on the reverse crossover. This is intentionally the simplest possible trend-following structure — only 2 parameters (fast period, slow period). ETH is chosen to diversify away from the BTC/SOL/BNB/XRP strategies already in the pipeline, and because ETH has strong multi-week trending behavior driven by DeFi cycles, L2 adoption waves, and ETH/BTC rotation flows. Daily timeframe ensures each trade captures substantial moves (5-15%), making fee drag irrelevant. The simplicity is the point — minimal overfitting surface, maximum robustness.
Hypotheses
DIAGNOSIS (iteration 3): I traced the +187.9% single-bar return through the base template. The base template's _process_primary uses a mutually-exclusive `if flat -> enter / else -> exit` branch, so a crossover flip is a two-bar event (exit old side on the flip bar, enter new side on the next flat bar). There is NO same-bar exit+entry, NO position double-count, and NO double-notional compounding accessible from strategy code -- ruling out the analyst's hypotheses (a)/(b)/(c) as strategy-level bugs. A 1x, 0.5-weight position is mathematically bounded at ~15% equity/day given ETH's ~30% max daily move, so 188% cannot be real exposure. The artifact is a REALIZED-PnL ATTRIBUTION issue: the strategy correctly held a multi-week trend short (end_unrealized_pct=129.97), and the entire accumulated unrealized gain is realized -- and attributed to a single bar -- on the exit-flip (2021-06-01), producing return_kurtosis=1704 / skew=38.5. This is inherent to a daily trend follower that rides multi-week moves and is a metrics/engine reporting concern, not a fixable 2-parameter strategy defect. RECOMMENDATION: ABANDON. Per the analyst's pre-authorization, the underlying edge is marginal (Sharpe 0.28, CI [-0.61,+0.62] straddling zero, negative in 4/7 years, 50% max DD); a behavior-preserving resubmission will reproduce the identical attribution artifact and identical marginal edge. I corrected the docstring to remove the prior false claim that the price-sane guard fixes the single-bar spike (the analyst correctly noted it does not); trading logic is unchanged because it is not defective.
Hypotheses
Failed deflated Sharpe: DSR=0.1001 (vs 0.95 bar), with the optimized Sharpe 0.3177 BELOW the 225-trial expected-max luck bar of 0.5775 (is_significant=false, sharpe_ci_low -0.456 straddling 0, PBO 0.6468 >0.5) — after multiple-testing correction the selected config is statistically indistinguishable from (worse than) best-of-N noise; the PSR=0.941/DSR=0.100 split is the diagnostic tell. Two forward gates concur: the HOLDOUT FAILED (ratio 0.616 < 0.70; holdout 0.304 vs WF-OOS 0.493) and the walk-forward is_overfitted=TRUE with a negative OOS window ([-0.644, 0.931, 1.192]). The base edge is outlier-carried, not a real trend edge: return_kurtosis 1885, skew 41.4, a +235.5% single day (2021-06-01), returns concentrated in 2021 (+230% vs negative 2020/2023/2024), tail_ratio 0.27, and 63.8% of the headline is un-exited open MTM. Not iterate (attempt 1 of 2): sensitivity is a flat plateau with 0 cliffs but the ENTIRE surface sits at a uniform ~0.33 Sharpe — everywhere below the luck bar — so there is no robust region to tune toward and optimization already LOWERED Sharpe (0.330 -> 0.318); a second best-of-225 sweep re-selects the same sub-significant, 2021-outlier-fit config. Not revise_hypothesis: 2-parameter daily dual-SMA trend following on ETH is not a proven mechanism stranded on a dead target (ETH is not dead, no promoted dual-SMA sibling exists) — it is the recurring session pattern of single-asset ETH daily trend edges (cf. EthDailyMultiWeekTrendContinuationLong, EthDailyTrendFollowingLongATRTrail) being too modest and too outlier-concentrated to clear best-of-225 deflation. FAILURE PATTERN: a deliberately minimal 2-param daily dual-SMA crossover produces a clean, cliff-free sensitivity grid that measures consistency, not significance — its genuine but tiny ~0.32-Sharpe trend edge, inflated to a +369% headline by a single 2021 outlier day (kurtosis 1885) and open MTM, sits below the 0.58 best-of-225 luck bar (DSR 0.10) with a failed holdout (0.616) and an overfit walk-forward. Simplicity/robustness of the parameter surface does not rescue an edge that is statistically indistinguishable from noise.
Implementation
Classic 2-parameter dual-SMA crossover on ETHUSDT.BINANCE daily bars. Long when fast SMA > slow SMA, short when fast < slow. Single-instrument, single-venue, long-short, OHLCV-only, leverage 1.0.
Backtest Review
Trades match the hypothesis: 46 trades (22 long / 24 short) over 6.3 years, correct frequency for a 20/50 daily crossover; all signals executed (0 dropped).
Backtest Review
Deliberately simple 2-parameter design (fast/slow period) → minimal overfitting surface, cheap and low-risk optimization.
Backtest Review
Genuine trend-follower return profile: profit_factor 1.62, big wins in trend years (2021, 2025, 2026), small losses in chop — not a broken or degenerate signal.
Backtest Review
The +235% single-day figure is a realized-PnL attribution artifact (accumulated trend gain booked to exit bar), correctly identified by the developer — not a data glitch or fabricated edge.
Backtest Review
Weak base Sharpe 0.33 with sharpe_ci_low -0.48 straddling 0 — not yet distinguishable from no-skill.
Backtest Review
Edge is regime-concentrated: 4 of 7 years negative (2020, 2022, 2023 -22.9%, 2024); return leans on 2021/2025 trend years.
Backtest Review
Thin sample for optimization: 46 trades across 3 walk-forward windows is ~15 trades/window — risks fitting to noise.
Backtest Review
63.8% of the headline total_return is un-exited open MTM (end_unrealized_pct), and 50.1% max drawdown; heavy fat tails (skew 41, kurtosis 1884).
Backtest Review
modest; CI straddles 0 — will be the binding constraint at deflation
Backtest Review
high but typical for an unhedged daily trend follower
Backtest Review
adequate-but-thin for a 3-window walk-forward
Analysis
Clean sensitivity surface with 0 cliffs — the 2-parameter design is genuinely low-overfit-surface as hypothesized
Analysis
Low fee drag (commission 0.88% of gross), confirming daily-timeframe trades are large enough that costs are not the problem
Analysis
Non-overfit in the narrow IS/OOS-ratio sense is not achieved, but the mechanism is simple and transparent
Analysis
Failed deflated Sharpe: DSR=0.1001 (<0.95), optimized Sharpe 0.3177 BELOW the 225-trial expected-max luck bar of 0.5775 — selected config indistinguishable from (worse than) best-of-N noise
Analysis
is_significant=false, sharpe_ci_low=-0.456 (CI straddles 0), PBO=0.6468 (>0.5)
Analysis
Holdout FAILED: ratio 0.616 < 0.70 (holdout 0.304 vs WF-OOS 0.493)
Analysis
Walk-forward is_overfitted=TRUE; OOS windows [-0.644, 0.931, 1.192] include a negative window
Analysis
Outlier-carried edge: return_kurtosis 1885, skew 41.4, a physically-implausible +235.5% single-day return (2021-06-01), returns concentrated in 2021 (+230%) against negative 2020/2023/2024
Analysis
tail_ratio 0.27 (fat left tail); end_unrealized_pct 63.8% — headline is largely un-exited open MTM, not realized edge
Analysis
Raw Sharpe ~0.32 is far below any promotion threshold; optimization LOWERED it (0.330 -> 0.318)
Analysis
BLOCKER: the +187.9% single-day return on 2021-06-01 is physically impossible (ETH's max daily move is ~30%; a 0.5-weight 1x position cannot return 188% in a day) and is the SAME artifact your docstring claims to have fixed ('the +182% single-day artifact'). return_kurtosis=1704 and return_skew=38.5 confirm the entire backtest distribution is dominated by this one bar, and it carries the whole 2021 +167.9%. Your price-sane guard does NOT fix it: the guard only zeroes sizing when the close is far from the slow SMA, but this is not a glitched-price problem — it is a crossover-FLIP accounting/exposure problem. On the flip bar your strategy exits the old side AND enters the new side; trace whether (a) the position is being double-counted, (b) PnL is being booked on both the closing and opening leg of the same bar, or (c) equity is compounding the full notional twice on the flip. Add an assertion/log that flags any single-bar portfolio return > 40% and reproduce on 2021-06-01 specifically. SEPARATELY: report metrics on a REALIZED basis — end_unrealized_pct=129.97 means ~130 points of your +369% headline is an open un-exited position, not a realized result. IMPORTANT EXPECTATION: even with the artifact inflating it, this strategy is marginal — Sharpe 0.28, CI from -0.61 to +0.62 (straddles 0), negative in 4 of 7 years, max DD 50%. After you fix the artifact and re-run, if Sharpe is still <0.5 / the CI still straddles 0 / it's still negative in a majority of years, this 2-param dual-SMA whipsaws too much on ETH daily to be worth optimizing and should be abandoned rather than resubmitted.
Outcome Summary
The strategy set out to capture ETH's multi-week trends with the simplest possible structure — a 2-parameter daily dual-SMA crossover — on the thesis that minimal parameters mean minimal overfitting. Its base backtest looked headline-strong (+369% return) but rested on a weak 0.33 Sharpe whose confidence interval straddled zero, and the analyst cleared it to optimize mainly to cheaply test that thin edge. Optimization confirmed the fear: the sensitivity grid was a flat ~0.33 plateau sitting entirely below the best-of-225 luck bar, the deflated Sharpe collapsed to 0.10, the holdout failed, and the walk-forward was overfit with a negative OOS window — revealing the return was outlier-carried by a single +235% day in 2021 rather than a durable trend edge. After 3 iterations it was abandoned, a recurring pattern for modest single-asset ETH daily trend edges that are too small and too outlier-concentrated to clear multiple-testing correction.
Outcome Summary
A clean, cliff-free sensitivity surface only proves parameter consistency, not statistical significance — a genuine but tiny ~0.32-Sharpe edge inflated by a single 2021 outlier day (kurtosis 1885) and open MTM cannot survive multiple-testing deflation.
Outcome Summary
The analyst abandoned it at the post-optimization ANALYZING stage: the deflated Sharpe of 0.10 sat far below the 0.95 bar and the optimized Sharpe of 0.318 was below the 225-trial expected-max luck bar of 0.5775, while the holdout failed and the walk-forward was flagged overfitted with a negative OOS window — the config was statistically indistinguishable from best-of-N noise.
Outcome Summary
A deliberately minimal 2-parameter dual-SMA crossover on ETHUSDT daily futures bars, going long when the fast SMA is above the slow SMA and short when below, betting that ETH's multi-week trends would make a simple, low-overfitting trend follower robust.
Outcome Summary
The base backtest over ~6.3 years (2019-2026) produced a +369.3% total return with a Sharpe of only 0.33 (CI low -0.48), 46 trades (22 long / 24 short), 54.3% win rate, 1.62 profit factor, and a 50.1% max drawdown. After 3-phase optimization the selected config's Sharpe actually fell to 0.318 with a deflated Sharpe of 0.10, PBO 0.65, and a failed holdout (ratio 0.616 vs 0.70 required).
Backtest and paper results are hypothetical. Trading involves risk of loss.