Naar inhoud gaan
Alle strategieën

Strategieën

Mean-reversion met volatiliteitsband in een zijwaarts regime, long-short (één instrument ETHUSDT Binance USD-M, candles van 1H, fade van uitgerekte afwijkingen ONLY wanneer een trendfilter een markt zonder trend bevestigt — de gedocumenteerde oplossing voor falende reversal bij trendende grote munten, met weinig parameters)

Uitkomst: Gestaakt

EthRangingRegimeVolBandMeanReversionLS1H

Samenvatting uitkomst

Deze strategie moest uurlijkse ETH mean-reversion redden van de herhaaldelijk bevestigde bevinding van de strategy factory dat kortetermijnreversal faalt bij liquide grote cryptomunten. Daarvoor gebruikte ze een hard filter voor het ADX-regime om z-score-overextensies alleen in zijwaartse markten te faden. In een backtest over 1,388 trades en meer dan 6 jaar verloor de gefilterde fade in elk jaar en regime: totaalrendement -85.7%, Sharpe -1.94 met een volledig negatief betrouwbaarheidsinterval, profitfactor 0.72……Meer tonenMinder tonen

Deze strategie moest uurlijkse ETH mean-reversion redden van de herhaaldelijk bevestigde bevinding van de strategy factory dat kortetermijnreversal faalt bij liquide grote cryptomunten. Daarvoor gebruikte ze een hard filter voor het ADX-regime om z-score-overextensies alleen in zijwaartse markten te faden. In een backtest over 1,388 trades en meer dan 6 jaar verloor de gefilterde fade in elk jaar en regime: totaalrendement -85.7%, Sharpe -1.94 met een volledig negatief betrouwbaarheidsinterval, profitfactor 0.72 en verwachtingswaarde -$60.76 per trade. Tegelijk had ze precies de omgekeerde geometrie van kleine take-profit en grote stop die de hypothese wilde vermijden. Omdat de implementatie zuiver was en het negatieve resultaat ondubbelzinnig bleek in een grote statistisch betekenisvolle steekproef, stopte de analist bij de beoordelingspoort van de backtest vóór optimalisatie, in plaats van uren aan het optimaliseren van ruis te besteden. De strategie kwam niet voorbij die poort: optimalisatie, analyse na optimalisatie en risicobeoordeling zijn nooit uitgevoerd. Het resultaat bevestigt helder dat een contrarian fade met filter voor ADX bij liquide grote cryptomunten niet generaliseert naar een positieve edge.

Hypothese

Een LONG-SHORT, SINGLE-INSTRUMENT mean-reversionstrategie op ETHUSDT.BINANCE (USD-M-perpetual, candles van 1-HOUR) die bewust is ontworpen AROUND de herhaaldelijk bevestigde bevinding van de strategy factory: 'kortetermijnreversal bestaat niet bij liquide majors — op die horizon zetten deze activa hun beweging voort en volgen ze een trend.' De eerdere cross-sectionele reversalportefeuille van 3 dagen mislukte precies omdat die UNCONDITIONALLY afweek en daardoor structureel short zat in het momentum dat de markt……Meer tonenMinder tonen

Een LONG-SHORT, SINGLE-INSTRUMENT mean-reversionstrategie op ETHUSDT.BINANCE (USD-M-perpetual, candles van 1-HOUR) die bewust is ontworpen AROUND de herhaaldelijk bevestigde bevinding van de strategy factory: 'kortetermijnreversal bestaat niet bij liquide majors — op die horizon zetten deze activa hun beweging voort en volgen ze een trend.' De eerdere cross-sectionele reversalportefeuille van 3 dagen mislukte precies omdat die UNCONDITIONALLY afweek en daardoor structureel short zat in het momentum dat de markt domineert. Deze strategie pakt die oorzaak aan met een strikte REGIME GATE: ze gaat alleen tegen een uitgerekte afwijking in wanneer een trendfilter (ADX) aangeeft dat het actief momenteel NOT trendmatig beweegt. In een regime zonder trend (zijwaarts) keren overdrijvingen per uur ten opzichte van een kort voortschrijdend gemiddelde terug; in een trendregime blijft de strategie FLAT en gaat ze nooit tegen de trend in. Ze staat los van (en vormt een bewuste aanvulling op) de momentum-, impuls- en trendfamilie die de portefeuille al domineert — ze benut het OPPOSITE-regime in plaats van dezelfde edge opnieuw uit te drukken. Puur OHLCV, diepe meerjarige historie, hoog aantal transacties (geen schaarsteprobleem), één liquide major (geen risico op event gaps door altcoin-nieuws zoals bij XRP/LTC). Weinig parameters om overfitting tegen te gaan.

