Guarda come scaricare robot di trading gratuitamente
Ci trovi su Twitter!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Sistemi Esperti

RegimeRouter — classificatore di trend/intervallo con un registro del tasso di successo per regime - sistema esperto per MetaTrader 5

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist al  Freelance
  • Pakistan
  • 2106
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| Italian English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Visualizzazioni:
13
Valutazioni:
(2)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

RegimeRouter — classificatore di trend/range con un registro del tasso di vincita per regime


Il problema

Una regola che segue il trend perde denaro in un range. Una regola di ritorno alla media viene annientata in un trend. La maggior parte degli EA ne sceglie una e spera che il mercato collabori. La soluzione più comune è un singolo filtro ADX. L’ADX misura un solo parametro, la forza direzionale, e non dice nulla sul fatto che i rendimenti siano effettivamente persistenti o tendano a tornare alla media.

Come classifica

Su ogni barra chiusa misura tre proprietà indipendenti della serie di prezzi recente.

  • ADX — classica forza direzionale.
  • Esponente di Hurst — analisi del range riscalato (R/S) dei rendimenti logaritmici. Al di sopra di 0,5 la serie è persistente. Al di sotto di 0,5 è anti-persistente. A 0,5 si tratta di un percorso casuale.
  • Autocorrelazione Lag-1 — indica se un movimento tende a essere seguito da un altro movimento nella stessa direzione o da un rimbalzo.

Ciascuno esprime un voto: +1 per il trend, -1 per il range, 0 per indeciso. I voti vengono sommati. Se la somma supera la soglia `InpMinVotes` in una delle due direzioni, il regime è TREND o RANGE. Altrimenti è NEUTRO e l’EA non effettua alcuna operazione. Se uno qualsiasi dei tre indicatori non può essere calcolato, non esprime alcun voto e la barra risulta NEUTRA. Il punto fondamentale è la necessità di un consenso. Un solo indicatore equivale a un lancio di moneta con passaggi aggiuntivi.

Come funziona l’instradamento

Regime Modulo
TREND Rottura del massimo o del minimo della barra N, considerata solo nella direzione in cui puntano già l’EMA veloce e quella lenta.
RANGE Operare in controtendenza rispetto a uno z-score esteso del prezzo rispetto alla propria media mobile. Acquistare sulla coda bassa, vendere sulla coda alta.
NEUTRO Nulla.

Il registro

Ogni posizione viene aperta con un numero magico pari a InpMagicBase più l’ID del regime, in modo che il regime che ha generato un’operazione sia identificato nell’operazione stessa. All’avvio, l’EA esamina la cronologia delle operazioni, raggruppa le operazioni in base all’ID della posizione e ricostruisce il registro. Il registro rimane intatto in caso di riavvio e anche se l’EA viene spostato su un altro terminale.

Per ogni modulo riporta il tasso di vincita grezzo, illimite inferiore al 95% di Wilson, iltasso di vincita di pareggio implicito nella media delle vincite e delle perdite del modulo stesso, il fattore di profitto e un verdetto.

TREND 96 tr 38 W grezzo 39,6% wilson95 30,4% pareggio 34,2% PF 1,26 netto +734,84 [NON COMPROVATO]

I due numeri centrali sono quelli che contano. Un trend follower da 2R è redditizio al di sopra di circa il 34%. Un fade a 1R richiede una percentuale superiore al 50%. E una percentuale di vincita lorda su sei operazioni non è prova di nulla. Il verdetto consiste semplicemente nel verificare se il limite inferiore supera il punto di pareggio, che è l’unica versione di “questo modulo funziona” che regge su un campione ridotto.

L’opzione A/B

InpForceRegime disattiva il router e forza ogni operazione a passare attraverso un unico modulo. Eseguite lo stesso simbolo e lo stesso periodo tre volte — AUTO, poi ALWAYS_TREND, poi ALWAYS_RANGE — e otterrete una misura diretta dell’eventuale contributo del classificatore. I tre risultati vengono comunque registrati in un’esecuzione forzata, così potete vedere come si è comportato il modulo forzato sulle barre che il router avrebbe rifiutato.

Fallo prima di fidarti. L’idea del routing è un’ipotesi, non un risultato.

Backtest

H1 · dal 01/01/2026 al 20/09/2026 · 10.000 USD · Ritardo casuale abilitato · tutti i parametri predefiniti. Due simboli, entrambi visualizzati.

EURUSD H1

