Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Range Breakout Programmation EA mql5 | Partie 4/4
Range Breakout Programmation EA mql5 | Partie 4/4
Toby est ravi d'annoncer qu'aujourd'hui, nous allons conclure notre expert-conseil en petits groupes (EA) pour MetaTrader 5. Cette vidéo marque la dernière partie de notre série complète sur l'EA en petits groupes. Si vous n'avez pas eu l'occasion de regarder les vidéos précédentes, je fournirai des liens dans la description afin que vous puissiez vous rattraper.
Dans les segments précédents, nous avons couvert des aspects importants tels que le calcul de la fourchette, les contrôles d'achat et de vente et la logique de fermeture de position. Maintenant, dans cette vidéo de conclusion, nous avons quelques fonctionnalités supplémentaires à ajouter à notre EA. Plus précisément, nous intégrerons une fonctionnalité stop loss et take profit basée sur un pourcentage de la gamme. De plus, nous introduirons un filtre de jour de la semaine et implémenterons un mode de répartition, permettant aux utilisateurs de basculer entre une ou deux répartitions par plage.
Plongeons directement dans le processus de codage. Jusqu'à présent, c'est le code que nous avons développé. Notre première tâche consiste à inclure des entrées pour les pourcentages de stop loss et de take profit. Nous les définirons comme des nombres entiers puisqu'ils sont représentés en pourcentages. Définissons l'entrée stop loss par défaut sur 150 et l'entrée take profit sur 200. Nous mettrons également à jour les commentaires pour refléter ces changements. Pour nous assurer que l'utilisateur fournit des entrées valides, nous devons effectuer des vérifications d'entrée. Nous ajouterons une instruction if supplémentaire dans la fonction on init pour valider les entrées stop loss et take profit. Si l'entrée stop loss est inférieure à zéro ou supérieure à 1000, nous afficherons un message d'erreur. Le même processus de validation s'applique à l'entrée de profit. Ces vérifications aideront à protéger l'EA des entrées erronées.
Passons à autre chose, calculons les valeurs de stop loss et de take profit pour chaque position. Pour les positions d'achat, le stop loss sera calculé comme un pourcentage de la fourchette en dessous du prix actuel. Nous utiliserons le prix de l'offre et le multiplierons par la valeur du stop loss d'entrée divisée par 100. Pour garantir un prix normalisé, nous appliquerons la fonction NormalizeDouble. De même, pour les positions de vente, le stop loss sera calculé en pourcentage de la fourchette au-dessus du prix actuel. Nous utiliserons le prix demandé et y ajouterons la valeur de stop loss calculée. Cela déterminera le niveau approprié pour le stop loss.
Pour le calcul du take profit, nous suivrons la même logique. Pour les positions d'achat, le take profit sera la fourchette au-dessus du prix actuel, tandis que pour les positions de vente, ce sera la fourchette en dessous du prix actuel. Une fois les valeurs de stop loss et de take profit calculées, nous les intégrerons dans les appels de position ouverts. Au lieu d'utiliser une valeur statique de zéro, nous la remplacerons par les valeurs de stop loss et de take profit calculées. Cet ajustement garantit que l'EA définit avec précision les niveaux de stop loss et de take profit pour chaque position.
Pour plus de flexibilité, nous introduirons la possibilité de désactiver la fonctionnalité stop loss et take profit. Si l'utilisateur entre zéro pour l'une ou l'autre des entrées, cela indiquera qu'il souhaite désactiver cette fonction. Nous ajouterons des instructions if pour vérifier ces conditions et ajusterons le calcul en conséquence. Passons maintenant à la fonctionnalité optionnelle d'heure de fermeture. En entrant -1 comme heure de clôture, l'EA ne fermera les positions qu'en fonction des niveaux de stop loss et de take profit. Cette modification permet aux utilisateurs de choisir s'ils souhaitent inclure une heure spécifique pour la fermeture de la position ou s'appuyer uniquement sur les paramètres stop loss et take profit.
Pour implémenter cela, nous mettrons à jour le contrôle de l'heure de clôture dans la fonction on tick. Si l'heure de clôture est inférieure à zéro, indiquant qu'elle est désactivée, nous ignorerons la vérification de la fermeture de la position en fonction de l'heure et nous nous appuierons uniquement sur les conditions de stop loss et de take profit. De plus, nous apporterons des ajustements à la visualisation de la plage dans la fonction de dessin d'objet. Si aucune heure de clôture n'est définie, les lignes de gamme s'étendront jusqu'à la bougie actuelle, indiquant que le mode d'évasion est actif jusqu'à ce que les niveaux de stop loss ou de take profit soient atteints. D'autre part, si une heure de clôture est définie, les lignes de gamme ne s'étendront que jusqu'à cette bougie spécifique, ce qui signifie que le mode d'évasion est actif jusqu'à l'heure désignée.
Pour améliorer la polyvalence de l'EA, nous allons introduire un filtre du jour de la semaine. Ce filtre permet aux utilisateurs de spécifier les jours où ils souhaitent que l'EA soit actif. Nous allons ajouter un paramètre d'entrée pour le filtre du jour de la semaine, où l'utilisateur peut sélectionner plusieurs jours dans une liste prédéfinie. Par défaut, tous les jours de la semaine seront sélectionnés. Pour implémenter le filtre du jour de la semaine, nous allons modifier la fonction on tick. Nous allons introduire une instruction if pour vérifier si le jour actuel est inclus dans le filtre sélectionné par l'utilisateur. Si le jour n'est pas inclus, l'EA ignorera la logique d'ouverture de position et passera au tick suivant.
Enfin, nous implémenterons la possibilité de basculer entre une ou deux cassures par gamme. Actuellement, l'EA ouvre une position par cassure de gamme. Cependant, certains traders peuvent préférer avoir la flexibilité d'ouvrir deux positions pour des cassures plus fortes. Pour tenir compte de cela, nous allons introduire un paramètre d'entrée qui permet à l'utilisateur de sélectionner une ou deux cassures par plage.
Pour implémenter cette fonctionnalité, nous allons ajuster la logique d'ouverture de la position. Si l'utilisateur sélectionne deux cassures par gamme, l'EA ouvrira une position supplémentaire dans la direction opposée à la cassure initiale. De cette façon, une cassure haussière et baissière peut être capturée dans la même fourchette. Avec toutes ces nouvelles fonctionnalités mises en œuvre, notre conseiller expert en petits groupes fournira aux traders une fonctionnalité et une flexibilité améliorées. La fonctionnalité stop loss et take profit basée sur un pourcentage de la fourchette aidera à gérer les risques et à capturer les bénéfices. Le filtre du jour de la semaine permettra aux utilisateurs de spécifier les jours de trading actifs, tandis que le mode de cassure peut être adapté à une ou deux cassures par range, en fonction de leur stratégie de trading.
Nous espérons que vous avez trouvé cette série complète sur le conseiller expert en petits groupes utile et informative. Si vous avez des questions ou avez besoin d'aide supplémentaire, n'hésitez pas à nous contacter. Bonne négociation !
Bandes de Bollinger Programmation EA MT5
Bandes de Bollinger Programmation EA MT5
Dans cette vidéo, Toby présente un processus étape par étape pour créer un conseiller expert personnalisé pour un événement de bowling sur Twitter. Il commence par expliquer la stratégie : vendre lorsqu'une bougie s'ouvre au-dessus de la bande de Bollinger supérieure, fixer des niveaux de stop loss et de take profit, et quitter la transaction si la ligne médiane des bandes de Bollinger est franchie. La même logique s'applique pour l'achat.
Toby passe ensuite à MetaEditor, où il crée un nouveau conseiller expert à l'aide d'un modèle. Il nettoie le modèle et ajoute des paramètres d'entrée pour l'EA, tels que le nombre magique, la taille du lot, la période, l'écart, le stop loss et le take profit. Il définit les valeurs par défaut de ces paramètres et compile le code.
Ensuite, Toby définit des variables globales pour l'EA, y compris la poignée de l'indicateur de bande de Bollinger et des tampons pour les bandes supérieure, moyenne et inférieure. Il crée également des variables pour le tick et le commerce actuels.
Passant à la fonction OnInit, Toby vérifie si les entrées de l'utilisateur sont valides. Si l'une des entrées n'est pas valide, il affiche un message d'erreur et revient. Il définit le nombre magique pour l'objet commercial et crée la poignée d'indicateur pour l'indicateur de bande de Bollinger. Si la création du handle échoue, il affiche un message d'erreur et revient. Il définit ensuite les tampons en série et compile le code.
Dans la fonction OnTick, Toby vérifie si le tick actuel est un tick ouvert de barre à l'aide d'une fonction personnalisée. Si ce n'est pas un bar ouvert, il revient. S'il s'agit d'un tick ouvert de barre, il récupère le tick courant à l'aide de la fonction SymbolInfoTick et le stocke dans la variable currentTick. Il récupère ensuite les dernières valeurs des indicateurs à l'aide de la fonction CopyBuffer et les stocke dans les tampons respectifs. Si le nombre de valeurs copiées n'est pas égal à 3, indiquant une erreur, il affiche un message d'erreur et revient.
À ce stade, Toby a terminé les étapes initiales de codage du conseiller expert. Il compile le code et utilise un backtest visuel dans MetaTrader pour vérifier les valeurs des indicateurs et s'assurer que le code fonctionne correctement.
Ensuite, nous devons mettre en œuvre la logique de génération de signaux commerciaux basée sur la stratégie des bandes de Bollinger. Nous commencerons par vérifier si une bougie s'ouvre au-dessus de la bande supérieure, indiquant un signal de vente. Si cette condition est remplie, nous exécuterons une transaction de vente avec un niveau stop loss et take profit. De même, nous vérifierons si une bougie s'ouvre en dessous de la bande inférieure pour un signal d'achat, en exécutant une transaction d'achat avec les mêmes conditions de sortie.
Voici l'explication du code :
Nous vérifions d'abord si le tick actuel est un tick ouvert de barre en utilisant la fonction isNewBar(). S'il renvoie false, nous sautons la génération du signal de trading pour le tick actuel.
Nous récupérons ensuite les dernières valeurs des indicateurs : upperBand, baseLine et lowerBand à partir des tampons respectifs.
Ensuite, nous vérifions si le prix d'ouverture de la bougie précédente est au-dessus de la bande supérieure (open[1] > upperBand). Si cette condition est vraie, nous générons un signal de vente en ouvrant une transaction de vente à l'aide de la méthode Sell() de l'objet de transaction. Nous définissons la taille du lot, stop loss et prenons les niveaux de profit en utilisant les méthodes respectives.
De même, nous vérifions si le cours d'ouverture de la bougie précédente est en dessous de la bande inférieure (open[1] < lowerBand). Si vrai, nous générons un signal d'achat en ouvrant une transaction d'achat à l'aide de la méthode Buy() de l'objet de transaction. Encore une fois, nous définissons la taille du lot, stop loss et prenons les niveaux de profit.
Enfin, s'il y a une transaction ouverte, nous vérifions si le cours de clôture de la bougie actuelle franchit la ligne médiane (ligne de base). Si cette condition est vraie, nous clôturons la transaction en utilisant la méthode Close() de l'objet de transaction.
N'oubliez pas de compiler le code et de le tester dans MetaTrader pour vous assurer qu'il fonctionne comme prévu.
Dans le code donné, plusieurs tâches sont exécutées. Voici une explication détaillée de chaque étape :
Initialiser les variables :
Compter les positions ouvertes :
Vérifiez si un nouveau poste peut être ouvert :
Calculez le stop loss et le take profit :
Normalisez le stop loss et le take profit :
Ouvrir une nouvelle position d'achat :
Vérifiez le croisement de la bande supérieure pour ouvrir une position de vente :
Fermez les positions si la ligne médiane des bandes de Bollinger est franchie :
Définissez la fonction pour clôturer les positions :
Le code effectue divers contrôles et calculs pour compter et gérer les positions ouvertes, ouvrir de nouvelles positions et fermer des positions en fonction de conditions spécifiques.
Comment créer un panneau graphique en mql5 | Partie 1/2
Comment créer un panneau graphique en mql5 | Partie 1/2
Toby montrera comment créer un panneau graphique simple dans MQL5 pour afficher des informations et ajouter un bouton pour changer la couleur d'arrière-plan du graphique. Il mentionne que ce panneau peut être créé pour n'importe quel conseiller expert, mais il utilisera l'évaluation environnementale sur la plage de temps comme exemple. Toby déclare que le sujet de la vidéo a été demandé par un utilisateur dans les commentaires et encourage les téléspectateurs à suggérer des sujets pour les futures vidéos.
Toby ouvre l'éditeur de méta et charge le fichier pour l'EA de répartition de la plage de temps. Il l'enregistre en tant que nouveau conseiller expert appelé "panneau EA de plage de temps" et le compile. Il explique qu'il écrira le panneau en tant que classe distincte dans un fichier inclus, ce qui le rendra facile à utiliser dans n'importe quel conseiller expert. Toby crée un nouveau fichier inclus appelé "panneau graphique" et définit les entrées pour la taille du panneau, la taille de la police et la couleur de la police.
Il inclut le fichier "dialog.mqh" du dossier des contrôles, qui lui permettra d'utiliser les fonctions de cette classe. Toby définit une classe appelée "CGraphicalPanel" qui hérite de la classe "CAppDialog". Il ajoute une section privée pour les méthodes de la classe, une section publique pour le constructeur, le destructeur, la fonction d'initialisation et le gestionnaire d'événements de graphique. Il inclut également une section de commentaires pour les méthodes de classe.
Ensuite, Toby écrit le corps des méthodes de classe après la définition de classe. Il spécifie que les méthodes appartiennent à la classe et écrit le constructeur, le destructeur, la fonction d'initialisation et le gestionnaire d'événements de graphique. Il ajoute des commentaires pour décrire le but de chaque méthode. Toby compile le code pour vérifier les erreurs ou les avertissements.
Toby implémente la fonction de création de panneau, qui crée un panneau de dialogue à l'aide de la classe CFDialog. Il définit le nom, la sous-fenêtre, la position et la taille du panneau en fonction des paramètres d'entrée. Si la création du panneau échoue, il imprime un message et renvoie false. Il ajoute également une fonction d'actualisation du graphique pour mettre à jour le graphique. Toby compile à nouveau le code pour s'assurer qu'il est sans erreur.
Dans le fichier de l'expert advisor, Toby inclut le fichier d'inclusion du panneau graphique et crée un objet de la classe du panneau appelé "panel" dans la section des variables globales. Il initialise le panneau dans la fonction onInit et ajoute un gestionnaire d'événements de graphique pour transmettre les événements de graphique au panneau. Toby écrit le corps du gestionnaire d'événements de graphique, appelant la fonction d'événement de graphique du panneau avec les paramètres appropriés.
Enfin, Toby ajoute une fonction de panneau de destruction à la fonction onDeinit, qui détruit le panneau et précise la raison. Il compile à nouveau le code et le teste dans MetaTrader. Toby montre comment faire glisser et déposer le conseiller expert sur le graphique, montrant la fonctionnalité du panneau. Il ferme également l'expert advisor à l'aide du bouton du panneau.
Salut, je m'appelle Toby, et aujourd'hui je vais vous montrer comment créer un panneau graphique dans MQL5. Il s'agit en fait de la deuxième partie du tutoriel. Dans la première partie, nous avons créé un panneau simple sur le côté gauche, et si vous l'avez manqué, vous pouvez trouver le lien dans la description. Dans la vidéo d'aujourd'hui, nous allons ajouter des étiquettes et un bouton au panneau. Pour cet exemple, nous utiliserons la répartition de la plage de temps EA. Si vous souhaitez apprendre à coder ce conseiller expert, j'ai une série de codage sur ma chaîne. Vous pouvez également trouver le lien vers la première partie dans la description.
Pour commencer, passons à l'éditeur MQL5 et commençons à coder. Nous avons ici notre fichier d'inclusion de panneau graphique, et nous avons également la répartition de la plage de temps EA, que nous avons modifiée pour afficher le panneau. Allons dans le fichier d'inclusion et vérifions les valeurs d'entrée de l'utilisateur. Nous allons créer une méthode appelée "vérifier les entrées" dans la section des méthodes privées de notre classe. Après la fonction OnInit, nous appellerons cette méthode. Si la méthode renvoie false, nous renverrons également false à partir de la fonction OnInit. De cette façon, si les entrées sont invalides, nous n'irons pas plus loin. Compilons et passons à autre chose.
Commençons maintenant à ajouter des étiquettes au panneau. Nous devons inclure les fichiers de classe nécessaires pour les étiquettes et les boutons. Nous irons à la section inclure et inclurons "controls/label.mqh" pour les étiquettes et "controls/button.mqh" pour les boutons. Après cela, nous définirons nos variables d'étiquette. Nous aurons des étiquettes pour les entrées, le nombre magique, les lots, l'heure de début, la durée et l'heure de fermeture. Compilons et passons à autre chose.
Dans la fonction createPanel, nous ajouterons les étiquettes au panneau. Nous allons créer l'étiquette d'entrée à l'aide de la variable "M_L_Input". Nous allons définir le texte, la couleur et la taille de la police de l'étiquette. Ensuite, nous allons attacher l'étiquette au panneau. Nous répéterons également ce processus pour les autres étiquettes. Une fois que nous aurons ajouté toutes les étiquettes, nous compilerons et vérifierons le panneau sur le côté gauche. Nous devrons peut-être ajuster les positions des étiquettes pour un meilleur alignement. Compilons et vérifions.
Maintenant, ajoutons le bouton au panneau. Nous allons définir une variable "M_B_ChangeColor" de type "CButton". Nous allons définir la position, le texte, la couleur du texte, la couleur d'arrière-plan et la taille de la police du bouton. Enfin, nous ajouterons le bouton au panneau. Après la compilation, nous verrons le bouton sur le panneau. À ce stade, le bouton n'a aucune fonctionnalité, mais nous l'ajouterons plus tard.
Ensuite, changeons la couleur d'arrière-plan et le nom de la police du panneau. Pour ce faire, nous allons inclure le fichier "Defiance.mqh" et définir de nouvelles valeurs pour les paramètres par défaut. Nous allons annuler la définition des paramètres de nom de police et de couleur d'arrière-plan par défaut, puis définir de nouvelles valeurs pour eux. Nous utiliserons le nom de police "Consolas" et une couleur de fond gris foncé. Après la compilation, nous verrons le panneau mis à jour avec la nouvelle couleur d'arrière-plan et la nouvelle police.
Enfin, affichons les valeurs réelles du conseiller expert sur le panneau. Nous allons inclure le fichier de l'expert advisor dans notre fichier d'inclusion et accéder aux variables d'entrée. Nous mettrons à jour les étiquettes avec les valeurs réelles du conseiller expert. Après la compilation, nous verrons les valeurs d'entrée affichées sur le panneau.
C'est tout pour le tutoriel d'aujourd'hui sur la création d'un panneau graphique dans MQL5. Dans la partie suivante, nous allons ajouter des fonctionnalités au bouton et compléter le panneau. Restez à l'écoute pour plus!
Comment créer un panneau graphique en mql5 | Partie 2/2
Comment créer un panneau graphique en mql5 | Partie 2/2
Salut, c'est Toby. Aujourd'hui, je vais vous montrer comment créer un panneau graphique dans MQL5. Ceci est la deuxième partie de la série de tutoriels. Dans la première partie, nous avons créé un panneau simple sur le côté gauche. Si vous l'avez manqué, je le mettrai en lien ici. Dans la vidéo d'aujourd'hui, nous allons ajouter des étiquettes et un bouton au panneau. Pour cet exemple, nous utiliserons la répartition de la plage de temps EA. Si vous voulez apprendre à coder ce conseiller expert, j'ai une série de codage sur ma chaîne. Je vais également lier la première partie ici.
Passons à l'éditeur de médias et commençons à coder. Nous avons notre panneau graphique incluant le fichier et le fichier EA de répartition de la plage de temps modifiée, qui affiche le panneau. Dans le fichier d'inclusion, nous allons créer une méthode appelée "checkInputs" pour valider les valeurs d'entrée de l'utilisateur. Nous appellerons cette méthode avant de créer le panneau dans la fonction OnInit. Si l'une des entrées n'est pas valide, nous afficherons un message d'erreur et renverrons false. Sinon, nous allons procéder à la création du panneau.
Ensuite, nous ajouterons des étiquettes et un bouton au panneau. Pour utiliser les étiquettes et les boutons, nous devons inclure leurs fichiers de classe. Nous ajouterons les instructions include nécessaires pour les étiquettes et les boutons de la classe. Ensuite, nous définirons des variables privées pour les étiquettes et le bouton.
Dans la fonction CreatePanel, après avoir créé le panneau, nous ajouterons les étiquettes et le bouton au panneau. Nous définirons leurs positions, le texte, la couleur et la taille de la police. Enfin, nous les ajouterons au panneau à l'aide de la méthode Add.
Nous allons compiler le code et vérifier le panneau. Les étiquettes et le bouton doivent être affichés sur le panneau. Nous allons également modifier la couleur d'arrière-plan et le nom de la police du panneau pour une meilleure apparence. Pour afficher les valeurs réelles du conseiller expert sur le panel, nous inclurons le fichier du conseiller expert dans la section Inclure. Ensuite, dans la fonction CreatePanel, nous allons récupérer les valeurs d'entrée du conseiller expert et les afficher sur les étiquettes. Nous allons compiler le code et vérifier à nouveau le panneau. Les étiquettes doivent maintenant afficher les valeurs d'entrée réelles du conseiller expert. Nous allons répéter ce processus pour toutes les valeurs d'entrée.
Une fois ces étapes terminées, le panneau graphique avec des étiquettes et un bouton sera prêt. Nous pouvons maintenant ajouter les valeurs des étiquettes restantes sur le panneau. Nous allons le faire de la même manière que nous l'avons fait pour l'étiquette du nombre magique. Revenons à notre fichier d'inclusion et localisons la section où nous créons les étiquettes. Ici, nous allons ajouter le code pour afficher les valeurs des lots, l'heure de début, la durée et l'heure de clôture.
Pour l'étiquette des lots, nous allons remplacer le texte "nombre magique" par "lots" et mettre à jour la coordonnée y à 70. Pour l'étiquette de l'heure de début, nous allons changer le nom en "heure de début" et mettre à jour l'y- coordonnée à 90. Pour l'étiquette de durée, nous allons changer le nom en "durée" et mettre à jour la coordonnée y à 110. Enfin, pour l'étiquette d'heure de fermeture, nous allons changer le nom en "heure de fermeture" et mettre à jour le coordonnée y à 130.
Après avoir apporté ces modifications, nous pouvons compiler le code.
Maintenant, si nous jetons un coup d'œil à notre conseiller expert et que nous le compilons, nous devrions être en mesure de voir les valeurs réelles des lots, l'heure de début, la durée et l'heure de clôture sur le panneau. Ensuite, implémentons la fonctionnalité du bouton. Actuellement, lorsque nous cliquons sur le bouton, il n'effectue aucune action. Changeons cela. Dans notre fichier d'inclusion, nous allons localiser la section où nous créons le bouton. Ici, nous pouvons ajouter un gestionnaire d'événements pour le clic sur le bouton. Nous utiliserons la fonction OnChartEvent à cette fin. À l'intérieur du gestionnaire d'événements, nous pouvons spécifier l'action que nous voulons entreprendre lorsque le bouton est cliqué.
Pour l'instant, affichons un message lorsque le bouton est cliqué. Nous pouvons utiliser la fonction Imprimer pour envoyer un message au terminal. Après avoir ajouté le gestionnaire d'événements, nous pouvons compiler le code.
Maintenant, si nous exécutons le conseiller expert et cliquons sur le bouton, nous devrions voir le message affiché dans le terminal.
C'est ça! Nous avons créé avec succès un panneau graphique dans MQL5 avec des étiquettes et un bouton. Les étiquettes affichent les valeurs d'entrée du conseiller expert et le bouton a un gestionnaire d'événements de clic.
N'hésitez pas à ajouter plus de fonctionnalités au bouton ou à personnaliser le panneau en fonction de vos besoins. N'oubliez pas de compiler à la fois le fichier d'inclusion et le fichier du conseiller expert pour voir les modifications prendre effet.
Dimensionnement dynamique des positions dans mql5 | Programmation MT5
Dimensionnement dynamique des positions dans mql5 | Programmation MT5
Bonjour, c'est Toby. Aujourd'hui, je vais vous montrer comment calculer la taille de lot dynamique dans MQL5 afin que vous puissiez obtenir des résultats comme celui montré ici. Vous pouvez l'essayer par vous-même.
Bon, commençons. Dans cette vidéo, nous ajouterons un calcul de taille de lot dynamique à une stratégie qui utilise actuellement une taille de lot fixe. Cela nous permettra de risquer un montant spécifique par transaction, comme 100 $ ou un pourcentage du solde du compte. De plus, nous effectuerons un backtest pour déterminer si la stratégie peut être encore améliorée avec le calcul dynamique de la taille du lot. Je vous expliquerai également la stratégie et ses paramètres.
Pour commencer, passons à MetaEditor et commençons à coder. Ici, nous sommes dans MetaEditor, et pour cette démonstration, j'utiliserai le "Time Range EA" pour intégrer le calcul dynamique de la taille du lot. Cependant, vous pouvez utiliser tout autre conseiller expert de votre choix. Nous avons déjà codé cet EA dans une série sur notre chaîne. Si vous souhaitez utiliser le même conseiller expert, je fournirai un lien vers la première partie.
Tout d'abord, ouvrons le fichier 'Time Range EA'. Maintenant, enregistrons-le avec un nouveau nom. Cliquez sur "Enregistrer sous" et nommez-le "Plage de temps EA Lots dynamiques". Super, le fichier a été enregistré.
Ce conseiller expert est l'endroit où nous ajouterons le calcul dynamique de la taille du lot. Compilons le fichier et examinons les entrées dans le testeur de stratégie. Ouvrez le testeur de stratégie dans la plateforme MetaTrader 5 et, si nécessaire, actualisez les conseillers experts. Maintenant, sélectionnez les «lots dynamiques EA de plage de temps». Dans l'onglet Entrées, vous remarquerez l'entrée "Taille du lot", qui accepte actuellement une valeur fixe. Nous devons modifier cela afin que nous puissions entrer des valeurs pour risquer 100 $ par transaction ou un pourcentage du solde du compte.
En revenant à MetaEditor, nous ajouterons une entrée de taille de lot dynamique dans la section "entrée". Créez un espace après le 'Magic Number' et définissez une énumération (enum) appelée 'Lot Mode Enum.' Cette énumération aura trois options : "Fixe", "Argent" et "Pourcentage du compte". Cela nous permettra de choisir facilement le mode de lot souhaité. Fournissez des commentaires pour chaque option afin d'améliorer la lisibilité.
Ensuite, nous utiliserons cette énumération comme entrée. Définissez une 'entrée' avec le type comme notre 'Lot Mode Enum' et nommez-la 'Input Lot Mode', par exemple. Définissez la valeur par défaut sur "Lot Mode Fixed" et ajoutez un commentaire pour décrire l'objectif de cette entrée.
Compilez le code et vérifiez comment il apparaît dans le testeur de stratégie. Vous remarquerez le menu déroulant "Lot Mode", vous permettant de choisir entre "Fixe", "Lot basé sur l'argent" et "Lot basé sur le pourcentage du compte".
Maintenant, modifions l'entrée "Taille du lot" pour accepter différentes valeurs en fonction du mode de lot sélectionné. Modifiez le type d'entrée en "double" et modifiez le commentaire pour refléter les options : "Lot/Money/Percent". Compilez à nouveau le code et vérifiez le testeur de stratégie pour vous assurer que les modifications sont prises en compte.
Pour valider la saisie de l'utilisateur, nous allons modifier la fonction 'CheckInput'. Ajoutez des vérifications pour chaque option de mode de lot pour vous assurer que l'entrée se situe dans la plage acceptable. Pour le mode de lot « Fixe », la taille du lot doit être supérieure à zéro et ne pas dépasser une certaine limite (par exemple, 10 lots). Affichez un message d'erreur approprié si ces conditions ne sont pas remplies. Répétez ce processus pour les modes de lot "Argent" et "Pourcentage du compte", en ajustant les limites en conséquence. De plus, si l'un de ces deux modes de lot est sélectionné, nous devrons vérifier si le stop loss est actif.
Un résumé concis des étapes impliquées dans la mise en œuvre du calcul dynamique de la taille des lots dans MQL5 :
En suivant ces étapes, vous pouvez vous assurer que la taille de votre lot est calculée dynamiquement en fonction du risque souhaité par transaction et des contraintes de votre stratégie de trading.
Trailing stop loss dans mql5 | Programmation MT5
Trailing stop loss dans mql5 | Programmation MT5
Aujourd'hui, je vais vous guider étape par étape sur la façon d'ajouter un stop loss de formation à tout conseiller expert en MQL5. À la fin de cette vidéo, nous effectuerons également un backtest pour évaluer si notre stratégie peut être améliorée avec un stop loss de trading. Alors, commençons.
Avant de commencer à coder, comprenons le concept de base d'un stop loss commercial. Imaginez que nous entrons dans une position à un prix spécifique. Initialement, notre stop loss est fixé à un certain niveau. Lorsque le prix évolue en notre faveur, nous suivons le stop loss derrière le prix, en maintenant toujours la même distance. Si le prix revient, le stop loss reste en place. Alors que le prix continue d'évoluer dans notre direction, nous continuons à suivre notre stop loss. Finalement, le prix peut s'inverser, entraînant l'arrêt de notre position. L'idée principale est de profiter des tendances significatives du marché et de quitter la position lorsque la tendance se termine.
Passons maintenant à MetaEditor pour commencer à coder. Vous pouvez utiliser n'importe quel conseiller expert à cet effet, mais pour cette vidéo, nous utiliserons la "Timeline GA" avec une taille de lot dynamique, que nous avons codée dans la vidéo précédente. Ouvrez le fichier et enregistrez-le en tant que nouveau conseiller expert nommé "Stop Loss". Compilez le code pour vous assurer que tout est sans erreur.
Pour ajouter un stop loss commercial à notre conseiller expert, nous devons suivre quelques étapes. Tout d'abord, ajoutons une entrée supplémentaire pour le trailing stop loss. Dans la section d'entrée, ajoutez une variable d'entrée booléenne appelée "EnableTrailingStopLoss" et définissez sa valeur par défaut sur "false". Cette entrée nous permettra d'activer ou de désactiver le stop loss de trading. Compilez le code pour intégrer les modifications.
Maintenant, revenez à la plateforme MetaTrader et ouvrez le testeur de stratégie. Sélectionnez notre conseiller expert "Lots dynamiques avec Trailing Stop Loss". Dans l'onglet d'entrée, vous trouverez l'entrée nouvellement ajoutée "EnableTrailingStopLoss". Basculez-le de "faux" à "vrai" pour activer le stop loss de trading.
Ensuite, écrivons la fonction qui mettra à jour notre stop loss. Nous placerons cette fonction avant la fonction "FermerPosition". Dans la fonction, vérifiez d'abord si nous avons activé le stop loss de trading et s'il existe un stop loss existant pour la position. Si ce n'est pas le cas, il n'est pas nécessaire de continuer, alors revenez de la fonction.
Maintenant, parcourons toutes les positions ouvertes. Pour chaque poste, nous vérifierons s'il appartient à notre conseiller expert. Récupérez le type de position (achat ou vente), le stop loss actuel et les valeurs de profit. Calculez le nouveau stop loss en fonction du prix actuel et de la plage du symbole, multiplié par le pourcentage de stop loss défini par l'utilisateur. Ajustez le stop loss en fonction du type de position.
Avant de modifier la position avec le nouveau stop loss, nous devons effectuer quelques vérifications. Tout d'abord, assurez-vous que le nouveau stop loss est différent du stop loss actuel pour éviter les erreurs. De plus, certains courtiers imposent un niveau de stop, empêchant de fixer le stop loss trop près du prix actuel. Vérifiez si le nouveau stop loss adhère au niveau d'arrêt, et si ce n'est pas le cas, passez à la position suivante.
Enfin, modifiez la position avec le nouveau stop loss et la valeur de profit actuelle. Si la modification échoue, imprimez un message d'erreur indiquant le problème rencontré. Quittez la fonction pour éviter de traiter d'autres positions.
Compilez le code pour vous assurer qu'il n'y a pas d'erreurs ou d'avertissements. Maintenant, la fonction de stop loss de mise à jour est terminée.
Pour intégrer cette fonction dans notre conseiller expert, nous devons l'appeler dans la fonction "OnTick". Placez l'appel de fonction après avoir vérifié les cassures. Cela garantit que le stop loss est mis à jour pour chaque tick reçu.
Compilez le code une dernière fois pour valider les modifications. Désormais, notre conseiller expert a la capacité de suivre le stop loss en fonction des paramètres définis par l'utilisateur. Nous avons ajouté la variable d'entrée pour activer ou désactiver la fonctionnalité de stop loss suiveur, et nous avons implémenté la fonction pour mettre à jour le stop loss pour les positions ouvertes.
Passons maintenant au backtest de notre conseiller expert pour évaluer l'efficacité du stop loss de trading. Dans la plateforme MetaTrader, ouvrez le testeur de stratégie et sélectionnez notre conseiller expert "Stop Loss" pour le test. Choisissez le symbole et le délai souhaités pour le test.
Dans l'onglet Entrées, vous trouverez divers paramètres à configurer, notamment le pourcentage de stop loss suiveur et la taille du lot. Ajustez ces paramètres en fonction de vos préférences et de votre stratégie de trading.
Cliquez sur le bouton Démarrer pour commencer le backtest. Le conseiller expert exécutera les transactions en fonction des paramètres spécifiés et le stop loss sera ajusté dynamiquement à mesure que le prix évolue en notre faveur.
Une fois le backtest terminé, vous pouvez consulter les résultats dans les onglets Résultats et Graphique. Faites attention au profit et à la perte, au drawdown et à d'autres mesures de performance pour évaluer l'impact du trailing stop loss sur la stratégie.
Si les résultats du backtest sont satisfaisants, vous pouvez envisager d'utiliser le conseiller expert avec le stop loss de trading dans votre compte de trading réel. Cependant, il est crucial d'évaluer soigneusement les performances de la stratégie et de procéder à des tests ou à une optimisation supplémentaires avant de prendre des décisions commerciales.
En conclusion, nous avons ajouté avec succès un stop loss à notre conseiller expert en utilisant MQL5. En suivant le stop loss derrière le prix, nous visons à maximiser les profits pendant les tendances favorables du marché et à minimiser les pertes lorsque la tendance s'inverse. N'oubliez pas de tester soigneusement toutes les modifications ou stratégies avant de les appliquer aux comptes de trading en direct.
Veuillez noter qu'il s'agit d'un guide général et qu'il est essentiel de bien comprendre les principes de programmation et de négociation avant de mettre en œuvre de tels changements. Soyez toujours prudent et envisagez de consulter un conseiller financier professionnel si nécessaire.
Coder un simple RSI EA en mql5 | Programmation MT5
Coder un simple RSI EA en mql5 | Programmation MT5
Dans ce didacticiel, Toby se présente et explique l'objectif du didacticiel, qui est de montrer comment coder un simple Expert Advisor (EA) à l'aide de MetaEditor. L'EA utilisera l'indicateur RSI pour générer des signaux d'achat et de vente basés sur des conditions de survente et de surachat. Toby mentionne également qu'un stop loss, un take profit et une option pour quitter les transactions sur un signal inverse seront inclus dans l'EA.
Toby commence par créer un nouveau fichier EA dans MetaEditor et nettoie le code existant. Il définit ensuite les paramètres d'entrée pour l'EA, tels que le nombre magique, la taille du lot, la période RSI, le niveau RSI, le stop loss, le take profit et l'option de clôture des transactions sur un signal inverse. Il attribue des valeurs par défaut à ces paramètres d'entrée et ajoute des commentaires pour décrire chacun d'entre eux.
Après avoir défini les paramètres d'entrée, Toby passe à la création de la section des variables globales. Il déclare des variables pour la poignée de l'indicateur RSI, un tampon pour stocker les valeurs RSI, une variable de type tick pour stocker le tick actuel, un objet commercial pour ouvrir et fermer des positions et deux variables datetime pour s'assurer qu'un seul commerce est ouvert par barre. Il inclut également la directive #include nécessaire pour accéder à la classe CTrade.
Ensuite, Toby implémente la validation des paramètres d'entrée dans la fonction OnInit(). Il vérifie si chaque paramètre d'entrée répond aux critères spécifiés et affiche un message d'erreur si une entrée n'est pas valide. Il utilise la fonction Alert() pour imprimer les messages d'erreur et revient de la fonction OnInit() si une erreur est rencontrée.
En plus de la validation des entrées, Toby définit le nombre magique pour l'objet commercial et crée la poignée de l'indicateur RSI. Il vérifie si la création du handle a réussi et affiche un message d'erreur en cas d'échec. Il définit également la série pour le tampon RSI afin de simplifier le travail avec les valeurs.
Dans la fonction OnDeinit(), Toby libère l'indicateur RSI à l'aide de la fonction IndicatorRelease() pour libérer des ressources.
Passant à la fonction OnTick(), Toby commence par obtenir le tick actuel à l'aide de la fonction SymbolInfoTick(). Il vérifie si la récupération des ticks a réussi et affiche un message d'erreur en cas d'échec. Il attribue les cours vendeur et acheteur du tick actuel à la variable globale currentTick pour une utilisation future.
Ensuite, Toby récupère les valeurs de l'indicateur RSI à l'aide de la fonction CopyBuffer(). Il attribue les valeurs à une variable appelée rsiValues et vérifie si la récupération a réussi. Il stocke les deux valeurs RSI dans le tampon pour une analyse plus approfondie.
Avec les données nécessaires récupérées, Toby peut maintenant procéder à l'implémentation de la logique de trading dans la fonction OnTick(). Cependant, le code fourni dans le texte est coupé et les détails restants sont manquants.
Le didacticiel couvre la configuration initiale de l'EA, y compris la définition des paramètres d'entrée, la validation des entrées, la déclaration des variables globales, la gestion des indicateurs RSI et la récupération des ticks actuels. Le didacticiel établit les bases de la mise en œuvre de la logique de négociation dans les étapes suivantes.
Incroyable robot de trading RSI dans mql5 ! | Programmation MT5
Incroyable robot de trading RSI dans mql5 ! | Programmation MT5
Hé, c'est Toby, et aujourd'hui je vais vous montrer comment coder une stratégie avec un taux de réussite de 100 %. Dans ce tutoriel, nous allons modifier un Expert Advisor (EA) existant et ajouter un filtre à l'indicateur RSI. Je vais vous guider pas à pas dans le processus de codage. Commençons!
Étape 1 : Mise en place de la stratégie Nous allons travailler dans le MetaEditor. Ouvrez l'EA que nous avons créé dans la vidéo précédente. Si vous ne l'avez pas encore regardé, je vous le mets en lien pour vous rattraper. Enregistrez le fichier sous un nouveau nom, tel que "RSI_MA_Filter_EA".
Étape 2 : Modification des entrées Pour implémenter le filtre, nous devons ajouter une entrée de période moyenne mobile. Nous inclurons également une entrée pour la période sur laquelle la moyenne mobile s'exécute. Nous garderons le stop loss, le take profit et les entrées de signal opposées telles qu'elles sont.
Étape 3 : Ajustement des variables globales Dans la section des variables globales, nous devons renommer la poignée et le tampon de l'indicateur RSI pour les différencier de la moyenne mobile. Nous allons ajouter une poignée et un tampon pour la moyenne mobile. De plus, nous pouvons supprimer les variables inutiles liées à l'achat de temps d'ouverture et à la vente de temps d'ouverture.
Étape 4 : Apporter des modifications à la fonction onInit Dans la fonction onInit, nous allons ajouter une vérification de l'entrée de la période moyenne mobile. Nous modifierons également la poignée RSI pour utiliser le prix d'ouverture au lieu du prix de clôture. Ensuite, nous allons créer la poignée et le tampon pour l'indicateur de moyenne mobile.
Étape 5 : Mise à jour de la fonction Décocher Dans la fonction Décocher, nous allons d'abord vérifier si le tick actuel est un nouveau tick ouvert de barre. Sinon, nous reviendrons et attendrons la prochaine barre ouverte. Nous allons ajouter une fonction personnalisée pour effectuer cette vérification. Ensuite, nous allons récupérer les valeurs de la moyenne mobile et les stocker dans la mémoire tampon. Nous ajusterons également les conditions d'ouverture des positions d'achat et de vente pour inclure le filtre de moyenne mobile.
Étape 6 : Compilation et test Après avoir apporté toutes les modifications nécessaires, nous compilerons le code pour rechercher d'éventuelles erreurs. Si tout se compile avec succès, nous pouvons procéder au test de l'EA dans le testeur de stratégie. Nous effectuerons un test visuel en utilisant des données historiques de 2012 à aujourd'hui, en sélectionnant les entrées appropriées pour le RSI et les périodes de moyenne mobile, stop loss, take profit et l'option de clôturer les transactions sur un signal opposé.
En suivant ce tutoriel, vous avez appris à coder une stratégie avec un taux de réussite de 100 %. Nous avons modifié un EA existant et ajouté un filtre de moyenne mobile à l'indicateur RSI. N'oubliez pas de sauvegarder votre fichier et de le compiler sans aucune erreur. Vous pouvez maintenant tester la stratégie dans la plateforme MetaTrader 5 en utilisant le testeur de stratégie. Bonne chance dans vos futurs efforts de codage !
Donchian canal personnalisé Indicateur EA | Programmation MT5
Donchian canal personnalisé Indicateur EA | Programmation MT5
Salut, c'est Toby. Aujourd'hui, je vais vous montrer comment coder un indicateur personnalisé en MQL5. Nous allons créer un indicateur Donchian Channel et l'utiliser plus tard pour développer un Expert Advisor (EA) rentable. Une fois l'EA prêt, nous effectuerons des backtests pour évaluer ses performances. Comme vous pouvez le voir sur les résultats, la stratégie fonctionne remarquablement bien. Commençons!
Analysons maintenant les résultats dans le Strategy Tester. Le conseiller expert du canal Donchian montre des résultats prometteurs. Donc, notre première étape consiste à définir la stratégie. Nous allons coder un indicateur Donchian Channel personnalisé et l'utiliser pour créer l'Expert Advisor. Décrivons l'idée de stratégie de base sur le graphique.
Les lignes bleues représentent l'indicateur Donchian Channel que nous allons coder dans cette vidéo. Le canal Donchian affiche le plus haut et le plus bas des n-bars précédents. De nombreux commerçants utilisent le canal Donchian pour développer des stratégies d'évasion, où ils entrent dans une transaction d'achat lorsque le prix dépasse la bande supérieure. Cependant, pour cette évaluation environnementale, nous allons explorer l'approche opposée. Nous prendrons une transaction de vente chaque fois que le prix franchira la bande supérieure du canal Donchian. De même, nous prendrons une position d'achat lorsque le prix passera sous la bande inférieure du canal Donchian. Nous définirons également un stop-loss basé sur des points ou un pourcentage du canal. De plus, nous pourrions ajouter un filtre à l'EA du canal Donchian pour tenir compte de la taille du canal.
Passons maintenant au Meta Editor pour commencer à coder notre indicateur Donchian Channel personnalisé.
Dans le Meta Editor, commençons par créer un nouveau fichier d'indicateur personnalisé. Nous allons nettoyer un peu le code en supprimant les commentaires inutiles et en alignant les crochets. Ensuite, nous définirons les propriétés de l'indicateur. Nous préciserons qu'il doit être affiché dans la fenêtre principale du graphique plutôt que dans une fenêtre séparée. Nous déclarerons également le nombre de tampons et de tracés que notre indicateur aura, qui dans ce cas est de deux.
Ensuite, nous définirons les entrées de notre indicateur personnalisé. Ces entrées permettent aux utilisateurs de personnaliser l'indicateur lors de son application à un graphique. Nous allons créer des entrées pour la période du canal Donchian, le décalage du canal (en pourcentage) et la couleur du canal.
Après avoir compilé le code, nous passerons à la section Variables globales, où nous définirons les variables nécessaires pour l'indicateur. Nous allons créer des tampons pour les valeurs supérieures et inférieures du canal Donchian et des variables supplémentaires pour stocker les valeurs supérieures et inférieures, ainsi que le premier index de barre.
Dans la fonction OnInit, nous allons initialiser nos tampons et définir le nom abrégé de l'indicateur, qui sera utilisé pour identifier l'indicateur sur le graphique.
Enfin, dans la fonction OnCalculate, nous effectuerons le calcul pour l'indicateur Donchian Channel. Nous vérifierons s'il y a suffisamment de barres dans le graphique pour continuer. Sinon, nous retournerons zéro. Sinon, nous calculerons les valeurs supérieure et inférieure pour chaque barre en utilisant les prix d'ouverture. Nous stockerons ces valeurs dans les tampons correspondants.
Une fois le code compilé sans erreur ni avertissement, nous pouvons tester notre indicateur personnalisé. Ouvrez un graphique, accédez au navigateur et recherchez l'indicateur My Donchian Channel. Faites-le glisser et déposez-le sur le graphique. Dans les paramètres de l'indicateur, spécifiez la période, le décalage et la couleur souhaités.
Super bot de trading Donchian Channel en mql5 ! | Programmation MT5
Super bot de trading Donchian Channel en mql5 ! | Programmation MT5
Une fois que vous avez ajouté l'indicateur personnalisé au graphique, vous verrez le canal Donchian affiché sous forme de lignes bleues. L'indicateur Donchian Channel affiche le plus haut et le plus bas des barres 'n' précédentes. Il est couramment utilisé pour créer des stratégies d'évasion, où les traders entrent dans des transactions d'achat lorsque le prix passe au-dessus de la bande supérieure du canal Donchian, et vendent des transactions lorsqu'il passe en dessous de la bande inférieure.
Cependant, pour cet EA (Expert Advisor), nous voulons tester l'approche inverse. Au lieu d'acheter lorsque le prix passe au-dessus de la bande supérieure, nous vendrons, et vice versa. Ainsi, chaque fois que le prix passe au-dessus de la bande supérieure du canal Donchian, nous prendrons une position de vente, et lorsqu'il passera en dessous de la bande inférieure, nous prendrons une position d'achat.
De plus, nous fixerons un stop loss pour chaque transaction, soit en points, soit en pourcentage du canal. Nous pouvons également envisager d'ajouter un filtre à l'EA du canal Donchian en fonction de la taille du canal. Passons maintenant au MetaEditor pour commencer à coder notre indicateur Donchian Channel personnalisé.
Dans le MetaEditor, créez un nouveau fichier d'indicateur personnalisé en cliquant sur « Nouveau » dans le coin supérieur gauche, en sélectionnant « Indicateur personnalisé » et en cliquant sur « Suivant ». Nommez le fichier « MyDonchianChannel » et cliquez sur « Suivant » et « Terminer » pour terminer le processus. Une fois le fichier créé, nettoyez le code en supprimant les commentaires inutiles et en alignant les crochets. Ensuite, compilez le code pour vérifier les erreurs ou les avertissements.
Maintenant, définissons les propriétés de notre indicateur personnalisé. Nous voulons qu'il soit affiché dans la fenêtre principale du graphique, alors définissez la propriété "indicator_chart_window" sur true. Nous devons également définir le nombre de tampons et de parcelles pour notre indicateur. Puisque nous avons deux lignes (supérieure et inférieure), définissez "indicator_buffers" sur 2 et "indicator_plots" sur 2.
Ensuite, nous définirons les paramètres d'entrée de notre indicateur personnalisé. Nous avons besoin d'entrées pour la période du canal Donchian, le pourcentage de décalage et la couleur des lignes indicatrices. Définissez ces entrées à l'aide des types appropriés (entier pour période et décalage, et couleur pour couleur), et définissez des valeurs par défaut et des commentaires pour chaque entrée.
Compilez à nouveau le code pour vous assurer qu'il n'y a pas d'erreurs ou d'avertissements.
Passons maintenant au codage de la fonction "onCalculate" de l'indicateur personnalisé. Tout d'abord, vérifiez si le nombre de barres dans le graphique est inférieur à la période d'entrée plus un. Si c'est le cas, il n'y a pas assez de barres pour calculer l'indicateur, alors retournez avec zéro. Ensuite, définissez la variable "première", qui représente la première barre pour laquelle nous voulons commencer à calculer le canal Donchian. Si le calcul précédent n'a pas été effectué (previous_calculated vaut zéro), définissez "first" sur la période d'entrée. Sinon, définissez-le sur previous_calculated moins un. Maintenant, nous devons parcourir les barres en utilisant une boucle for. Commencez la boucle à partir de la "première" barre et continuez jusqu'à ce que la barre actuelle soit inférieure au nombre total de barres du graphique. Augmentez le compteur de barres à la fin de chaque itération de boucle.
À l'intérieur de la boucle, calculez les valeurs supérieures et inférieures du canal Donchian en utilisant les prix d'ouverture de chaque barre. Stockez ces valeurs dans les variables "supérieur" et "inférieur", respectivement.
Pour calculer le décalage, soustrayez la valeur inférieure de la valeur supérieure et multipliez-la par le décalage d'entrée divisé par 100. Cela nous donnera la valeur de décalage en points ou en pourcentage du canal. Enfin, stockez les valeurs calculées dans les tampons correspondants à l'aide de l'index de tampon et du compteur de barres. Après avoir calculé et stocké les valeurs dans les tampons, nous devons définir les étiquettes des indicateurs pour chaque parcelle. Ces libellés seront affichés dans la fenêtre des propriétés de l'indicateur.
Attribuez les étiquettes pour les tracés supérieur et inférieur à l'aide de la fonction SetIndexLabel(), en passant l'index de tampon et l'étiquette en tant que paramètres. Ensuite, nous allons définir les couleurs des lignes indicatrices à l'aide des fonctions SetIndexStyle() et SetIndexColor(). Spécifiez l'indice de tampon, le style de ligne (par exemple, STYLE_SOLID) et la couleur souhaitée pour chaque ligne.
Enfin, nous ajouterons du code supplémentaire pour rendre l'indicateur plus attrayant visuellement. Nous pouvons masquer le nom de l'indicateur en définissant la propriété indicator_shortname sur une chaîne vide. De plus, nous pouvons ajouter une étiquette de graphique avec la valeur actuelle de la bande supérieure à l'aide des fonctions ObjectCreate() et ObjectSetText().
Compilez à nouveau le code pour vous assurer qu'il n'y a pas d'erreurs ou d'avertissements.
Toutes nos félicitations! Vous avez codé avec succès l'indicateur personnalisé Donchian Channel. Désormais, vous pouvez utiliser cet indicateur dans votre Expert Advisor pour mettre en œuvre votre stratégie de trading.
Dans l'étape suivante, nous passerons au codage de l'Expert Advisor (EA) qui utilisera l'indicateur Donchian Channel pour exécuter des transactions basées sur la stratégie d'évasion. Ouvrez un nouveau fichier dans MetaEditor, nommez-le "DonchianChannelEA" et sélectionnez l'option "Expert Advisor". Cliquez sur "Suivant" et "Terminer" pour créer le fichier. Nettoyez le code initial en supprimant les commentaires inutiles et en alignant les crochets.
Tout d'abord, nous allons définir les paramètres d'entrée pour notre EA. Ceux-ci incluront la taille du lot, le stop loss, le take profit, ainsi que la période et le décalage pour le canal Donchian. Définissez ces entrées à l'aide des types appropriés et définissez des valeurs par défaut et des commentaires pour chaque entrée. Ensuite, nous allons coder la fonction OnInit(). Dans cette fonction, nous allons initialiser l'indicateur Donchian Channel en appelant la fonction iCustom() avec les paramètres nécessaires.
Créez des variables pour stocker la poignée de l'indicateur, les valeurs de la bande supérieure et les valeurs de la bande inférieure. Utilisez la fonction ArraySetAsSeries() pour définir les tableaux en série afin de garantir une indexation correcte. Passons maintenant au codage de la fonction principale OnTick(), qui gérera la logique de trading.
Commencez par vérifier s'il y a suffisamment de barres pour calculer le canal Donchian. Sinon, retournez avec zéro. Obtenez les valeurs actuelles des bandes supérieure et inférieure à partir de l'indicateur à l'aide de la fonction CopyBuffer(). Maintenant, nous allons vérifier s'il y a un signal d'achat. Si le prix dépasse la bande supérieure, ouvrez une position de vente à l'aide de la fonction OrderSend(). Définissez le type de commande approprié (OP_SELL), la taille du lot, le stop loss et les niveaux de profit. N'oubliez pas de gérer les erreurs potentielles renvoyées par la fonction OrderSend().
De même, recherchez un signal de vente. Si le prix passe en dessous de la bande inférieure, ouvrez une position d'achat à l'aide de la fonction OrderSend(). Définissez le type de commande approprié (OP_BUY), la taille du lot, le stop loss et les niveaux de profit.
Compilez le code pour vous assurer qu'il n'y a pas d'erreurs ou d'avertissements.
C'est ça! Vous avez terminé le codage pour le Donchian Channel Expert Advisor. Vous pouvez maintenant tester l'EA sur un compte de démonstration ou le tester à l'aide de données historiques pour évaluer ses performances. N'oubliez pas de tester soigneusement votre EA et d'envisager de mettre en œuvre des techniques de gestion des risques avant de l'utiliser sur un compte de trading réel. Veuillez noter que le code fourni est une implémentation de base et peut nécessiter d'autres modifications ou améliorations pour répondre à vos besoins commerciaux spécifiques.