Accueil Trading Systématique Publication

exp_iCustom_v1 : Un Expert pour MetaTrader 4

Pièce jointe
7632.zip (41.38 KB, Télécharger 1 fois)

Objectif de l'EA

Ce conseiller expert (EA) est conçu pour fonctionner avec n'importe quel Custom qui génère des flèches d'achat/vente, sauf les indicateurs avec des paramètres de chaîne.

Le nom de l'indicateur personnalisé est spécifié dans les paramètres de l'EA, de même que la liste des paramètres de l'indicateur et les numéros des buffers pour dessiner les flèches d'achat/vente.

Bien qu'une liste de paramètres sous forme de chaîne soit utilisée, il est possible d'optimiser jusqu'à cinq paramètres de l'indicateur. Au lieu de n'importe quelle variable de la liste de chaînes iCustomParam, il est possible d'utiliser la valeur de n'importe laquelle des variables Opt_1_Value - Opt_5_Value.

Paramètres de l'Expert Advisor

  • TimeFrame - période de fonctionnement de l'EA : 0 - période du graphique sur lequel l'EA est exécuté, ou valeur spécifique 1, 5, 15, 30, 60, 240, 1440...
  • iCustomName - nom de l'indicateur personnalisé.
  • iCustomParam - liste des paramètres délimitée par "/". Pour les variables booléennes, utilisez 1 au lieu de vrai, 0 au lieu de faux. Si les paramètres de l'indicateur contiennent des variables de chaîne, l'EA ne fonctionnera pas !
  • iBuyBufIndex - index du buffer avec les flèches d'achat.
  • iSellBufIndex - index du buffer avec les flèches de vente.
  • iShift - décalage de l'indicateur. 1 - travail sur les barres formées, 0 - sur la barre en formation (non recommandé). Il est également possible d'entrer une valeur 2, 3, 4...
  • Opt_1_Use - activer l'utilisation de la variable 1 à optimiser. Lorsque la variable à optimiser est activée, au lieu de la valeur de la chaîne iCustomParam, définie par la variable Opt_X_Index, la valeur de la variable Opt_X_Value sera utilisée.
  • Opt_1_Index - index de la variable 1 à optimiser dans le tableau de paramètres (dans la chaîne iCustomParam). La numérotation commence à zéro.
  • Opt_1_Value - valeur de la variable 1 à optimiser.
  • Opt_2_Use - activer l'utilisation de la variable 2 à optimiser.
  • Opt_2_Index - index de la variable 2 à optimiser dans le tableau de paramètres (dans la chaîne iCustomParam). La numérotation commence à zéro.
  • Opt_2_Value - valeur de la variable 2 à optimiser.
  • Opt_3_Use - activer l'utilisation de la variable 3 à optimiser.
  • Opt_3_Index - index de la variable 3 à optimiser dans le tableau de paramètres (dans la chaîne iCustomParam). La numérotation commence à zéro.
  • Opt_3_Value - valeur de la variable 3 à optimiser.
  • Opt_4_Use - activer l'utilisation de la variable 4 à optimiser.
  • Opt_4_Index - index de la variable 4 à optimiser dans le tableau de paramètres (dans la chaîne iCustomParam). La numérotation commence à zéro.
  • Opt_4_Value - valeur de la variable 4 à optimiser.
  • Opt_5_Use - activer l'utilisation de la variable 5 à optimiser.
  • Opt_5_Index - index de la variable 5 à optimiser dans le tableau de paramètres (dans la chaîne iCustomParam). La numérotation commence à zéro.
  • Opt_5_Value - valeur de la variable 5 à optimiser.
  • MMMethod - méthode de gestion des fonds : 0-Lots, 1-part (Risque) de la marge libre, 2-part (Risque) de la marge libre normalisée par le MeansStep.
  • Lots - nombre de lots lorsque MMMethod=0.
  • Risk - risque. La valeur est basée sur les fonds avec FixedLot=false.
  • MeansType - type de fonds utilisés dans le calcul des lots. 1 - Solde, 2 - Équité, 3 - MargeLibre.
  • MeansStep - étape des fonds. Utilisé à MMMethod=2.
  • LotsDigits - nombre de décimales dans la valeur des lots.
  • Slippage - déviation autorisée par rapport au prix demandé.
  • StopLoss - stop loss.
  • TakeProfit - take profit.
  • Magic_N - numéro magique.
  • MaxOrdersCount - nombre total maximum d'ordres ouverts. -1 - pas de limite.
  • MaxBuyCount - nombre maximum d'ordres d'achat ouverts. -1 - pas de limite.
  • MaxSellCount - nombre maximum d'ordres de vente ouverts. -1 - pas de limite.
  • SleepBars - délai après l'ouverture d'un ordre en tant que nombre de barres de la période de travail.
  • CancelSleeping - activation de l'annulation du délai lors de l'ouverture d'un ordre dans la direction opposée.
  • CloseOnRev - fermer les ordres de direction opposée avant d'ouvrir.
  • TrailingStop_Use - activation de la fonction de trailing stop.
  • TrailingStopStart - profit de l'ordre pour activer le trailing stop.
  • TrailingStop - le niveau de trailing stop.
  • BreakEven_Use - activation de la fonction de breakeven.
  • BreakEvenStart - profit de l'ordre pour activer le breakeven.
  • BreakEvenLevel - niveau pour placer le stop loss à partir du prix d'activation du breakeven.

Remarque

