MetaTrader5
Babi Ngepet: L'Expert Advisor per MetaTrader 5 che Potenzia i Tuoi Trade
Parametri dell'Expert Advisor (Inputs) Il nostro EA offre diversi parametri esterni che puoi modificare per controllarne il comportamento: Parametri Generali Parametro Tipo Descrizione MagicNumber int Un identificatore unico per le operazioni dell'EA. InitialLot double La dimensione del lotto iniziale per il primo trade in una serie. AllowBuy bool Consente all'EA di aprire operazioni di acquisto (iniziali e Martingale). AllowSell bool Consente all'EA di aprire operazioni di vendita (iniziali e Martingale). TakeProfit int Un Take Profit fisso in punti/pips utilizzato per ordini pendenti (non per esecuzione di mercato). FindHighLowBackBars int Numero di barre precedenti da considerare per determinare il massimo e il minimo per il posizionamento degli ordini pendenti iniziali. ResetAfterBars int Numero di barre dopo le quali gli ordini pendenti iniziali verranno eliminati e rivalutati (se non è aperta alcuna posizione). Strategia Martingale Parametro Tipo Descrizione ReverseMartingale bool Se vero, le successive operazioni Martingale saranno nella direzione opposta all'ultima operazione della serie (tipicamente un approccio anti-Martingale o di copertura). Attualmente, se ReverseMartingale è falso, si apre nella stessa direzione. LotMultiplier double Il fattore per cui la dimensione del lotto viene moltiplicata per il prossimo trade nella serie in perdita (es. 2.0 significa raddoppiare il lotto). SecureProfitMartingaleTarget double Il profitto totale flottante (in valuta del conto) al quale l'intera serie di operazioni aperte verrà chiusa. DistanceMartingalePips int La distanza (in pips) che il prezzo deve muoversi contro il prezzo di apertura dell'ultima operazione prima di aprire una nuova operazione Martingale. MaxTradesInSeries int Il numero massimo di operazioni consentite in una singola serie Martingale. Strategia Temporale Parametro Tipo Descrizione AllowMonday... AllowFriday bool Flag per abilitare o disabilitare il trading in specifici giorni della settimana. ForbiddenDates string Un elenco separato da virgole di date (formato AAAA.MM.GG) in cui il trading è vietato. Panoramica delle Funzioni Fondamentali OnInit() (Inizializzazione) Imposta il MagicNumber dell'EA, la modalità margine e la deviazione. Reimposta lo stato di Martingale delle variabili (s_currentLot, s_totalTradesInSeries, ecc.) ai loro valori iniziali, preparando per un nuovo inizio. OnDeinit() (Deinizializzazione) Una funzione semplice per la pulizia, che stampa un messaggio quando l'EA viene fermato o rimosso. IsTradingDateAllowed() e IsTradingDayAllowed() (Filtri di Trading) Queste funzioni controllano il giorno e la data attuali rispetto agli input definiti dall'utente (AllowMonday a AllowFriday e ForbiddenDates) per determinare se il trading è permesso. OpenTradeLogic(ENUM_ORDER_TYPE type, string tradeComment) (Esecuzione di Mercato) Questa funzione gestisce l'apertura di nuove posizioni di mercato (Buy o Sell). Valida e normalizza la dimensione del lotto rispetto al minimo, massimo e passo del broker. Controlla la margine libera sufficiente utilizzando CheckMargin(). Esegue il trade senza un Take Profit o Stop Loss fisso (tp_calculated è 0). Aggiorna le variabili globali dello stato di Martingale: s_currentLot, s_lastOpenPrice, s_seriesType, e s_totalTradesInSeries. CloseAllPositions() Itera attraverso tutte le posizioni aperte attualmente e chiude quelle aperte da questo EA (corrispondenti al MagicNumber). PendingOrders(ENUM_ORDER_TYPE type, double price, double lotSize, string comment) (Posizionamento Ordine Pendenti) Questa funzione posiziona ordini di Buy Limit o Sell Limit: Valida la dimensione del lotto e controlla la sufficienza di margine. Valida il prezzo di ingresso rispetto alla distanza minima del broker (SYMBOL_TRADE_STOPS_LEVEL). Calcola un Take Profit fisso (tp) basato sull'input TakeProfit. Invia la richiesta di trade. Nota: La funzione UpdateHighLowAndOrders chiama questa per posizionare gli ordini Buy Limit e Sell Limit iniziali. UpdateHighLowAndOrders() (Logica di Ingresso Iniziale) Questo è il meccanismo di ingresso iniziale quando non ci sono posizioni aperte: Guarda indietro per FindHighLowBackBars per trovare il Massimo Massimo e il Minimo Minimo. Calcola priceSellLimit (Massimo Massimo + 1 tick) e priceBuyLimit (Minimo Minimo - 1 tick). Controlla se esistono ordini Buy Limit e Sell Limit con il MagicNumber dell'EA. Posiziona un ordine Sell Limit appena sopra il recente massimo massimo e un ordine Buy Limit appena sotto il recente minimo minimo, ciascuno utilizzando l'InitialLot. OnTick() (Logica Principale) Il cuore della logica di esecuzione dell'EA: Controllo del Tempo: Previne calcoli ridondanti sullo stesso tick. Controllo di Filtro: Se il trading non è consentito per giorno/data, elimina tutti gli ordini pendenti. Controllo degli Obiettivi di Profitto (Uscita dalla Serie): Se eaHasOpenPositions è vero E il profitto totale flottante è ≥ SecureProfitMartingaleTarget, chiama CloseAllPositions() e reimposta tutte le variabili di stato di Martingale per iniziare una nuova serie. Posizionamento Ordine Iniziale: Se !eaHasOpenPositions E il trading è consentito, reimposta lo stato di Martingale e controlla se è formata una nuova barra. Se è formata una nuova barra, controlla se barsCount è ≥ ResetAfterBars. Se sì, elimina gli ordini pendenti e chiama UpdateHighLowAndOrders() per posizionare nuovi ordini iniziali. Se no, chiama solo UpdateHighLowAndOrders(). Logica dei Passi di Martingale: Se eaHasOpenPositions è vero E s_totalTradesInSeries è < MaxTradesInSeries: Controlla se il profitto totale flottante è negativo E il prezzo si è mosso contro l'ultima operazione aperta di almeno DistanceMartingalePips. Se entrambe le condizioni sono soddisfatte, calcola il nextLot moltiplicando s_currentLot per LotMultiplier. Determina la direzione dell'ordine da aprire (nella stessa direzione della serie o inversa, a seconda di ReverseMartingale). Chiama OpenTradeLogic() per aprire la nuova posizione moltiplicata, continuando la serie Martingale. Riepilogo della Strategia Il
2025.10.05