1. Tipi di Enum (enumJnsSignal, enumOrderType)
enumJnsSignal: Questo enum definisce il tipo di segnale utilizzato nel nostro sistema di trading. Ci sono due opzioni di segnale:
eTypeCrossMA: Utilizza il segnale di Incrocio 2 MA (il crossing di due Moving Averages).eTypeTrend: Segue il trend utilizzando Moving Averages e Stochastic.
enumOrderType: Questo enum definisce il tipo di ordine:
eBuy: Un ordine di Acquisto.eSell: Un ordine di Vendita.eNone: Nessun ordine eseguito.
2. Parametri di Input
- inMagicNumber: Un numero magico unico utilizzato per distinguere gli ordini di questo EA.
- inLotSize: La dimensione iniziale del lotto per ciascun ordine.
- inMultiply: Il fattore moltiplicativo utilizzato nella strategia della dimensione del lotto.
- inJarakLayer: La distanza in pip tra le posizioni di trading nella strategia a griglia/layer.
- inMAPeriodFast & inMAPeriodSlow: I periodi per le Moving Averages veloce e lenta.
- inSTOKPeriod, inSTODPeriod, inSTOSlowing: Parametri per l'Oscillatore Stocastico.
- inTakeProfit & inStopLoss: Le impostazioni per Take Profit e Stop Loss.
3. Struttura dataTrades
Questa struttura viene utilizzata per memorizzare dati relativi alle posizioni di trading aperte, come il numero totale di posizioni (ttlPos), il prezzo medio delle posizioni (hargaTA, hargaTB) e il volume totale (ttlLot).
4. Funzione OnInit()
Questa funzione gestisce l'inizializzazione dell'EA, compresa la convalida dei parametri di input (ad esempio, assicurandosi che il periodo della MA veloce sia minore di quello della MA lenta) e la creazione di handle per gli indicatori MA e Stocastico.
5. Funzione OnTick()
Questa è la funzione principale eseguita ogni volta che il prezzo si muove (tick).
- Chiama la funzione per controllare un nuovo segnale con GetSignal(), e se viene trovato un segnale, manageTrading() viene utilizzato per eseguire operazioni.
- Chiama anche setTPSL() per assicurarsi che Take Profit e Stop Loss siano sempre aggiornati.
6. Funzione isNewCandle()
Questa funzione rileva se è stata formata una nuova candela. Questo è importante perché l'EA controlla i segnali solo sulla formazione di nuove candele.
7. Funzione GetSignal()
Questa funzione determina se esiste un segnale di trading valido in base alla strategia selezionata:
- Per eTypeCrossMA, il segnale è determinato dall'incrocio delle Moving Averages veloce e lenta.
- Per eTypeTrend, il segnale utilizza conferma da MA e Stocastico.
8. Funzione manageTrading()
Questa funzione gestisce l'esecuzione delle operazioni.
- Se viene rilevato un segnale valido, l'EA apre una posizione con la dimensione del lotto determinata utilizzando la funzione getLotSize().
- Viene applicata anche una strategia a griglia/layer per aprire posizioni aggiuntive in base alla distanza di prezzo (
inJarakLayer).
9. Funzione updateDataTrades()
Questa funzione aggiorna i dati relativi alle posizioni di trading in corso, come il calcolo del prezzo medio e del volume totale delle posizioni aperte.
10. Funzione openTrade()
Questa funzione apre una nuova posizione di trading basata sul segnale generato e sulla dimensione del lotto calcolata. Utilizza OrderSend() per eseguire l'ordine.
11. Funzione setTPSL()
Questa funzione imposta o aggiorna il Take Profit e lo Stop Loss per ciascuna posizione aperta.
12. Funzione modifTPSL()
Questa funzione modifica il Take Profit e lo Stop Loss delle posizioni esistenti se i valori differiscono da quelli precedentemente impostati.
13. Funzione validateLot()
Questa funzione assicura che la dimensione del lotto utilizzata sia compresa nell'intervallo minimo e massimo consentito, nonché in linea con il passo minimo del lotto (gLotStep).
14. Funzione getLotSize()
Questa funzione calcola la dimensione del lotto da utilizzare basandosi sulla dimensione iniziale del lotto e sul numero di posizioni già aperte, tenendo conto del fattore moltiplicativo (inMultiply).
Questo codice è progettato per catturare le tendenze di mercato e gestire automaticamente le posizioni di trading utilizzando segnali tecnici provenienti da Moving Averages e Stocastico.
Post correlati
- MQL5 Wizard: Creare Trading Signals con Morning/Evening Stars e MFI per MetaTrader 5
- MQL5 Wizard: Strategia di Trading con Dark Cloud Cover/Piercing Line e RSI
- Guida all'Utilizzo del MQL5 Wizard: Trading con Pattern di Candele e Indice CCI
- MQL5 Wizard: Crea Expert Advisor per segnali di trading basati su Dark Cloud Cover e Piercing Line con CCI
- MQL5 Wizard: Creare Trade Signals con Hammer/Hanging Man e RSI