MultiStrat Engine EA
- Experts
- Julien Favre
- Versione: 1.0
- Attivazioni: 5
L'EA MultiStrat Engine si basa su una regola fondamentale: ogni operazione aperta è un'operazione completamente assunta . Senza Stop Loss, nessuna perdita si concretizza mai : le posizioni vengono mantenute fino al ritorno all'equilibrio ( Punto Zero ) .
Un Expert Advisor (EA) progettato per automatizzare completamente la gestione delle posizioni su tutti i tipi di strumenti finanziari (Forex, azioni, indici, materie prime ). Incorpora un'architettura modulare eccezionalmente ricca, che combina oltre 28 diverse modalità di trading, una gestione dinamica del rischio, un sistema di compensazione delle commissioni di brokeraggio e una dashboard HTML interattiva per l'analisi comparativa tramite backtest.
Architettura generale
Expert Advisor (EA) si basa su una netta separazione tra le posizioni di acquisto e di vendita , ognuna con i propri parametri indipendenti : modalità di trailing stop , timeframe, dimensione del lotto, take profit , stop loss, intervalli degli ordini e comportamento dinamico. Questa dualità consente di combinare strategie asimmetriche o perfettamente simmetriche a seconda delle esigenze del trader.
Oltre 28 metodi di trading
Lato ACQUISTO :
- BUY_MODE_NONE — Inserimento di un ordine BuyStop con trailing semplice e take profit individuale fisso per posizione.
- BUY_MODE_NONE_CANDLE — Identico, ma la chiusura globale viene attivata dalla candela se l' utile netto complessivo è positivo.
- BUY_CLOSE_CANDLE — Chiudi tutte le posizioni di acquisto su ogni nuova candela se il profitto totale è positivo.
- BUY_CUMUL_SINGLE — Take Profit cumulativo virtuale: la somma ponderata dei pip ( al netto delle commissioni) di tutte le posizioni BUY deve raggiungere il TP configurato prima della chiusura globale.
- BUY_CUMUL_MULTI — Variante CUMUL: il prezzo obiettivo viene moltiplicato per il rapporto volume totale / volume base, compensando l'accumulo dei lotti.
- BUY_CUMUL_POS — TP progressivo in base al numero di posizioni: ogni posizione aggiuntiva riduce il TP unitario secondo un fattore configurabile, con un valore minimo.
- BUY_HEDGE_CANDLE — Ogni operazione di ACQUISTO genera automaticamente una posizione di copertura di VENDITA di dimensioni proporzionali; si chiude sulla candela se il profitto complessivo è positivo .
- BUY_HEDGE_SINGLE — Copertura automatica + Take Profit cumulativo SINGOLO.
- BUY_HEDGE_MULTI — Copertura automatica + moltiplicatore di take profit cumulativo.
- BUY_HEDGE_SINGLE_ADD_SELL_TP — Copertura singola con compensazione integrata delle perdite fluttuanti dalla copertura SELL nel calcolo del TP di acquisto.
- BUY_HEDGE_MULTI_ADD_SELL_TP — Copertura MULTI con la stessa remunerazione.
- ACQUISTO — Copertura diretta permanente: ad ogni nuovo acquisto eseguito , la vecchia copertura di vendita viene sostituita da una nuova . La copertura di vendita viene chiusa automaticamente alla chiusura di un acquisto andato a buon fine .
- BUY_DIRECT_HEDGE_ADD_SELL_TP — Copertura diretta con inclusione delle perdite di vendita nel prezzo obiettivo di acquisto.
- BUY_DIRECT_HEDGE_ADD_SELL_TP_AUTO_MAX — Identico al calcolo automatico del prezzo massimo di acquisto tramite medie mobili.
- ACQUISTO_CHIUSURA_PARTIALE — Sofisticato sistema di chiusura parziale : il lotto principale viene suddiviso in unità , le unità ausiliarie vengono posizionate progressivamente in base al livello della griglia raggiunto e i profitti combinati dell'unità ausiliaria + dell'unità principale innescano una progressiva erosione della transazione principale.
- BUY_LADDER_PROFIT — Chiusura individuale di ciascuna posizione non appena i suoi pip netti raggiungono il TP ( livello di profitto ) configurato .
- COMPRA_ONDE_PER_FARE_SUPER — Chiusura rapida non appena viene raggiunto il 30% del TP, quindi riapertura immediata per "cavalcare" l'onda successiva.
- BUY_VIX_REVERSION — Specializzazione VIX : chiusura se il VIX supera le soglie per il ritorno alla media.
- ACQUISTA_MOMENTUM_BURST — Chiusura rapidissima al 20% del take profit, poi ingressi multipli con volumi ridotti per capitalizzare sugli impulsi di momentum.
- ACQUISTA_SCALP_ACCUMULATOR — Scalpa al 15% del TP per posizione, seguito da una riapertura immediata per accumulare micro- guadagni frazionari .
- BUY_VIX_OSCILLATION_MASTER — Gestione avanzata del VIX multizona con regole di chiusura dipendenti dal prezzo di ingresso e dal livello VIX corrente.
- ACQUISTO_PROFITTO_COMPONENTE — Reinvestimento amplificato : a seconda del profitto realizzato , il lotto di reingresso viene moltiplicato ( fino a x2 ) .
- BUY_BREAKOUT_SURFER — Rilevamento momentum su M1 : chiusura al 70% del TP, rientro condizionato in caso di rilevamento di breakout .
- BUY_ADAPTIVE_PYRAMID — Take Profit adattivo calcolato in base alla volatilità ( deviazione standard dei prezzi di apertura) e al numero di posizioni aperte.
- BUY_GRID_RECOVERY_SMART — Rilevamento intelligente del recupero della griglia : chiudi se il profitto è positivo e il prezzo è superiore alla mediana della griglia , quindi rientra con volume ridotto .
- BUY_PATIENCE_ACCUMULATOR — Il Take Profit diminuisce nel tempo ( -1 % all'ora), per incoraggiare la pazienza e compensare le posizioni mantenute a lungo.
- BUY_FIBONACCI_ZONES — Chiudere ai livelli di Fibonacci del 50%, 61,8% o 78,6% calcolati dai prezzi di apertura delle posizioni attive.
- BUY_VOLATILITY_RIDER — Take Profit adattivo basato su ATR M1: maggiore è la volatilità , minore è il Take Profit per assicurarsi rapidamente i guadagni.
- BUY_PROFIT_PYRAMID — Chiusura individuale della piramide al 60% del TP, con riapertura di un nuovo strato se rimangono attive almeno 2 posizioni.
Le modalità di VENDITA sono perfettamente simmetriche , con le proprie varianti SINGLE, MULTI, CANDLE, DIRECT_HEDGE, ADD_BUY_TP, ecc.
sistema di griglia dinamico
EA supporta due regimi batch per ciascun lato :
- Modalità FISSA : lotto costante configurabile tramite il parametro LotSizeBuy / LotSizeSell.
- Modalità GRIGLIA : progressione geometrica dei lotti secondo VolumeBase × MoltiplicatoreGriglia^N, con un limite massimo pari a VolumeBaseMassimo. Il moltiplicatore può essere 1,0 (griglia lineare ) o superiore (griglia martingala).
La distanza tra gli ordini (DistanceOrderBuy/Sell) e la soglia di riaggiustamento ( TrailingDistanceOrderBuy /Sell) controllano con precisione il riposizionamento degli ordini pendenti ad ogni tick o candela.
Gestione degli ordini
La funzione ManagePendingOrders riposiziona automaticamente gli ordini BuyStop, BuyLimit, SellStop e SellLimit per mantenerli alla distanza corretta dal prezzo corrente. Incorpora la logica NewOrdersAtHigherPrice (dinamica): in modalità "solo basso" per gli ordini di acquisto, vengono mantenuti solo gli ordini inferiori al minimo corrente ; i duplicati troppo vicini vengono eliminati . Un meccanismo di protezione impedisce l'eliminazione dell'ultimo ordine/posizione rimanente.
Compensazione automatica delle commissioni di intermediazione
commissioni effettivamente pagate per posizione (tramite la cronologia delle transazioni), gli swap accumulati e stima la futura commissione di uscita. Queste commissioni vengono convertite in pip tramite MoneyToPoints e aggiunte automaticamente al Take Profit (TP) di ciascuna posizione (AdjustTPWithRealFees), garantendo che ogni chiusura sia effettivamente redditizia al netto delle commissioni. Un sistema di caching configurabile (CommissionCacheSeconds) impedisce ricalcoli eccessivamente frequenti .
Gestione automatica di siepi e rami
Le modalità HEDGE generano automaticamente una gamba opposta ad ogni nuova apertura . In DIRECT_HEDGE , viene mantenuta simultaneamente una sola gamba SELL con posizioni BUY attive, che viene sostituita ad ogni nuovo acquisto . La chiusura di una posizione BUY vincente (rilevata tramite OnTradeTransaction e ProcessDealTicket) attiva automaticamente la chiusura delle gambe SELL associate . Il rapporto di lotto di copertura è configurabile tramite preset (1:1, 1:2, 1:3, 1:4, 2:1, 3:1) o un valore personalizzato .
segnali virtuali EDGE
Le modalità di trading HEDGE utilizzano segnali virtuali : invece di inserire un ordine pendente tradizionale, l'Expert Advisor (EA) mantiene un segnale interno (g_buyEdgeVirtualSignalActive) con trailing dinamico. Il segnale viene convertito in un'operazione effettiva solo quando il prezzo lo incrocia , minimizzando i falsi allarmi e consentendo la ricalibrazione automatica se il vincolo di distanza cambia.
Prezzo massimo dinamico di acquisto (MA)
Il parametro MaximumPurchasePriceSource calcola automaticamente il prezzo massimo di acquisto in base a due medie mobili configurabili ( periodo , metodo EMA /SMA/SMMA/LWMA, timeframe). La media delle due medie mobili viene compensata da una percentuale configurabile ( MaximumPurchasePriceAutoOffsetPct) per creare una zona di sicurezza dinamica . Una linea arancione sul grafico indica il livello corrente .
sistema avanzato di chiusura parziale ( CHIUSURA_PARTIZIONALE )
Questa modalità esclusiva suddivide automaticamente ogni lotto principale in unità ottimali (adattate al SYMBOL_VOLUME_STEP ). Le operazioni ausiliarie vengono piazzate sul mercato in base al livello della griglia raggiunto. Quando la combinazione di profit_helper e main_unit_profit raggiunge il take profit target, l'operazione ausiliaria viene chiusa e un'unità dell'operazione principale viene ridotta ( PositionClosePartial ) . Il ciclo si ripete fino all'esaurimento completo dell'operazione principale .
Gestione avanzata del tempo
Ogni lato ( ACQUISTO /VENDITA) ha un timeframe indipendente con ora e minuto di inizio configurabili . Il calcolo della validità (IsValidTradingTime) allinea i trigger a cicli precisi a partire dall'ora di inizio , prevenendo duplicati intra -candela. Dopo una chiusura , una logica di " riavvio rapido" consente l'ingresso nella prima metà del ciclo successivo senza attendere il successivo allineamento completo. Un parametro opzionale, BlockTradingAroundSessionEdges , blocca tutte le negoziazioni nei 5 minuti intorno all'apertura o alla chiusura delle sessioni.
Controllo di bilancio e tutela del capitale
La funzione CanAffordNextTrade simula il costo totale (posizioni esistenti + nuova operazione) nel caso in cui il prezzo tornasse a zero e blocca qualsiasi nuova apertura se tale costo supera il capitale allocato (MaxAccountBalance nel backtesting , BackTestStopThreshold nel trading reale). Questo meccanismo di protezione impedisce richieste di margine involontarie indipendentemente dalla configurazione della griglia.
Esclusione dei periodi (periodi fantasma)
È possibile escludere fino a due periodi di calendario dal backtest. L'Expert Advisor (EA) attende la chiusura naturale di tutte le posizioni aperte prima di sospendere qualsiasi nuova attività durante il periodo fantasma . Il numero di giorni esclusi viene automaticamente detratto dal calcolo dei periodi senza profitto per evitare di influenzare negativamente le statistiche di performance.
Sistema di reportistica mensile e dashboard HTML
Al termine di ogni backtest, l'Expert Advisor (EA) genera un file CSV cumulativo (backtest_monthly_totals.csv) che registra tutte le esecuzioni con: punteggio OnTester, totali mensili, drawdown massimo, numero massimo di giorni senza vincite e parametri di identificazione . Per ogni esecuzione viene rigenerata una dashboard HTML interattiva ( backtest_monthly_totals.html ) che consente il confronto visivo di tutti i backtest tramite grafici a torta mensili, tabelle di classificazione e due punteggi: il rendimento puro ( OnTester) e un punteggio bilanciato ( che penalizza l'irregolarità mensile tramite la deviazione standard normalizzata ) . I filtri dinamici (numero visualizzato , ponderazione dell'irregolarità , esclusione dei mesi negativi ) sono accessibili direttamente nel browser senza ricaricare la pagina.
Criteri per la terminazione automatica del backtest
Diversi meccanismi di arresto anticipato proteggono l'ottimizzazione :
- Sfondo di drawdown : interrompi se saldo − patrimonio netto ≥ BackTestStopThreshold.
- Mese del calendario non positivo : opzione StopIfNonPositiveClosedMond per interrompere non appena un mese intero si chiude a ≤ € 0 .
- Filtro a finestra scorrevole mensile : si arresta se l'utile degli ultimi N mesi chiusi è inferiore alla soglia MonthlyMinProfitThreshold.
- Giorni senza guadagni : interrompi se non si registrano operazioni vincenti per X giorni di calendario consecutivi ( esclusi i periodi fantasma ) .
Visualizzazione grafica in tempo reale
Un pannello configurabile (colori, dimensioni, posizioni) visualizza in tempo reale per ogni asset/magic number monitorato : numero di posizioni BUY/SELL aperte, orario del broker, spread corrente, tempo al prossimo ordine, livelli di saldo zero (punto di pareggio long e short) con linee orizzontali sul grafico, nonché profitti/perdite su 7 periodi ( float, giorno, ieri, 7 giorni, 14 giorni, mese corrente, mese precedente ) con colorazione dinamica verde/rossa. Il TP virtuale è tracciato su una linea sul grafico per le modalità cumulative.
Trailing Stop Loss
lati è disponibile uno stop loss dinamico standard con TrailingStartBuy /Sell (soglia di attivazione in pip) e TrailingStopLossBuy/Sell (distanza di mantenimento). Nelle modalità CUMUL e HEDGE, lo stop loss dinamico viene calcolato sulla somma ponderata dei pip di tutte le posizioni attive, non posizione per posizione.
Compatibilità e configurazione
- Compatibile con tutti gli strumenti MT5 (Forex, CFD su azioni, indici, materie prime , VIX ).
- Numero magico configurabile per consentire la coesistenza di più istanze sullo stesso account .
- Spread personalizzato nei backtest per simulare condizioni realistiche .
- È possibile attivare/ disattivare i log di debug per evitare di compromettere le prestazioni di ottimizzazione.
- Verifica della coerenza dei parametri all'avvio con blocco in caso di configurazione non valida .
La funzione Trailing SL è attiva solo nelle seguenti modalità
Lato ACQUISTO :
- MODALITÀ_ACQUISTO_NESSUNA
- ACQUISTA_DIRETTAMENTE_HEDGE
- ACQUISTA_DIRETTA_COPERTURA_AGGIUNGI_VENDITA_TP (famiglia)
- ACQUISTA_CUMUL_SINGOLO
- ACQUISTA_CUMUL_MULTI
- ACQUISTA SIEPE SINGOLA
- ACQUISTA_HEDGE_MULTI
- ACQUISTA_COPERTURA_SINGOLA_AGGIUNGI_VENDI_TP
- ACQUISTA_COPERTURA_MULTI_AGGIUNGI_VENDI_TP
- ACQUISTA_CUMUL_POS
Lato VENDITA :
- MODALITÀ DI VENDITA_NESSUNA
- VENDI_DIRETTA_COPERTURA
- VENDI_COPERTURA_DIRETTA_AGGIUNGI_ACQUISTA_TP
- VENDI_CUMUL_SINGOLO
- VENDITA_CUMUL_MULTI
- VENDI SIEPE SINGOLA
- VENDITA_COPERTURA_MULTI
- VENDI_COPERTURA_SINGOLO_AGGIUNGI_ACQUISTA_TP
- VENDI_COPERTURA_MULTI_AGGIUNGI_ACQUISTA_TP
- VENDITA_CUMUL_POS
