Unisciti alla nostra fan page
- Visualizzazioni:
- 52
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
Parametri dell'Expert Advisor (input)
L'EA dispone di diversi parametri esterni che l'utente può modificare per controllarne il comportamento:
Parametri generali
| Parametro | Tipo | Descrizione |
| Numero magico | int | Un identificatore unico per le operazioni dell'EA. |
| Lotto iniziale | doppio | La dimensione del lotto iniziale per il primo trade di una serie. |
| AllowBuy | bool | Flag per consentire all'EA di aprire operazioni di acquisto (iniziale e Martingala). |
| ConsentiVendita | bool | Flag per consentire all'EA di aprire operazioni di vendita (iniziale e Martingala). |
| TakeProfit | int | Un Take Profit fisso in punti/pips utilizzato quando si inseriscono ordini pendenti (ma non per l'esecuzione a mercato). |
| TrovaAlteBasseBarre | int | Il numero di barre precedenti da guardare indietro per determinare il massimo e il minimo per l'inserimento iniziale degli ordini pendenti. |
| Azzeramento dopo le barre | int | Numero di barre dopo le quali gli ordini pendenti iniziali saranno cancellati e rivalutati (se non è aperta alcuna posizione). |
Strategia Martingala
| Parametro | Tipo | Descrizione |
| InvertiMartingala | bool | Se è vero, le operazioni Martingala successive saranno nella direzione opposta dell'ultima operazione della serie (in genere si tratta di un approccio anti-Martingale o di copertura, ma il codice apre nella stessa direzione se è falso). La logica attuale suggerisce di aprire nella stessa direzione se ReverseMartingale è falso. |
| Moltiplicatore di lotto | doppio | Il fattore per il quale la dimensione del lotto viene moltiplicata per il prossimo trade della serie in perdita (ad esempio, 2 .0 significa raddoppiare il lotto). |
| SecureProfitMartingaleTarget | doppio | Il profitto totale fluttuante (in valuta del conto) al quale verrà chiusa l'intera serie di trade aperti. |
| DistanzaMartingalaPips | int | La distanza (in pip) che il prezzo deve percorrere rispetto al prezzo di apertura dell'ultimo trade prima che venga aperto un nuovo trade Martingala. |
| Massimo di compravendite nella serie | int | Il numero massimo di operazioni consentite in una singola serie Martingala. |
Strategia del tempo
| Parametro | Tipo | Descrizione |
| ConsentiLunedì... PermettiVenerdì | bool | Flag per abilitare o disabilitare il trading in determinati giorni della settimana. |
| Date proibite | stringa | Un elenco separato da virgole di date (formato YYYY.MM.DD) in cui il trading è vietato. |
Panoramica delle funzioni principali
OnInit() (Inizializzazione)
Imposta il MagicNumber, la modalità di margine e la deviazione dell'EA. Riporta le variabili di stato della Martingala (s_currentLot , s_totalTradesInSeries , ecc.) ai loro valori iniziali, preparando un nuovo inizio.
OnDeinit() (Deinizializzazione)
Una semplice funzione di pulizia, che stampa un messaggio quando l'EA viene interrotto o rimosso.
IsTradingDateAllowed() e IsTradingDayAllowed() (Filtri di trading)
Queste funzioni controllano il giorno e la data correnti rispetto agli input definiti dall'utente (AllowMonday to AllowFriday e ForbiddenDates) per determinare se il trading è consentito.
OpenTradeLogic(ENUM_ORDER_TYPE type, string tradeComment) (Esecuzione del mercato)
Questa funzione gestisce l'apertura di nuove posizioni di mercato (acquisto o vendita).
-
Convalida e normalizza le dimensioni del lotto rispetto alle dimensioni minime, massime e di passo del broker.
-
Verifica la presenza di un margine libero sufficiente utilizzando CheckMargin() .
-
Esegue l'operazione senza un Take Profit o uno Stop Loss fisso (tp_calculated è 0).
-
Aggiorna le variabili di stato globali della Martingala: s_currentLot , s_lastOpenPrice , s_seriesType e s_totalTradesInSeries .
ChiudiTutteLePosizioni()
Itera tutte le posizioni attualmente aperte e chiude quelle che sono state aperte da questo EA (in base al MagicNumber).
PendingOrders(ENUM_ORDER_TYPE type, double price, double lotSize, string comment) (Inserimento di ordini pendenti)
Questa funzione inserisce ordini Buy Limit o Sell Limit:
-
Convalida la dimensione del lotto e controlla che il margine sia sufficiente.
-
Convalida il prezzo di entrata rispetto alla distanza minima del broker ( SYMBOL_TRADE_STOPS_LEVEL ).
-
Calcola un Take Profit fisso ( tp ) in base all'input TakeProfit.
-
Invia la richiesta di negoziazione. Nota: la funzione UpdateHighLowAndOrders richiama questa funzione per piazzare gli ordini Buy Limit e Sell Limit iniziali.
UpdateHighLowAndOrders() (Logica di entrata iniziale)
È il meccanismo di entrata iniziale quando non ci sono posizioni aperte:
-
Esamina le barre posteriori FindHighLowBackBars per trovare il massimo e il minimo.
-
Calcola priceSellLimit (Highest High + 1 tick) e priceBuyLimit (Lowest Low - 1 tick).
-
Controlla se esistono già ordini Buy Limit e Sell Limit con il MagicNumber dell'EA.
-
Inserisce un ordine Sell Limit iniziale appena sopra il massimo recente e un ordine Buy Limit appena sotto il minimo recente, ciascuno utilizzando l'InitialLot.
OnTick() (Logica principale)
Il cuore della logica di esecuzione dell'EA:
-
Controllo del tempo: Impedisce calcoli ridondanti sullo stesso tick.
-
Controllo del filtro: Se il trading non è consentito per giorno/data, cancella tutti gli ordini pendenti.
-
Controllo dell'obiettivo di profitto (Series Exit): Se eaHasOpenPositions è vero E totalFloatingProfit è ≥ SecureProfitMartingaleTarget, chiama CloseAllPositions() e azzera tutte le variabili di stato Martingale per iniziare una nuova serie.
-
Posizionamento iniziale dell'ordine: Se !eaHasOpenPositions E il trading è consentito, azzera lo stato Martingala e controlla se si è formata una nuova barra.
-
Se si forma una nuova barra, controlla se barsCount è ≥ ResetAfterBars . In caso affermativo, cancella gli ordini in sospeso e chiama UpdateHighLowAndOrders() per piazzare nuovi ordini iniziali. In caso contrario, richiama semplicemente UpdateHighLowAndOrders().
-
-
Logica del passo Martingala: Se eaHasOpenPositions è vero E s_totalTradesInSeries è $< MaxTradesInSeries`:
-
Controlla se totalFloatingProfit è negativo e se il prezzo si è mosso rispetto all'ultima operazione aperta di almeno DistanceMartingalePips.
-
Se entrambe le condizioni sono soddisfatte, calcola il lotto successivo moltiplicando s_currentLot per LotMultiplier.
-
Determina la direzione dell'ordineToOpen (la stessa direzione della serie o quella inversa, in base a ReverseMartingale).
-
Richiama OpenTradeLogic() per aprire la nuova posizione moltiplicata, continuando la serie Martingala.
-
Riassunto della strategia
L'EA "Babi Ngepet" implementa una strategia Martingala rischiosa ma potenzialmente ad alto rendimento, combinata con un'entrata iniziale di breakout/reverse range:
-
Ingresso iniziale: L'EA pone un limite iniziale di acquisto (sotto il minimo recente) e un limite di vendita ( sopra il massimo recente). Ciò suggerisce un'ipotesi iniziale di comportamento range-bound: si acquista quando il prezzo scende al minimo e si vende quando il prezzo sale al massimo.
-
Gestione degli scambi: Se una delle operazioni iniziali viene attivata e la posizione va in perdita complessiva (profitto fluttuante negativo) e il prezzo continua a muoversi contro le posizioni aperte per una distanza definita, l'EA apre una nuova posizione nella stessa direzione con una dimensione di lotto maggiore (Martingala).
-
Strategia di uscita: La serie di operazioni continua ad aumentare la dimensione del lotto fino a quando il profitto fluttuante aggregato di tutte le operazioni della serie raggiunge il SecureProfitMartingaleTarget, a quel punto tutte le posizioni vengono chiuse e l'EA si reimposta per una nuova serie.
Attenzione: La strategia Martingala è nota per gli elevati drawdown e per l'alto rischio di perdita di capitale, poiché la dimensione del lotto aumenta dopo ogni fase di perdita.
Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/64444
UtterFractals
Questo indicatore, a differenza dei "frattali" standard e di ogni sorta di zig-zag, mostra la "struttura interna del mercato", il più vicino possibile a quella reale.
EQUILIBRIO-2011
Gridder multicurrency con limitazione del rischio (versione presentata all'Automated Trading Championship 2011 e aggiornata).
Consulente esperto di teoria delle probabilità per il Forex
Consulente di teoria della probabilità
Livelli frattali
L'indicatore FractalLevels visualizza un canale costruito utilizzando i frattali.