Strategies
MATIC Four-Hour Volume Breakout Long-Only (BINANCE USD-M Futures, 4H, OHLCV-Only)
Outcome: Abandoned
MaticFourHourVolumeConfirmedBreakoutLong
Outcome Summary
Hypothesis
Long-only MATIC 4-hour strategy on BINANCE USD-M futures. Direct analog of the landed BTC/ETH/SOL/BNB/AVAX/DOGE/XRP FourHourVolumeBreakoutLong family — applied to MATIC. Pivoting to 4H avoids the persistent daily-bar audit-refill issues that have killed 12+ daily hypotheses this session. Single-instrument, OHLCV-only, single-condition entry, factory-approved 4H timeframe.
Implementation
Long-only 4H volume-confirmed Donchian breakout on POLUSDT (the currently-listed successor to the delisted MATICUSDT) on Binance USD-M futures at 2x leverage. Enters long when the 4H close breaks above the prior 20-bar high, volume exceeds 1.2x its 20-bar average, and price is above a 50-bar SMA (bull regime). Exits on a 10-bar Donchian-low break, a 6% stop, an 18% take-profit, or a 30-bar time stop. Pure OHLCV, single instrument, no supplementary data.
Verification Results
Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit. This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).
Backtest Review
- Sharpe
- -3.15
- Total return
- -33.21%
- Max drawdown
- 44.83%
- Trades
- 90
- Win rate
- 40.0%
- Profit factor
- 0.74
The code is competently written and faithfully implements the volume-confirmed Donchian breakout family: 90 long / 0 short (correct for a long-only hypothesis), entry_diag shows 90 signaled -> 90 submitted with zero drops. No mechanism mismatch, no coding bug.
The developer correctly detected that MATICUSDT was delisted (~2024-09) and re-pointed to the successor POLUSDT contract rather than failing on data_unavailable. That diagnosis was right.
Trade count (90) would be an adequate sample if the sign of the result were favorable.
THE STRATEGY LOSES MONEY IN EVERY YEAR OF ITS LIFE. annual_returns: 2024 -0.19%, 2025 -17.45%, 2026 -19.11%. total_return -33.21%, sharpe_ratio -3.1496, sortino -5.697, profit_factor 0.742, omega_ratio 0.553, expectancy -$370.65/trade. probabilistic_sharpe 0.0885. Rolling Sharpe turns negative on 2025-07-18 and never recovers across the following twelve months.
THE REGIME FILTER WAS DISABLED BECAUSE IT WORKED. The docstring states a 200-bar SMA regime filter 'would block essentially every long and produce zero trades', so regime_bars was cut to 50. That zero-trade output was the correct answer, not an obstacle: it means POL has no sustained bull regime in this window. Shortening the filter until trades appear fits the parameter to a desired trade count, and it is a deviation from the proven sibling template that invalidates the 'direct analog' premise.
LONG-ONLY BREAKOUT ON A STRUCTURALLY DECLINING ASSET. This is the known BCH drawdown-accumulation failure pattern. The BTC/ETH/SOL/BNB/AVAX/DOGE/XRP siblings inherit their edge from assets that trend up over the test window; POL does not. No parameter inside a long-only breakout can manufacture an uptrend, so there is nothing for optimization to tune toward.
SIZING EXCEEDS SPEC AND COMPOUNDS THE LOSS: avg_position_pct is 140.99% against a stated design of position_pct 0.60 x leverage 2.0 = 1.2x. Notional is computed from shrinking equity, so effective leverage rises as the strategy bleeds. Combined with max_drawdown 44.83% (CI up to 66.20%) and annualized_volatility 61.77%, this is 1.4x leverage into a falling asset.
COSTS ARE SEVERE: total_impact_usd $23,079 is roughly DOUBLE total_commission $11,088, on turnover 745 in a thin alt. commission_pct_of_gross 11.54%. Even a real edge would struggle to clear this.
HISTORY IS TOO SHORT REGARDLESS: the POLUSDT contract only begins 2024-09-13 (data_days 75, 3,901 4H bars, ~1.8 years). The landed siblings were validated over ~6 years. A 3-window walk-forward here would fit noise.
information_ratio is +0.4322 only because the strategy lost LESS than holding POL outright; alpha is -0.1189. Underperforming cash while outperforming a falling asset is not an edge.
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: POLUSDT.BINANCE-4-HOUR-LAST-EXTERNAL, Bars processed: 3903 Diagnostics: should_enter() returned a side 0 times over 0 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Outcome Summary
When a regime filter blocks every entry, that is a verdict about the instrument, not a parameter to relax — and a long-biased mechanism only inherits its siblings' promotability if the new asset's trend over the available history is non-negative.
The backtest-review gate abandoned it before optimization ran: the decisive tell was in the strategy's own docstring, where the developer cut the regime filter from ~200 bars to 50 because a 200-bar SMA 'would block essentially every long and produce zero trades' — a long-only breakout on a structurally declining asset, where no parameter can manufacture an uptrend.
Port the promoted 4H Volume-Confirmed Breakout Long family (BTC/ETH/SOL/BNB/AVAX/DOGE/XRP) to MATIC — trading the successor POLUSDT.BINANCE USD-M contract on 4-hour bars, entering long on a volume-confirmed Donchian breakout above a 50-bar SMA regime filter, exiting on channel break, take-profit, stop-loss, or a max-hold time stop.
Across 90 long trades (90 signaled, 90 submitted, zero drops) it returned -33.21% total with Sharpe -3.1496, Sortino -5.697, profit_factor 0.742, omega_ratio 0.553 and expectancy -$370.65 per trade, against a 44.83% max drawdown (CI to 66.20%). It lost money in every year of its life — 2024 -0.19%, 2025 -17.45%, 2026 -19.11% — with rolling Sharpe turning negative on 2025-07-18 and never recovering.
Backtest and paper results are hypothetical. Trading involves risk of loss.