Questions des débutants MQL5 MT5 MetaTrader 5 - page 966

 
kopeyka2:


Mieux encore, indiquez clairement ce que vous voulez atteindre. Je vais probablement vous montrer un exemple complet.

 
jdjahfkahjf:

Qu'est-ce que cela signifie ?


Lire l'aide : Modes d'optimisation.

 

Pouvez-vous me dire, s'il vous plaît. Comment un Expert Advisor est-il réinitialisé (par exemple, lors de l'exécution de ChartSetSymbolPeriod() ) ?

Est-il correct de comprendre que la réinitialisation ne concerne en fait que les variables locales dans les fonctions.

Et quelles sont les règles pour les variables globales?

Selon mon observation, les variables globales héritent de leurs valeurs après le passage OnDeinit - OnInit.

Il devrait en être ainsi ?

 
User_mt5:

Pouvez-vous me dire, s'il vous plaît. Comment un Expert Advisor est-il réinitialisé (par exemple, lors de l'exécution de ChartSetSymbolPeriod() ) ?

Est-il correct de comprendre que la réinitialisation ne concerne en fait que les variables locales dans les fonctions.

Et quelles sont les règles pour les variables globales?

Selon mon observation, les variables globales héritent de leurs valeurs après le passage OnDeinit - OnInit.

Il devrait en être ainsi ?

Инициализация глобальных переменных программы и другие полезные знания.
Инициализация глобальных переменных программы и другие полезные знания.
  • 2016.11.29
  • www.mql5.com
Встал на форуме недавно вопрос по поводу верной/неверной инициализации глобальных переменных в программах...
 
Artyom Trishkin:

Merci.

Le problème avec ce MQL est qu'il est intuitivement imprévisible :

- pas sur la distinction global-local

- ni en matière de différences entre les indicateurs et les experts.

(la dernière copie de la correspondance avec SD a également été très utile dans la discussion ci-dessus au lien, merci)

 
Quelqu'un peut-il me dire comment exposer de manière programmatique des fenêtres dans le terminal ? (largeur, hauteur et accrochage)
 
User_mt5:
Quelqu'un peut-il me dire comment définir les fenêtres dans le terminal de manière programmatique ? (Largeur, hauteur et positionnement).

