Questions des débutants MQL5 MT5 MetaTrader 5 - page 1345
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
Encore une fois, devez-vous changer le préfixe lors du chargement de la prochaine copie ?
pouvez-vous dire avec des mots quel en est le but ?
peuvent être créés et contrôlés depuis l'extérieur de votre fenêtre.
qu'est-ce que ce sera ?
pouvez-vous dire avec des mots quel en est le but ?
Les boutons peuvent également être créés et contrôlés en dehors de votre fenêtre.
qu'est-ce que ça serait ?
Je ne sais pas, mais ça devrait être comme ça : créer dans votre sous-fenêtre, et quand vous cliquez, obtenir le numéro de cette sous-fenêtre. Vous n'avez pas besoin de dessiner quoi que ce soit, juste un bouton qui, lorsqu'il est cliqué, affiche des informations dans Alert sur le numéro de la sous-fenêtre.
Je ne sais pas, mais c'est ainsi qu'il faut procéder : créer dans votre sous-fenêtre, et lorsque vous cliquez, vous obtenez le numéro de la sous-fenêtre. Vous n'avez pas besoin de dessiner quoi que ce soit, juste un bouton qui, lorsqu'il est cliqué, affiche des informations dans Alert sur le numéro de la sous-fenêtre.
vérifié sur ma première source :
hélas, tout est comme vous l'avez écrit - si vous exécutez plusieurs copies de cet indicateur avec les paramètres par défaut, le bouton ne sera que sur le premier indicateur dans une sous-fenêtre.
mais si vous modifiez les paramètres pendant le démarrage, tout est OK
en général, la situation n'est pas claire
Je l'ai vérifié sur ma première source :
hélas, tout est comme vous l'écrivez - si vous exécutez plusieurs copies de cet indicateur avec les paramètres par défaut, le bouton ne sera que sur le premier indicateur dans la sous-fenêtre
mais si vous changez les paramètres pendant le démarrage, tout est OK
en général, la situation n'est pas claire
Voici donc une question : comment modifier les paramètres automatiquement, sans aller dans les réglages ?
Rien ne fonctionne jusqu'à présent ...
---
P.S. Idéalement, mais hélas
Pour l'instant, ça ne marche pas...
Et ça ne le sera pas :
ajouté dans :
Je place un indicateur - j'obtiens OnInit dans le journal, mais l'indicateur suivant est déjà silencieux, c'est-à-dire qu'une seule copie de l'indicateur est réellement en cours d'exécution, et les autres indicateurs ne sont qu'une coquille graphique.
et ça ne marchera pas :
ajouté dans :
Je place l'indicateur - j'obtiens OnInit dans le journal, mais l'indicateur suivant est déjà silencieux, c'est-à-dire qu'une seule copie de l'indicateur est réellement en cours d'exécution, et les autres indicateurs ne sont qu'une coquille graphique.
C'est comme ça. Je suppose que l'architecture de mt5 n'est pas bonne. Le terminal mt4 fonctionne bien.
Si vous avez décidé de le faire dans mt5, vous interdisez d'exécuter des copies de l'indicateur avec les mêmes paramètres d'entrée, car il semble être présent mais absent.
C'est comme ça. L'architecture de mt5 doit être un désordre. Tout fonctionne bien dans mt4.
Si vous avez décidé de le faire dans mt5, vous auriez dû interdire le lancement de copies d'indicateurs avec les mêmes paramètres d'entrée, car il semble être là, mais en fait il ne l'est pas.
La partie calcul de l'indicateur n'est pas la même que la partie graphique. Par conséquent, la partie calcul est la même pour tous. Il en existe plusieurs de type graphique.
Ne pouvez-vous pas simplement rechercher toutes les sous-fenêtres dans un indicateur et mettre des étiquettes avec le numéro de la sous-fenêtre ? En même temps pour attraper dans le timer le nombre de sous-fenêtres du graphique : quand il est augmenté - ajouter à une nouvelle étiquette de sous-fenêtre. Mais cherchez aussi quel indicateur y est placé - s'il est différent, alors n'ajoutez pas...
C'est juste une idée non testée.
ZS. Je ne suis pas d'accord sur la "courbure". Une partie de calcul pour 20 indicateurs identiques est préférable à 20 parties de calcul pour 20 indicateurs identiques.
La partie calcul d'un indicateur n'est pas la même que la partie graphique. Par conséquent, la partie calcul est la même pour tous. Il en existe plusieurs de type graphique.
Ne pouvons-nous pas simplement rechercher toutes les sous-fenêtres dans un indicateur, et mettre des étiquettes avec le numéro de la sous-fenêtre ? En même temps pour attraper dans le timer le nombre de sous-fenêtres du graphique : augmenté - ajouter à une nouvelle étiquette de sous-fenêtre. Mais cherchez aussi quel indicateur y est placé - s'il est différent, alors n'ajoutez pas...
C'est juste une idée non testée.
ZS. Je ne suis pas d'accord sur la "courbure". Une partie de calcul pour 20 indicateurs identiques est préférable à 20 parties de calcul pour 20 indicateurs identiques.
En effet, aucune réponse au bouton - la copie OnChartEvent ne se déclenche pas et ne comprend pas le numéro de la sous-fenêtre.
Quoi qu'il en soit, voici ce qui ne fonctionne pas et avec cela le reste du code
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégie
FAQ des débutants MQL5 MT5 MetaTrader 5
Igor Makanu, 2021.09.12 21:53
vous ne le faites pas :
ajouté à :
int OnInit() { Print(__FUNCTION__);
Je place un indicateur - j'obtiens OnInit dans le journal, mais l'indicateur suivant est déjà silencieux, c'est-à-dire qu'une seule copie de l'indicateur est réellement en cours d'exécution, et les autres indicateurs ne sont qu'une coquille graphique.
Did, aucune réaction au bouton - la copie OnChartEvent ne fonctionne pas et ne comprend pas le numéro de sous-fenêtre.
Quoi qu'il en soit, voici ce qui ne fonctionne pas et avec cela le reste du code
MAIS ! !! Si je crée un modèle avec 2-3 de ces indicateurs sous le nom de "Debug.tpl" et que je commence à déboguer l'indicateur, alors OnInit() fonctionne comme il le devrait.
En général, j'ai fait une telle expérience :
J'ai transféré #property à son maximum dans OnInit() en espérant que tant que l'indicateur n'est pas créé, OnInit() s'exécutera et fera un nom court pour l'indicateur, selon le nombre d'indicateurs dans la fenêtre.
Mais ça n'a pas aidé :
Je commence la première copie
Nom de l'indicateur 2.........
Je lance la deuxième copie - le nom de l'indicateur est toujours 2 pour les deux indicateurs.
Je lance le débogage et qu'est-ce que je vois ! L'indicateur pas encore chargé est déjà en train d'imprimer... lisez la deuxième et la troisième ligne...
Comment est-ce possible ?
La poursuite du débogage s'arrête à l'entrée de OnInit(), la variable windows_total contient des déchets, short_name est toujours une chaîne vide...
Hi......... mais tout est déjà imprimé... comment ça se fait ? ??
Et le nom court a déjà changé.
En conséquence, après un chargement complet de l'indicateur en mode débogage, l'indicateur a les noms suivants
Peut-être devrions-nous attirer l'attention des développeurs sur de tels bugs...