VR-Moving: Expert Advisor per MetaTrader 5

Mike 2018.06.16 19:15 13 0 0
Allegato

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:

  • simbolo - nome del simbolo su cui opererà l'EA;
  • magic - identificativo unico per l'EA;
  • slippage - slippage.
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:

  • count_buys - numero di posizioni BUY;
  • price_highest_buy - prezzo della posizione BUY più alta;
  • price_lowest_buy - prezzo della posizione BUY più bassa;
  • lot_highest_buy - volume della posizione BUY più alta;
  • lot_lowest_buy - volume della posizione BUY più bassa;
  • total_lots_buy - volume totale delle posizioni BUY;
  • count_sells - numero di posizioni SELL;
  • price_lowest_sell - prezzo della posizione SELL più bassa;
  • price_highest_sell - prezzo della posizione SELL più alta;
  • lot_lowest_sell - volume della posizione SELL più bassa;
  • lot_highest_sell - volume della posizione SELL più alta;
  • total_lots_sell - volume totale delle posizioni SELL.
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."

VR---MUVING

Elenco
Commento 0