Oplossing in iteratie 3 voor de wall-clocktime-out van Layer-3: de vorige versie bouwde numpy-arrays opnieuw op uit de ENTIRE groeiende barhistorie en voerde bij elke bar de ADX Python-lussen over de volledige historie uit. Daardoor bedroegen de totale kosten O(n^2), waardoor de limiet van 300s voor de rooktest werd overschreden bij meerjarige data van 1H. De kleinste gerichte wijziging neemt een slice van self._bars met een vaste lengte (self._calc_window = max(band_period, 5*adx_period)+10 = 80 bars) voordat de arrays worden opgebouwd, zodat het werk per bar O(1) en het totale werk O(n) is. Alle signaal-, entry-, exit- en sizinglogica is byte-identiek aan de code die Layers 1-2 al doorstond, zodat eerdere controles niet achteruitgaan. Het venster dekt ruimschoots de ADX Wilder-warm-up (2*adx_period+1) en de bandperiode van SMA.

Fundamenteel onhoudbare premisse, geen herstelbare bug of artefact — dit bevestigt de herhaaldelijk gevalideerde bevinding van de strategy factory dat kortetermijnreversal niet bestaat bij liquide grote cryptomunten. De hele these van deze hypothese was dat een filter voor een ADX-regime zonder trend de uurlijkse fade op ETH zou redden; de gefilterde fade verliest nog steeds in EVERY jaar (2020 tot en met 2026) en in EVERY regime, met total_return -85.7%, Sharpe -1.94 (de volledige CI is negatief, ci_high -1.14),……Meer tonenMinder tonen

Fundamenteel onhoudbare premisse, geen herstelbare bug of artefact — dit bevestigt de herhaaldelijk gevalideerde bevinding van de strategy factory dat kortetermijnreversal niet bestaat bij liquide grote cryptomunten. De hele these van deze hypothese was dat een filter voor een ADX-regime zonder trend de uurlijkse fade op ETH zou redden; de gefilterde fade verliest nog steeds in EVERY jaar (2020 tot en met 2026) en in EVERY regime, met total_return -85.7%, Sharpe -1.94 (de volledige CI is negatief, ci_high -1.14), PSR 0.0, profit_factor 0.72 en een verwachtingswaarde van -$60.76 in een grote, statistisch betekenisvolle steekproef van 1,388 trades. De code implementeert de premisse getrouw (geen ontaarde no-op-parameter, geen boekhoudkundig artefact, plausibele volatiliteit van ~20% en geen onmogelijke dagen), dus er is niets dat de ontwikkelaar moet repareren en geen ongetunede knop die de optimizer kan vinden — 2 uur optimaliseren vanuit een basis die overal zo negatief is, zou alleen ruis fitten. Het fadesignaal op basis van een z-score van 2 standaarddeviaties heeft zelfs met een filter voor zijwaartse regimes waarbij ADX<25 een negatieve voorspellende waarde op ETH; de strategie heeft ook de omgekeerde geometrie van kleine TP (exit_z 0.3) tegenover een grote stop (4%), precies wat de hypothese wilde vermijden (avg_win $290 < avg_loss $455). Niet verder itereren: er is geen specifiek codeprobleem en dezelfde contrarian-mechaniek toepassen op een andere grote liquide munt zou dezelfde mislukking door gebrek aan reversal opleveren. Bekend faalpatroon: gefilterde kortetermijn-mean-reversion op liquide grote cryptomunten leidt niet tot een generaliseerbare positieve edge.

Implementatie

Long-short mean-reversion op 1H voor ETHUSDT USD-M perp. Fadet uitgerekte z-score-afwijkingen van een 24-bars SMA-band, maar ONLY wanneer ADX(14) < 25 (regime zonder trend of met zijwaartse beweging). Blijft aan de zijlijn bij trends en sluit de positie als de trend tijdens de trade begint. Uitstap via stop-loss of herstel naar het gemiddelde. De berekening per bar is begrensd tot een vast recent venster, zodat de backtest in O(n)-tijd draait.

Verificatieresultaten

Verificatie mislukt (laag 3 — backtest in sandbox): rooktest overschreed de tijdslimiet van 300s. Dit betekent vrijwel altijd dat werk per bar schaalt met de historie — bijvoorbeeld het opnieuw scannen van de volledige funding-/aanvullende reeks, of het opnieuw opbouwen van een lijst en min()/sorted() aanroepen binnen calculate_signal()/on_bar() bij elke bar. Bereken vooraf gesorteerde timestamp-arrays ONCE in __init__ en gebruik bisect, of cache lookups op basis van timestamp, zodat de kosten per bar O(log n) zijn in plaats van O(n).

Backtest-review

