Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Avec MQL5 pour Metatrader5, nous créons un objet Canal de déviation qui est dessiné et ajusté automatiquement comme un canal de tendance directement sur notre graphique Forex.
Dans cette vidéo, nous allons créer un objet canal pour un canal dit de déviation. Découvrons comment faire cela avec MQL5.
Pour commencer, veuillez cliquer sur la petite icône ici, ou appuyez sur F4 sur votre clavier. Maintenant vous devriez voir la fenêtre MetaEditor, et ici vous voulez cliquer sur File, New File, Expert Advisor from Template, Continue. Je vais appeler ce fichier SimpleDevChannel. Cliquez sur Continuer, Continuer et Terminer. Maintenant vous pouvez supprimer tout ce qui se trouve au-dessus de la fonction OnTick, et supprimons également les deux lignes de commentaire ici.
Tout d’abord, nous voulons calculer le nombre de bougies sur le graphique. Cela peut être fait en utilisant ChartGetInteger. Pour l’id de graphique zéro. Nous utilisons CHART_FIRST_VISIBLE_BAR. Le dernier paramètre est pour la sous-fenêtre. Dans notre cas, c’est la sous-fenêtre zéro. C’est la fenêtre avec les bougies.
Si vous aimez les oscillateurs, vous savez qu’ils sont dessinés dans une fenêtre séparée sous les bougies. Mais, nous ne voulons pas faire cela, donc nous utilisons zéro ici. Maintenant, créons une variable pour la bougie la plus basse, et nous devons également créer un tableau pour les prix bas de chaque bougie. Je vais appeler celui-ci bas, et comme vous l’avez peut-être deviné, nous voulons également créer une variable pour la bougie la plus haute et le tableau des prix les plus élevés appelé haut.
Maintenant, nous utilisons ArraySetAsSeries pour les deux tableaux afin de les trier de la bougie actuelle vers le bas. Remplissons maintenant le tableau low en utilisant CopyLow pour le symbole actuel sur le graphique et la période actuellement sélectionnée sur ce graphique. Nous commencerons par la bougie zéro pour toutes les bougies du graphique et copierons les prix les plus bas dans le tableau des valeurs basses.
Bien sûr, nous devons répéter cela pour les prix les plus élevés. Par conséquent, nous utilisons CopyHigh. Cela nous donnera tous les prix les plus élevés de la barre pour le symbole actuel sur le graphique et la période actuellement sélectionnée, en commençant par la bougie zéro pour toutes les bougies sur le graphique et les valeurs seront stockées dans le tableau high.
Pour obtenir la bougie la plus basse du graphique, nous utilisons ArrayMinimum. Cela nous donnera l’élément le plus bas du tableau, et nous le cherchons dans le tableau low, en partant de la bougie zéro pour toutes les bougies du graphique, et nous stockons le numéro de la bougie la plus basse dans cette variable. C’est le numéro de la bougie, pas la valeur.
Vous auriez pu vous attendre à ce que nous devions également faire cela pour la bougie la plus haute. Cette fois, nous utilisons ArrayMaximum, et nous voulons rechercher dans le tableau des valeurs les plus élevées, en commençant par la bougie zéro, pour toutes les bougies du graphique et stocker le résultat dans la variable de la bougie la plus élevée.
Continuons et utilisons MqlRates pour obtenir toutes les informations sur les prix dont nous avons besoin. Il créera un tableau appelé price information, et nous utilisons ArraySetAsSeries pour trier également celui-ci à partir de la bougie actuelle vers le bas.
Ensuite, nous utilisons CopyRates pour le symbole actuel sur le graphique et la période actuellement sélectionnée, en partant de la bougie zéro, c’est-à-dire la bougie actuelle, pour toutes les bougies du graphique et nous stockons le résultat dans notre tableau d’informations sur les prix.
Utilisons ObjectDelete pour supprimer tous les anciens objets pour le symbole actuel sur le graphique. Elle supprimera les objets appelés objets simples de canal, et nous n’aurons pas un tel objet la toute première fois que nous coderons la fonction. Mais par la suite, nous voulons nous assurer que nous supprimons l’ancien canal avant d’en dessiner un nouveau. Cela est fait en utilisant ObjectCreate.
Passons en revue tous les paramètres dont nous avons besoin. Le premier, _Symbol, correspond à la paire de devises actuelle. Le deuxième est le nom de l’objet. Je l’ai appelé Simple Channel Object. Le troisième paramètre est le type de l’objet. Dans ce cas, nous utilisons OBG_STANDARD DEVIATION CHANNEL. Si vous marquez cela et appuyez sur F1, vous verrez qu’il s’agit d’un des types d’objets possibles. Il dessinera un objet de canal d’écart standard, directement sur le graphique.
Dans le paramètre suivant, nous devons définir que nous voulons avoir l’objet sur le graphique de la bougie. C’est la fenêtre numéro zéro. Je voudrais que l’objet soit dessiné pour toutes les bougies du graphique. Je dois soustraire une bougie ici car il s’agit toujours d’un point dans le temps, et ce sont des valeurs. Comme valeur, je voudrais ajouter la bougie la plus basse et le prix le plus bas de cette bougie. C’est le premier point.
Le deuxième point est le moment où la bougie zéro est dessinée. La bougie zéro est la bougie actuelle sur le graphique. Et encore une fois, je vais passer la bougie la plus basse et le prix le plus bas ici.
Le paramètre suivant concerne la deuxième ligne. Je voudrais qu’elle soit tracée pour toutes les bougies du graphique. Mais cette fois, je voudrais passer la bougie la plus haute et le prix le plus élevé comme point de référence. Fermons cela, et c’était ObjectCreate. Vous pouvez jouer et utiliser d’autres paramètres ici, mais pour cet exemple simple, c’est suffisant.