Déconnectez la fenêtre du terminal et essayez ensuite (personnellement, je n'ai pas encore essayé de définir ces propriétés) :

MQL5 : Ajout de nouvelles propriétés pour lier/détacher les graphiques à/de la fenêtre principale du terminal et contrôler leur position.

Ajout de nouvelles propriétés dans l'énumérationENUM_CHART_PROPERTY_INTEGER:

  • CHART_IS_DOCKED - la fenêtre du graphique est fixe. S'il a la valeur false, le graphique peut être déplacé en dehors du terminal.
  • CHART_FLOAT_LEFT - coordonnée gauche du graphique détaché par rapport à l'écran virtuel.
  • CHART_FLOAT_TOP - coordonnée supérieure du graphique par rapport à l'écran virtuel.
  • CHART_FLOAT_RIGHT - coordonnée de droite du graphique détaché par rapport à l'écran virtuel.
  • CHART_FLOAT_BOTTOM - coordonnée inférieure du graphique détaché par rapport à l'écran virtuel.


Ajoutéà l' énumérationENUM_TERMINAL_INFO_INTEGER:

  • TERMINAL_SCREEN_LEFT - coordonnée gauche de l'écran virtuel. L'écran virtuel est un rectangle couvrant tous les moniteurs. Si le système comporte deux moniteurs et que leur ordre est défini de droite à gauche, la coordonnée gauche de l'écran virtuel peut se trouver à la limite des deux moniteurs.
  • TERMINAL_SCREEN_TOP - coordonnée supérieure de l'écran virtuel.
  • TERMINAL_SCREEN_WIDTH - largeur du terminal.
  • TERMINAL_SCREEN_HEIGHT - hauteur du terminal.
  • TERMINAL_LEFT - coordonnée gauche du terminal par rapport à l'écran virtuel.
  • TERMINAL_TOP - coordonnée supérieure du terminal par rapport à l'écran virtuel.
  • TERMINAL_RIGHT - coordonnée droite du terminal par rapport à l'écran virtuel.
  • TERMINAL_BOTTOM - coordonnée inférieure du terminal par rapport à l'écran virtuel.
 
Vladimir Karputov:

Déconnectez la fenêtre du terminal et essayez ensuite (je n'ai pas encore personnellement défini ces propriétés) :

Merci.

Je l'ai essayé. Cela fonctionne tant bien que mal (en particulier, la fenêtre est minimisée, quand on minimise le terminal, il disparaît, mais quand on déplie l'écran, celui précédemment minimisé s'ouvre à sa taille, à chaque fois il faut le minimiser à nouveau, pour qu'il ne se loge pas).

Mais ce n'est pas tout. Je n'ai pas besoin de détacher les graphiques, j'ai juste besoin de les tesseller ou autre chose comme je l'entends. Il ne semble pas y avoir une telle chose dans MT5...

(l'idée générale est que dans un Expert Advisor multidevises, j'ai besoin de visualiser les transactions par symboles prédéfinis ;
il y a un bouton qui ouvre tous les graphiques sur lesquels des ordres et des positions sont ouverts ;
mais les fenêtres s'ouvrent à une taille incontrôlable et je dois les arranger manuellement sur l'écran ;
et moi, paresseux, j'aimerais que mon programme intellectuellement inaccessible le fasse :)

 
User_mt5:

Merci.

Je l'ai essayé. Cela fonctionne moyennement (en particulier, la fenêtre est minimisée, disparaît quand on minimise le terminal, mais quand on déplie l'écran, celle précédemment minimisée s'ouvre à sa taille, il faut à chaque fois la minimiser à nouveau pour qu'elle ne s'affiche pas).

Mais ce n'est pas tout. Je n'ai pas besoin de détacher les graphiques, j'ai juste besoin de les tesseller ou autre chose comme je l'entends. Il semble que cela n'existe pas dans MT5.

(l'idée générale est que dans un Expert Advisor multi-devises on a besoin de visualiser les transactions par symboles prédéfinis ;
il y a un bouton qui ouvre tous les graphiques avec les ordres et positions ouverts ;
mais les fenêtres s'ouvrent de façon incontrôlable et je dois les arranger manuellement sur l'écran ;
et moi, étant paresseux, j'aimerais que mon programme intellectuellement inaccessible le fasse :)

Pourquoi ne pas utiliser WinAPI ? En particulier, MQL5 a introduit le support de

MQL5 : Le support des fonctions WinAPI a été ajouté à la bibliothèque standard. Désormais, pour utiliser les fonctions du système d'exploitation dans les programmes MQL5, il n'est plus nécessaire d'importer manuellement les bibliothèques et de décrire les signatures des fonctions. Le fichier d'en-tête du répertoire MQL5\Include\WinAPI est suffisant.

Les fonctions WinAPI sont regroupées dans des fichiers séparés en fonction de leurs objectifs :

  • libloaderapi.mqh - gestion des ressources
  • memoryapi.mqh - gestion de la mémoire
  • processenv.mqh - gestion de l'environnement
  • processthreadsapi.mqh - travailler avec des processus
  • securitybaseapi.mqh - fonctionnement avec le système de sécurité de l'OS
  • sysinfoapi.mqh - obtenir des informations sur le système
  • winbase.mqh - fonctions générales
  • windef.mqh - constantes, structures et énumérations.
  • wingdi.mqh - opération avec des objets graphiques
  • winnt.mqh - gestion des exceptions
  • winreg.mqh - manipulation du registre
  • winuser.mqh - contrôle des fenêtres et des interfaces
  • errhandlingapi.mqh - gestion des erreurs
  • fileapi.mqh - manipulation des fichiers
  • handleapi.mqh - travailler avec des poignées
  • winapi.mqh - connexion de toutes les fonctions (fichiers d'en-tête WinAPI)


La liaison ne fonctionne qu'avec une architecture 64 bits.

 
Vladimir Karputov:

Pourquoi ne pas utiliser WinAPI ?

Je suppose. Mais c'est là que s'arrête mon expertise.

Ce serait bien s'il y avait une certitude pour qui mql5 - pour intelligent ou pour beau. Je suis loin d'être intelligent.
Pour utiliser l'API, j'ai besoin d'une description et d'exemples. Sans elle, la montagne d'or des bibliothèques restera inutilisée pour moi.
- Je ne suis pas capable et je ne regarderai pas des milliers de lignes de code non commenté dans l'espoir de trouver quelque chose d'utile.

Raison: