Idea di: Vladimir Pastushak.
Codice MQL5 di: Vladimir Karputov.
Questo EA si basa sull'indicatore Moving Average, implementando tutte le funzioni preparatorie e di trading come classe di trading CMoving in un file separato chiamato Moving.mqh.
Impostazioni
- magic number - identificativo unico dell'EA;
- Lots - volume della posizione (può essere specificato un volume di posizione maggiore di zero o una dimensione del rischio maggiore di zero);
- Rischio - rischio in percentuale del margine libero per trade (può essere specificato un volume di posizione maggiore di zero o una dimensione del rischio maggiore di zero);
- MA: periodo - indicatore Moving Average: Timeframe;
- MA: periodo di media - indicatore Moving Average: Periodo di media;
- MA: spostamento orizzontale - indicatore Moving Average: Spostamento orizzontale;
- MA: tipo di smoothing - indicatore Moving Average: Metodo di media;
- MA: tipo di prezzo - indicatore Moving Average: Tipo di prezzi su cui viene calcolato l'indicatore;
- Take Profit - Take Profit (per il caso in cui sia aperta una posizione);
- Moltiplicatore di lotti per una serie di posizioni - aumento del volume di una posizione per una serie di posizioni;
- Distanza dalla Moving Average - distanza dall'indicatore Moving Average;
- Additivo in presenza di profitto generale - aggiunta all'indent se c'è un profitto generale.
L'EA utilizza il principio dello swing, con la possibilità di aumentare il numero di lotti; per il suo funzionamento si basa su una strategia semplice:
- Se il prezzo è sopra l'indicatore Moving Average a una distanza pre-impostata dalla Moving Average, apriamo una posizione BUY;
- Se il prezzo scende dall'indicatore Moving Average a una distanza pre-impostata dalla Moving Average, apriamo una posizione SELL con lo stesso lotto;
- Se il prezzo è salito dalla posizione BUY avendo il prezzo più alto a una distanza pre-impostata dalla Moving Average, apriamo la successiva posizione BUY;
- Se il prezzo è sceso dalla posizione BUY avendo il prezzo più basso a una distanza pre-impostata dalla Moving Average, apriamo la successiva posizione SELL;
Classe CMoving
| Parametri di impostazione | |
Inizializzazione |
Inizializzazione primaria - vengono impostati i seguenti parametri:
|
GetFlag |
Restituisce lo stato del flag di inizializzazione. Viene utilizzato come funzione ausiliaria quando si chiama dall'EA di base per verificare lo stato della variabile interna m_init della classe CMoving. |
LotsOrRisk |
Definisce il tipo di calcolo dei lotti della posizione: manualmente (il parametro lots è maggiore di zero) oppure in percentuale del margine libero per trade (il parametro rischio è maggiore di zero). |
CreateMA |
Creazione dell'indicatore Moving Average. |
TakeProfit |
Definizione del parametro Take Profit. |
Multiplier |
Definizione del parametro di aumento dei lotti. |
DistanceMA |
Definizione dell'indent dall'indicatore Moving Average. |
ProfitPlus |
Definizione dell'indent aggiuntivo in caso di profitto generale. |
| Funzione principale | |
Processing |
Funzione principale, in cui vengono eseguiti tutti i calcoli. |
| Funzioni della classe con specificatore di accesso protetto | |
RefreshRates |
Aggiornamento delle quotazioni per il simbolo. |
CheckVolumeValue |
Controlla la correttezza del volume della posizione inserito (il controllo è utilizzato quando si definisce manualmente il volume della posizione). |
IsFillingTypeAllowed |
Verifica la modalità di esecuzione dell'ordine. |
iMAGet |
Ottiene i valori dell'indicatore Moving Average sulla candela con indice index. |
CalculateAllPositions |
Ottiene le informazioni sulle posizioni per chiamata:
|
Prices |
Ottiene i prezzi di riferimento per le posizioni BUY e SELL, considerando la distanza pre-impostata dalla Moving Average. |
LotCheck |
Controlla e normalizza il volume della posizione (utilizzato quando si definisce manualmente la dimensione della posizione). |
OpenBuy |
Apertura di una posizione BUY. |
OpenSell |
Apertura di una posizione SELL. |
PrintResult |
Stampa i risultati di un'operazione di trading per l'apertura di una posizione. |
SetTakeProfit |
Imposta il livello di Take Profit per le posizioni o rimuove tutti i livelli di Take Profit e Stop Loss (dove il parametro delete_take_profit è pari a "true"). |
CompareDoubles |
Confronta due numeri reali per verificarne l'uguaglianza. |
AwerageTakeProfit |
Calcola e imposta il livello di Take Profit singolo per una posizione di un certo tipo pos_type. |
GBPUSD, H1, "Ogni tick basato su tick reali."

Commento 0