Metrica Valore
Utile netto totale +900,42
Utile lordo / perdita lorda 3 712,84 / 2 812,42
Fattore di profitto 1,32
Rendimento atteso 9,00
Fattore di recupero 1,71
Totale operazioni 100
Calcio massimo del saldo 505,32 (4,56%)
Massimo calo del patrimonio netto 527,80 (4,76%)
Modulo Operazioni Operazioni vincenti Dati grezzi Wilson 95% minimo Netto
ANDAMENTO 96 38 39,6% 30,4% +734,84
INTERVALLO 4 4 100,0% 51,0% +165,58

96 + 4 = 100 operazioni e +734,84 + 165,58 = +900,42, quindi il registro corrisponde esattamente al report del tester.

XAUUSD H1 — stesso EA, stesse impostazioni, stesso periodo

Parametro Valore
Utile netto totale −1 554,11
Saldo finale 8 445,89
Totale operazioni 85
Modulo Operazioni Vittorie Dati grezzi Wilson 95% minimo Netto
ANDAMENTO 78 26 33,3% 23,9% −1 576,33
INTERVALLO 7 4 57,1% 25,0% +22,22

78 + 7 = 85 operazioni e −1 576,33 + 22,22 = −1 554,11. Questa operazione è in perdita. La pubblico apposta accanto a quella vincente, perché un elenco che mostra solo il simbolo che ha funzionato non dice nulla sull'EA.

Cosa mostra e cosa non mostra questo risultato

Leggi questa parte prima di utilizzarlo.

  • Il modulo TREND non è stato verificato su nessuno dei due simboli. Sull’EURUSD la sua vincita media è stata di 93,35 e la sua perdita media di 48,49, quindi aveva bisogno di circa il 34,2% di operazioni vincenti solo per andare in pareggio. Ha vinto il 39,6%. Ma il limite inferiore del 95% di Wilson su quel tasso di vincita è del 30,4%, che è al di sotto del pareggio. Con questa dimensione del campione, il risultato è coerente con l’assenza totale di un vantaggio. Sull’XAUUSD lo stesso modulo ha registrato un 33,3% lordo e un 23,9% al limite inferiore, e ha generato una perdita. Il verdetto è lo stesso in entrambi i casi: non ci sono ancora prove sufficienti.
  • Ci vorrebbero circa 320 operazioni con il tasso di vincita dell’EURUSD affinché il limite inferiore superi il punto di pareggio. Un simbolo su H1 ha generato 100 in circa nove mesi, quindi si tratta di un problema di portafoglio, non di un problema di backtest più lungo.
  • Il modulo RANGE è sostanzialmente non testato. Quattro operazioni su EURUSD, sette su XAUUSD. Il tasso di successo del 100% su EURUSD non significa nulla, ed è proprio per questo che esiste la colonna di Wilson.
  • Non c’è alcun test fuori campione. Un periodo, un timeframe, due simboli.
  • La modellizzazione è stata effettuata su "ogni tick", non su tick reali. Le uscite sono lasciate allo SL e al TP del broker, quindi il percorso intrabar è importante. Eseguitelo nuovamente su tick reali prima di trarre conclusioni.

Lo pubblico perché l’apparato di misurazione è la parte utile, non perché abbia un vantaggio convalidato da vendervi. Eseguite il test A/B. Se il router non batte i propri due moduli sul vostro simbolo, anche questo è un dato degno di nota.

Note sull’esecuzione

  • I segnali vengono valutati alla chiusura della barra, quindi questo sistema è progettato per M15 e time frame superiori.
  • Le posizioni vengono aperte senza stop, poi gli stop vengono applicati in base al prezzo di esecuzione reale. Uno stop calcolato da un’istantanea pre-negoziazione potrebbe già essere non valido al momento dell’esecuzione dell’ordine.
  • Se l’assegnazione degli stop non va a buon fine, la posizione viene chiusa immediatamente anziché essere lasciata senza protezione.
  • Le distanze degli stop sono limitate al livello degli stop e al livello di congelamento propri del simbolo.
  • Le uscite corrispondono agli SL e ai TP del broker. Non è prevista alcuna chiusura forzata manuale a tempo.
  • Trailing stop ATR opzionale per le operazioni di tendenza, applicato al massimo una volta per barra e mai sulla barra di ingresso.
  • Una sola posizione alla volta. Su un conto a compensazione, un secondo ordine sullo stesso simbolo si fonde con la posizione esistente invece di diventare un'operazione a sé stante, il che comprometterebbe silenziosamente il registro.
  • Determinazione della dimensione del lotto in base al rischio, un limite di perdita giornaliero, un limite massimo giornaliero di operazioni, un filtro sullo spread, un rapporto minimo tra take-profit e spread e un filtro opzionale sulla sessione.