L'archive avec l'expert contient le fichier test_example.set avec un exemple de paramètres pour l'utilisation de l'indicateur ind_Test (croisement de deux MA) et les variables à optimiser. L'indicateur ind_Test est joint.

Version 2

1. Ajout de la possibilité d'utiliser différents indicateurs pour les signaux d'ouverture et de fermeture. Les paramètres pour l'indicateur d'ouverture commencent par le préfixe _O_, pour l'indicateur de fermeture - avec le préfixe _C_.

Trois modes possibles pour utiliser les indicateurs d'ouverture et de fermeture (définis par la variable _OС_Mode) :

  • Mode 1 - l'indicateur n'est pas utilisé pour la fermeture. La fermeture n'est possible que par le stop loss et le take profit.
  • Mode 2 - l'indicateur de fermeture n'est pas utilisé. En plus de la fermeture par stop loss et take profit, la fermeture des ordres opposés est effectuée par les signaux d'ouverture. Le stop loss et le take profit peuvent être désactivés - définissez la valeur 0 pour les variables StopLoss et/ou TakeProfit (s'applique à tous les modes).
  • Mode 3 - Signaux de fermeture séparés basés sur l'indicateur de fermeture (_C_) sont utilisés. Dans ce mode, il est possible d'utiliser un mode supplémentaire pour copier les paramètres de l'indicateur d'ouverture aux paramètres de l'indicateur de fermeture (la variable C_UseOpenParam), en même temps le nom de l'indicateur et ses paramètres sont copiés. Ce mode est conçu pour les indicateurs qui génèrent des signaux d'ouverture et de fermeture afin d'augmenter la vitesse d'optimisation (les paramètres optimisés sont également copiés).

2. Il est possible d'utiliser non seulement les indicateurs avec des flèches, mais aussi des indicateurs avec des lignes. Il est possible d'utiliser deux lignes (croisement de la ligne principale et de la ligne de signal) et une ligne - son croisement avec les niveaux. Utilisez la variable _O_Mode (et _С_Mode dans le bloc de fermeture) pour sélectionner le type d'indicateur.

  • Mode 1 - l'indicateur dessine des flèches. Les variables _O_M1_iBuyBufIndex et _O_M1_iSellBufIndex sont utilisées pour spécifier les numéros des buffers, et dans le bloc de fermeture - _C_M1_iCloseBuyBufIndex et _C_M1_iCloseSellBufIndex.
  • Mode 2 - la ligne principale et la ligne de signal de l'indicateur sont utilisées. Si la ligne principale croise la ligne de signal par le bas - signal pour ouvrir un achat ou fermer une vente. Les variables _O_M2_iMainBufIndex, _O_M2_iSignalBufIndex et _C_M2_iMainBufIndex, _C_M2_iSignalBufIndex sont utilisées pour spécifier les buffers.
  • Mode 3 - une ligne d'indicateur est utilisée. Le numéro de buffer est spécifié dans la variable _O_M3_iBufIndex (ou _С_M3_iBufIndex dans le bloc de fermeture). Les variables _O_M3_BuyLevel et _O_M3_SellLevel (_O_M3_CloseBuyLevel et _C_M3_CloseSellLevel dans le bloc de fermeture) sont utilisées pour spécifier les niveaux. Croisement du niveau d'achat par le bas - achat, croisement du niveau de vente par le haut - vente.

Version 3

Ajout d'un autre mode _O_Mode (et _S_Mode)

Mode 4 - Extremum par trois points. Utilise une ligne d'indicateur. Le numéro de buffer est spécifié dans la variable _O_M4_iBufIndex (ou _С_M4_iBufIndex dans le bloc de fermeture).

Version 4

1. Ajout de la gestion des ordres en attente.
2. Ajout de séparateurs de section dans la fenêtre des propriétés (à partir des variables de chaîne).

La sélection du type d'ordre est effectuée par la variable OrdType : 0 - marché, 1 - stop, 2 - limite (la variable est dans la section "Ordre").

La section "Ordres en attente" pour gérer l'opération des ordres en attente :

  • PendLevel - le niveau à partir du prix du marché actuel pour placer l'ordre en attente.
  • PendPromPrice - le prix pour placer l'ordre en attente est calculé à partir du prix de la barre zéro, à la valeur PendPromPrice=0 - à partir du prix de clôture (correspond au prix du marché actuel), 1 - à partir du prix d'ouverture de la barre.
  • PendNewSigMode - méthode de contrôle de l'ordre en attente sur un nouveau signal de trading : 0 - si un ordre a déjà été placé, aucune action n'est effectuée lors de l'apparition d'un nouveau signal de trading, 1 - remplacer l'ordre sur un nouveau signal, 2 - sur un nouveau signal, l'ordre est remplacé uniquement par un "meilleur niveau" - buy-stop uniquement en bas, buy-limit uniquement en haut, sell-stop uniquement en haut, sell-limit uniquement en bas.
  • PendPriceFollow - mode de suivi des prix. L'ordre est modifié à chaque changement d'une certaine variable PendPromPrice, l'ordre est remplacé uniquement par un "meilleur prix" (voir la description de la variable PendNewSigMode).
  • PendDelete - supprimer l'ordre en attente sur un signal de trading opposé. À la valeur false, il est possible que deux ordres en attente dans des directions différentes existent simultanément.
  • PendExpiration - temps d'expiration de l'ordre en minutes (la valeur minimale est de 11 minutes).

Articles connexes

Commentaire (0)