Sharpe
-1,94
Totaal rendement
-85,70%
Maximale drawdown
86,79%
Totaal aantal trades
1388
Winratio
52,9%
Winstfactor
0,72

Zuivere, getrouwe implementatie: het regimefilter ADX, de z-score-fade en de stop-/uitstaplogica geven de beschreven hypothese correct weer (geen artefact, geen boekhoudkundige fout, plausibele volatiliteit 20.6% en geen onmogelijke dagen).

Gezonde steekproef en infrastructuur: 1,388 trades over meer dan 6 jaar, veel trades, één liquide instrument, kosten O(1) per bar — de backtest zelf is betrouwbaar.

Het negatieve resultaat is zelf informatief: het bevestigt op heldere wijze de aanname dat reversal ontbreekt bij grote cryptomunten, met een grote statistisch betekenisvolle steekproef.

Consistent negatieve edge gedurende EVERY jaar (2020 -13%, 2021 -52%, 2022 -32%, 2023 -2.8%, 2024 -5.8%, 2025 -25.6%, 2026 -18.4%) en in elk regime — total_return -85.7%, max_drawdown 86.8%.

Duidelijk negatieve, voor risico gecorrigeerde metrics: Sharpe -1.94 (de volledige CI negatief, ci_high -1.14), Sortino -2.46, PSR 0.0, profit_factor 0.72, information_ratio -1.01, verwachtingswaarde -$60.76 per trade over 1,388 trades.

Omgekeerde payoff-geometrie, precies wat de hypothese wilde vermijden: exit_z=0.3 (kleine winst) tegenover stop 4% geeft avg_win $290 < avg_loss $455 bij een winrate van 53%; commissie nam 16% van de bruto-opbrengst op — maar zelfs de juiste geometrie redt een signaal zonder voorspellende edge over 6 jaar niet.

Iteratiegeschiedenis

Verificatie mislukt (laag 2 — synthetische scenario's): Gebruikte parameters: ['exit_z', 'entry_z', 'risk_frac', 'adx_period', 'band_period', 'min_notional', 'adx_threshold', 'stop_loss_pct'] Controleer of __init__ alle attributen instelt met self.parameters.get(). - steady_uptrend: TypeError: 'float' object is not callable (bartimestamp: 1735691580000) - steady_downtrend: TypeError: 'float' object is not callable (bartimestamp: 1735691580000) - flat_ranging: TypeError: 'float' object is not callable (bartimestamp: 1735691580000) - volatility_spike: TypeError: 'float' object is not callable (bartimestamp: 1735691580000) - zero_volume: TypeError: 'float' object is not callable (bartimestamp: 1735691580000) - price_gap: TypeError: 'float' object is not callable (bartimestamp: 1735691580000)

Samenvatting uitkomst

Kortetermijnreversal heeft geen positieve edge op liquide grote cryptomunten, zelfs niet met een filter voor een ADX-regime zonder trend. Daarom verliest een fade van overextensie op ETH nog steeds in alle jaren en regimes.

De analist gaf bij de BACKTEST_REVIEW-poort vóór optimalisatie het oordeel 'stoppen' en bestempelde de premisse als fundamenteel onhoudbaar, niet als een herstelbare bug. De code implementeerde de hypothese getrouw en de backtest was zuiver en betrouwbaar; er was dus geen defect om te verhelpen en geen ongetunede knop voor optimalisatie om te vinden. Optimalisatie, latere analyse door de analist en risicobeoordeling zijn niet uitgevoerd.

Een long-short mean-reversionstrategie op 1H voor de Binance USD-M-perpetual van ETHUSDT, die uitgerekte z-score-afwijkingen van een korte SMA terugdraaide, maar alleen wanneer een ADX-trendfilter (ADX<25) bevestigde dat de markt geen trend vertoonde of zijwaarts bewoog. Tijdens trends bleef de strategie aan de zijlijn om niet tegen het momentum in te gaan.

Over 1,388 trades in meer dan 6 jaar (2019-2026) verloor de strategie overtuigend: totaalrendement -85.7%, Sharpe -1.94 (de volledige CI negatief, ci_high -1.14), profitfactor 0.72, verwachtingswaarde -$60.76 per trade en een maximale drawdown van 86.8% bij een winrate van 52.9%. Het resultaat was negatief in elk jaar en elk regime, met omgekeerde payoff-geometrie (gemiddelde winst $290 < gemiddeld verlies $455) en ~16% van de bruto-opbrengst opgegaan aan commissie.

Stratmill is een onderzoeks- en papertrading-tool, geen financieel advies of broker. Backtest- en paperresultaten zijn hypothetisch. Handelen brengt risico op verlies met zich mee.