Dati di input principali

Input Impostazione predefinita Cosa fa
InpForceRegime Auto Forza un modulo per l'A/B testing del classificatore
InpMinVotes 2 Voti su tre necessari per confermare un regime
InpADXTrendLevel / InpADXRangeLevel 25 / 20 Soglie di voto ADX
InpHurstBars 256 Barre di rendimenti precedenti alla stima di Hurst
InpHurstAdaptive disattivato Valuta Hurst rispetto alla propria distribuzione anziché a livelli fissi
InpAutoCorrThreshold 0,05 L'autocorrelazione deve superare questo valore per essere presa in considerazione
InpBreakoutBars 20 Modulo Trend: massimo/minimo di N barre da superare
InpRangeZEntry 2,0 Modulo Range: z-score al quale effettuare il fade
InpRiskPercent 0,5 Rischio per operazione, % del saldo
InpMagicBase 772000 A questo viene aggiunto l'ID del regime

Nota sulla soglia di Hurst

È presente un parametro denominato InpHurstAdaptive , disattivato per impostazione predefinita.

Il valore standard per l’esponente di Hurst è 0,5. In pratica, però, tale valore non è corretto. Lo stimatore R/S presenta un bias verso l’alto su un campione finito, pertanto una stima su 256 barre di una serie ordinaria risulta ben al di sopra di 0,5. Misurato sull’EURUSD H1, i valori hanno registrato una media di 0,568 e sono scesi al di sotto di 0,45 solo due volte su 419 osservazioni. Rispetto a una banda fissa di 0,45 / 0,55, tale indicatore non misura nulla. Si tratta di un voto quasi permanente a favore del TREND.

Attivando InpHurstAdaptive si abbandona la scala assoluta e si pone invece una domanda relativa: la serie è più persistente di quanto lo sia stato recentemente questo simbolo? Vengono conservati gli ultimi N valori e il voto viene espresso sui percentili di quella cronologia piuttosto che su 0,5.

Il costo di questa scelta è reale. Per come è strutturato, il votante vota quindi RANGE su una quota fissa di barre, indipendentemente dall’andamento del mercato. Si tratta quindi di un’opzione, non di una riscrittura. È disattivata per impostazione predefinita perché i backtest sopra riportati sono stati eseguiti con questa opzione disattivata, e non voglio che l’impostazione predefinita fornita sia una configurazione per la quale non dispongo di risultati.

Nessuna strategia garantisce la redditività. Questo strumento offre una struttura per effettuare test con una metrica integrata. Non garantisce un vantaggio competitivo.

— Ali Rajput


Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/77535

One-Click Trade Manager — dimensione del lotto basata sul rischio con ordine di apertura, stop e obiettivo in un solo clic One-Click Trade Manager — dimensione del lotto basata sul rischio con ordine di apertura, stop e obiettivo in un solo clic

Calcola il lotto in base alla percentuale di rischio e alla distanza dello stop, quindi apre la posizione con lo stop loss e il take profit già impostati. Non effettua mai operazioni in modo autonomo.

Pending Panel MT5 — One-Click Pending Orders with OCO Pending Panel MT5 — One-Click Pending Orders with OCO

A chart panel for MT5 that places Buy Limit, Sell Limit, Buy Stop and Sell Stop pending orders with one click. Volume, distance and optional SL/TP are set on the panel; OCO cancels the opposite order automatically. Includes bulk delete, a live order list and automatic handling of broker STOPS_LEVEL and filling mode. Execution tool only - no signals, no guaranteed results.

Prior Bar Break Odds with Level Bars and a Rolling Hit Rate Prior Bar Break Odds with Level Bars and a Rolling Hit Rate

Measures, on the chart's own history, how often a bar takes out the prior high or the prior low after bullish and after bearish bars, at up to five levels spaced by the average range. Each level carries a probability bar, and a table scores the favored side over all bars and over the last 200.

ICT Premium / Discount and OTE - dealing range, standard deviations, IPDA ranges ICT Premium / Discount and OTE - dealing range, standard deviations, IPDA ranges

ICT dealing range from confirmed swings: premium and discount zones, equilibrium, the OTE band (62 - 79 %, 70.5 %), standard deviation targets and the IPDA 20 / 40 / 60-day ranges. No repaint. Alerts and EA buffers.