EA VR-Moving : Optimisez vos Trades avec MetaTrader 5

Mike 2018.06.16 19:15 17 0 0
Pièce jointe

Idée par : Vladimir Pastushak.

Code MQL5 par : Vladimir Karputov.

L'EA VR-Moving utilise l'indicateur de Moving Average. Toutes les fonctions préparatoires et de trading ont été mises en œuvre dans la classe de trading CMoving, dans un fichier séparé nommé Moving.mqh.

Paramètres d'Entrée

  • magic number - identifiant unique de l'EA ;
  • Lots - volume de position (possibilité de spécifier un volume supérieur à zéro ou une taille de risque supérieure à zéro) ;
  • Risk - risque en pourcentage de la marge libre par trade (possibilité de spécifier un volume de position supérieur à zéro ou une taille de risque supérieure à zéro) ;
  • MA : période - période de l'indicateur Moving Average : Timeframe ;
  • MA : période d’averaging - période d’averaging de l'indicateur Moving Average ;
  • MA : décalage horizontal - décalage horizontal de l'indicateur Moving Average ;
  • MA : type de lissage - méthode de lissage de l'indicateur Moving Average ;
  • MA : type de prix - type de prix sur lequel l'indicateur est calculé ;
  • Take Profit - niveau de Take Profit (pour le cas où une position est ouverte) ;
  • Multiplicateur de lots pour une série de positions - augmentation du volume d'une position pour une série de positions ;
  • Distance par rapport à la Moving Average - distance par rapport à l'indicateur Moving Average ;
  • Additif en cas de profit général - ajout à l'indent si un profit général est présent.

L'EA utilise le principe de swing, avec la possibilité d'augmenter le nombre de lots ; une stratégie simple est appliquée :

  • Si le prix est au-dessus de l'indicateur Moving Average à une Distance prédéfinie de la Moving Average, nous ouvrons une position d'achat (BUY) ;
  • Si le prix descend par rapport à l'indicateur Moving Average à une Distance prédéfinie de la Moving Average, nous ouvrons une position de vente (SELL) avec le même lot ;
  • Si le prix a augmenté à partir de la position d'achat ayant le prix le plus élevé à une Distance prédéfinie de la Moving Average, nous ouvrons la prochaine position d'achat ;
  • Si le prix a baissé à partir de la position d'achat ayant le prix le plus bas à une Distance prédéfinie de la Moving Average, nous ouvrons la prochaine position de vente ;

Classe CMoving

Paramètres de réglage
Initialisation

Initialisation principale - les paramètres suivants sont définis :

  • symbole - nom du symbole sur lequel l'EA va opérer
  • magic - identifiant unique pour l'EA
  • slippage - glissement.
GetFlag
Retourne l'état du drapeau d'initialisation. Utilisé comme fonction auxiliaire pour vérifier l'état de la variable interne m_init de la classe CMoving.
LotsOrRisk
Définit le type de calcul des lots de position : soit manuellement (le paramètre lots est supérieur à zéro) ou en pourcentage de la marge libre par trade (le paramètre risk est supérieur à zéro).
CreateMA
Création de l'indicateur Moving Average.
TakeProfit
Définition du paramètre Take Profit.
Multiplier
Définition du paramètre d'augmentation des lots.
DistanceMA
Définition de l'indent par rapport à l'indicateur Moving Average.
ProfitPlus
Définition de l'indent supplémentaire en cas de profit total.
Fonction principale
Processing
Fonction principale dans laquelle tous les calculs sont effectués.
Fonctions de classe avec le spécificateur d'accès protégé
RefreshRates
Mise à jour des cotations pour le symbole.
CheckVolumeValue
Vérification de la justesse du volume de position entré (vérification utilisée lors de la définition manuelle du volume de position).
IsFillingTypeAllowed
Vérification du mode de remplissage de l'ordre.
iMAGet
Obtention des valeurs de l'indicateur Moving Average pour la bougie ayant l'index index.
CalculateAllPositions

Récupération des informations sur les positions par appel :

  • count_buys - nombre de positions d'achat ;
  • price_highest_buy - prix de la position d'achat la plus élevée ;
  • price_lowest_buy - prix de la position d'achat la plus basse ;
  • lot_highest_buy - volume de la position d'achat la plus élevée ;
  • lot_lowest_buy - volume de la position d'achat la plus basse ;
  • total_lots_buy - volume total des positions d'achat ;
  • count_sells - nombre de positions de vente ;
  • price_lowest_sell - prix de la position de vente la plus basse ;
  • price_highest_sell - prix de la position de vente la plus élevée ;
  • lot_lowest_sell - volume de la position de vente la plus basse ;
  • lot_highest_sell - volume de la position de vente la plus élevée ;
  • total_lots_sell - volume total des positions de vente.
Prices
Obtention des prix de référence pour les positions d'achat et de vente, en tenant compte de la Distance prédéfinie de la Moving Average.
LotCheck
Vérification et normalisation du volume de position (utilisé lors de la définition manuelle de la taille de la position).
OpenBuy
Ouverture d'une position d'achat.
OpenSell
Ouverture d'une position de vente.
PrintResult
Affichage des résultats d'une opération de trade pour l'ouverture d'une position.
SetTakeProfit
Définition du niveau de Take Profit pour les positions ou suppression de tous les niveaux de Take Profit et Stop Loss (où le paramètre delete_take_profit est égal à "true").
CompareDoubles
Comparaison de deux nombres réels pour vérifier leur égalité.
AverangeTakeProfit
Calcul et définition d'un niveau de Take Profit unique pour une position d'un certain type pos_type.

GBPUSD, H1, "Chaque tick basé sur des ticks réels."

VR---MUVING

Liste
Commentaire 0