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