programmation
Maintenant vous lisez
MQL pratiquement. Panic Button, part I [Cours de programmation]
0

MQL pratiquement. Panic Button, part I [Cours de programmation]

établi Radek SzafronMars 21 2019

Bienvenue dans le deuxième épisode de MQL Practically! Dans la deuxième partie de notre cours, nous recommencerons avec une feuille de papier vierge et rédigerons une nouvelle application étape par étape. Nous apprendrons à connaître les éléments que chaque programmeur utilise dans son travail quotidien, tels que les fonctions, les opérateurs logiques et les boucles, ce dont chacun de vous doit avoir entendu parler, mais vous ne savez pas exactement de quoi il s'agit. Heureusement, dans notre série, nous donnons la théorie savoureuse et sans exagération, et nous nous concentrons sur ce qui est le plus important, à savoir la programmation en pratique.

Cette semaine nous allons écrire la première partie de l'application "Bouton de secours"dont je pense que le nom explique déjà beaucoup de choses. La tâche de notre programme sera, après avoir appuyé sur un bouton, de fermer immédiatement toutes les positions et commandes ouvertes, lorsqu'une sueur froide apparaît sur notre front, le monde se tait et l'image se rétrécit à un petit champ brumeux avec un taux vacillant d'un dollar qui se précipite après l'un des jolis tweets de l'un des nos politiciens préférés.

Retroussons nos manches et allumons MetaEditor

Commençons par créer un fichier de type vide dans l'éditeur Expert nommé Bouton panique.mq4. Le fichier sera dans le répertoire MQL4 \ Experts. Ensuite, mettez tous les fichiers dont vous avez besoin aujourd'hui dans les bons dossiers.

fichier "Fonctions_utiles.mqh" doit être placé dans le répertoire MQL4 \ Include \ Panic Button \

fichier "Biblioteka_panic_button.ex4" doit être placé dans le répertoire MQL4 \ Libraries \ Panic Button \

TELECHARGER UN ENSEMBLE DE FICHIERS MQL

Premiers personnages

Changeons le code de notre application, c'est-à-dire le fichier Bouton panique.mq4 du catalogue Experts. Signalons au compilateur que nous utilisons la dernière syntaxe du langage MQL4 en tapant:

# Propriété strict
Code MQL4

Trois fois "et"

#comprendre

En utilisant le mot clé #comprendre nous pouvons joindre d'autres fichiers sources à votre code. Dans le dossier Przydatne_funkcje.mqh nous avons préparé la fonction nécessaire dans la partie suivante:

bool Zamknij_pozycje_i_zlecenia (bool tylko_ten_instrument)

Pour que nous puissions utiliser le code supplémentaire, nous devons l’ajouter à notre fichier en tapant #comprendre et le chemin d'accès. Exactement comme dans l'encadré ci-dessous.

#comprendre ".. \\ Inclure \\ Bouton panique \\ Fonctions_utiles.mqh"
Code MQL4

# Import

Mot-clé # Import Cependant, cela nous permet d'utiliser des bibliothèques externes. Les bibliothèques sont des algorithmes distincts et compilés qui partagent leurs fonctions et leurs ressources avec d'autres programmes. Ci-dessous, nous importons une bibliothèque nommée Biblioteka_panic_button.ex4qui contient des éléments graphiques et des fonctions pour notre bouton. Entre les éléments # Import nous plaçons une liste de définitions de fonctions que la bibliothèque devrait nous fournir.

L'importation correcte de la bibliothèque ressemble à ceci:

# Import "Bouton Panique \\ Biblioteka_panic_button.ex4"
annuler Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski); annuler Przycisku_badz_czujny (); bool Przycisku_czy_jestes_klikniety (un magnifique object_name); annuler Przycisku_bye_bye ();
# Import
Code MQL4

contribution

Après avoir ajouté les fichiers sources et les bibliothèques, nous pouvons procéder à la création des fonctions de notre programme. Commençons par ajouter la ligne suivante:

contribution bool Tylko_ten_instrument = faux;
Code MQL4

Élément contribution informe le compilateur que nous sommes en train de créer un paramètre qui sera disponible dans la fenêtre de configuration de l'application et que sa valeur dépendra du choix de l'utilisateur. Le paramètre que nous avons créé prend la valeur de type bool czyli oui lub non. Nous l'avons appelé Tylko_ten_instrument et en utilisant ce nom, nous pourrons nous référer à sa valeur dans le futur, ce qui nous aidera à décider s'il convient de fermer toutes les positions ou seulement la position de l'instrument sur lequel notre programme fonctionne.

Première fonction

Ajoutons l'extrait de code suivant à notre fichier:

int OnInit ()
{
retourner INIT_SUCCEEDED;
}
Code MQL4

L’enregistrement ci-dessus signifie que nous créons une fonction nommée OnInitqui renverra des valeurs de type int, c’est-à-dire des entiers. Les fonctions renvoient des valeurs à l'aide d'un mot clé retourner.

Nous avons mentionné qu'en utilisant le mot retourner notre fonction retourne des valeurs sous forme d'entiers. Alors, quel est un disque mystérieux? INIT_SUCCEEDED ? Pour notre commodité dans la langue, il existe de nombreuses valeurs définies automatiquement et INIT_SUCCEEDED n'est que l'un d'entre eux. Sous son nom se trouve un entier, connu du compilateur sous le nom de "tout va bien".

fonction OnInit () fait partie de l'API MQL, ce qui signifie une fonction disponible dans le langage. Les fonctions de l'API MQL sont marquées dans le code sur violacé. Après le démarrage de l'application, notre algorithme appellera automatiquement la fonction OnInit () et il ne le fera qu'une fois, au tout début, pour nous permettre d'effectuer les opérations nécessaires à l'exécution de notre programme.

Le contenu de la fonction

Entre les accolades de chaque fonction, nous entrons les instructions qu'une fonction donnée doit effectuer. Notre fonction OnInit () contient déjà une instruction - retourner INIT_SUCCEEDED;

Développons la fonction de la fonction OnInit (), rappelant de coder retourner INIT_SUCCEEDED; il est toujours resté au bas de la fonction, car nous ne voulons l'appeler que lorsque toutes les autres instructions ont abouti.

Opérateur conditionnel si

if(IsDemo () == non)
{
 
retourner INIT_FAILED;
 
}
Code MQL4

Le code ci-dessus, en utilisant un opérateur conditionnel if, vérifie si l’environnement de nos expériences est sécurisé et nous travaillons sur un compte de démonstration.

Construction de l'opérateur if est toujours très similaire. Un enregistrement entre les crochets après l'opérateur, c'est-à-dire l'enregistrement IsDemo () == non nous appelons une expression conditionnelle. C'est une expression logique qui peut renvoyer l'une des deux valeurs - oui lub non. Lorsque l'expression conditionnelle renvoie une valeur oui ce sera le code entre les accolades qui apparaissent directement après l'opérateur if.

Le symbole == dans une expression conditionnelle pose une question si la valeur à gauche est égale à la valeur à droite. Parce que la fonction IsDemo () renverra la valeur nonlorsque nous activons le programme sur le compte réel, notre expression conditionnelle, dans son ensemble, renverra la valeur ouiparce que la valeur à gauche du symbole == correspondra à la valeur à droite. Quand une expression conditionnelle est remplie, un code sera exécuté entre les accolades de l'opérateur if et le programme renverra des informations sur l'échec avec l'aide de l'opérateur retourner et valeur générée automatiquement sous le nom INIT_FAILED.


conseillers experts


On dessine un bouton

Nous dessinons notre bouton en utilisant la fonction Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski)qui vient de la bibliothèque précédemment importée. La fonction accepte deux paramètres avec un type de données int (entiers) avec noms x oraz yqui servent de coordonnées de la position du bouton sur le graphique par rapport au coin supérieur droit de la fenêtre.

De plus, la fonction suppose un paramètre de type bool (oui lub non) nommé wybieram_niebieski. Étant donné que notre application pourra fonctionner dans deux modes, pour le compte entier ou pour un instrument, notre bouton aura la couleur appropriée en fonction des paramètres sélectionnés.

Nous aimons ify

Déterminons que nous voulons que le bouton soit bleu lorsqu'il fonctionne en mode mono-instrument et en rouge pour le compte entier. Nous allons activer la coloration du bouton en ajoutant l'instruction suivante à la fonction OnInit ():

bool bleu = non;
if(Tylko_ten_instrument == oui)
{
 
bleu = oui;
}
Code MQL4

Pour que l'algorithme détermine la couleur du bouton, nous définissons d'abord la variable bool nommé bleu et on lui attribue une valeur non. Ensuite, nous utilisons l'opérateur conditionnel ifqui vérifie le paramètre de configuration de l'application Tylko_ten_instrument a été défini par l'utilisateur à une valeur oui. Si tel est le cas, le code qui définit la valeur de la variable est exécuté bleu  aussi sur oui. Une variable préparée de cette façon bleu nous pouvons servir la fonction Przycisku_utworz_sie (..) en ajoutant la ligne de code suivante à la fonction OnInit ().

Przycisku_utworz_sie (5, 15, bleu);
Code MQL4

Dernière fonction (pour aujourd'hui)

Lorsque le programme se termine ou que quelque chose change dans les paramètres, la fonction API MQL sera appelée annuler OnDeinit(const int raison).

Utiliser la fonction OnDeinit () nous effectuons les opérations nécessaires pour terminer correctement le programme. Dans notre cas, après avoir désactivé l'algorithme, il est nécessaire de supprimer le bouton à l'aide de la fonction précédemment importée de la bibliothèque. Przycisku_bye_bye ().

annuler OnDeinit(const int raison)
{
 
Przycisku_bye_bye ();
 
}
Code MQL4

Notez qu'il y a un mot devant le nom de la fonction annuler. Cela signifie que notre fonction ne renverra aucune valeur.

Ajoutez les points-virgules, frottez-vous les mains et appuyez sur compiler

Après une compilation réussie, le code que nous avons écrit aujourd'hui va dessiner un bouton sur le graphique et lui donner un aspect approprié en fonction de la configuration entrée par l'utilisateur dans la fenêtre de configuration. Félicitations, nous avons terminé la première étape de la création de notre application, nous avons créé une interface utilisateur.

La semaine prochaine, nous développerons notre programme de traitement des commandes et nous ajouterons des gadgets intéressants.

TELECHARGER UN ENSEMBLE DE FICHIERS MQL

Qu'en penses-tu?
Je
0%
intéressant
100%
Heh ...
0%
Shock!
0%
Je n'aime pas
0%
blessure
0%
À propos de l'auteur
Radek Szafron
L'auteur de cette publication est Radek Szafron, propriétaire de la société Expert Advisors, qui accompagne les investisseurs depuis de nombreuses années en fournissant des technologies dédiées au marché des changes. L'auteur est diplômé de la Warsaw School of Economics avec la spécialisation "marchés financiers" et programmeur avec une expérience estivale proche de 20. La société implémente des conceptions d'algorithmes et d'applications écrites dans toutes les langues de la famille "C", y compris les plateformes populaires Meta Trader 4 et 5. Des conseillers experts peuvent être trouvés sur www.expertadvisors.pl.