Strategies
FIL Daily Multi-Week Trend Continuation Long with 200-SMA Regime Filter
Outcome: Abandoned
FilDailyMultiWeekTrendContinuationLong
Outcome Summary
This strategy replicated the promoted LINK and ATOM daily multi-week trend-continuation mechanism on Filecoin (FIL) for portfolio diversification, using a 200-SMA regime filter and a 30/80 EMA momentum stack calibrated for a handful of trend-riding entries per year. Instead, the backtest lost roughly two-thirds of capital (-68.8% return, Sharpe -0.519, 79% max drawdown) across 175 trades and betrayed its own design, firing ~30 entries a year with ~1-day average holds as the logic whipsawed in FIL's choppy, largely bearish regimes. The reviewer identified the binding problem as structural — a long-only trend-follower applied to an asset that fell ~98% from its 2021 high has no uptrend edge for optimization to recover — and abandoned it at the backtest-review gate after five iterations, before spending any time on optimization or analysis.
Hypothesis
Implementation
Long-only FILUSDT daily-bar futures trend-continuation. Enters long when the 200-day SMA regime filter (close > SMA) AND the 30/80 EMA momentum stack (EMA_fast > EMA_slow) are both aligned up — a single-dominant-filter design (not a sparse multi-condition AND-gate). calculate_signal() returns a continuous, always-varying trend score (difference-based per-bar momentum backbone plus EMA-spread / price-vs-SMA / short-momentum blend); the binary regime+momentum decision is stored in _long_trigger. Exits let trends run: 8% trailing stop from the in-trade peak close, EMA-stack break, or a drop below the 200-SMA. Leverage 2.0 is genuinely consumed in sizing (~1.2x equity notional). Calibrated for ~5-12 entries/year (LINK Multi-Week Trend success zone).
Verification Results
Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['ema_fast', 'ema_slow', 'trail_pct', 'min_notional', 'position_pct', 'regime_period'] Check that __init__ sets all attributes from self.parameters.get(). - steady_downtrend: Frozen signal: all 296 signals are identical (value=0.0). calculate_signal() likely has a bug — the signal never varies.
Backtest Review
- Sharpe
- -0.52
- Total return
- -68.80%
- Max drawdown
- 79.00%
- Trades
- 175
- Win rate
- 45.7%
- Profit factor
- 0.65
Clean infrastructure: single-asset FIL 1D OHLCV-only, long-only, 175 entries all submitted with zero drops; ample sample size (not a sparsity case).
Catastrophic money-loser with no edge: total_return -68.8%, profit_factor 0.649, Sharpe -0.519, negative expectancy (-$430/trade), max_drawdown 79.0% (CI to 97.7%).
Mechanism mismatch: hypothesis promises 5-12 entries/year with multi-week holds, but the backtest produced ~30 entries/year with a ~1-day average hold — the trend-continuation logic is whipsawing, not letting trends run.
Long-only applied to a structurally bearish asset (FIL fell ~98% from its 2021 high) — annual returns negative in 2021 (-48.5%), 2023 (-56.2%), 2025 (-2.8%); the only positive year is 2024.
Negative alpha (-0.08) and information_ratio (-0.05); 9 consecutive losses at worst.
Analysis
The strategy does not implement its stated multi-week continuation mechanism: it fires 175 entries with ~1-day average holds instead of the calibrated 5-12 entries/year with multi-week holds. Root cause is an exit/re-entry churn loop. Fixes: (1) Remove or soften the immediate `price < 200-SMA` exit — it directly opposes the `close > SMA` entry and causes whipsaw re-entry every time price straddles the SMA; gate the regime exit on a confirmed close below the SMA over N bars, or drop it and rely on the EMA-stack break as the primary trend-exit. (2) Widen the trailing stop well above 8% (e.g. 15-25%) so the trailing stop stops truncating multi-week trends. (3) Add a re-entry cooldown / hysteresis (e.g. require a fresh EMA-stack cross, or wait K bars after an exit) so the strategy cannot re-enter on the very next bar. (4) Verify holding period lengthens to weeks and trade count drops toward the intended ~28-67 before re-submitting. Do NOT optimize the current version — parameter tuning cannot fix the structural churn, and the -68.8% churning result would only overfit.
Outcome Summary
Inheriting a promoted architecture does not inherit promotability — a long-only trend-continuation template only works on instruments that actually trend up, and porting it to a structurally bearish asset both loses money and degrades into whipsaw trading that violates the strategy's own multi-week holding premise.
The analyst abandoned it at the pre-optimization BACKTEST_REVIEW gate before any optimization ran, citing a catastrophic no-edge result plus a mechanism mismatch: the entry/exit stack whipsawed on consecutive bars rather than riding trends, and the root cause was a premise problem — a long-only trend-follower on a structurally bearish asset (FIL fell ~98% from its 2021 high) with no uptrend edge to tune toward.
Port the proven LINK/ATOM daily multi-week trend-continuation template to FILUSDT.BINANCE perpetual futures — a long-only, OHLCV-only strategy that enters when price is above its 200-day SMA regime filter and the 30/80 EMA stack is aligned up, aiming for 5-12 trend-riding entries per year for narrative diversification into decentralized storage.
The base backtest was a decisive money-loser: total return -68.8%, Sharpe -0.519, profit factor 0.649, negative expectancy of -$430/trade, and a 79.0% max drawdown (CI to 97.7%) across 175 long trades with a 45.7% win rate. It also failed to implement its own premise — producing ~30 entries/year with a ~1-day average hold instead of the promised 5-12 multi-week holds.
Backtest and paper results are hypothetical. Trading involves risk of loss.