Questions des débutants MQL4 MT4 MetaTrader 4 - page 237
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
L'indicateur de MT5 dessine une ligne en deux couleurs.
Les valeurs de la ligne sont dans le même tampon.
Existe-t-il un moyen d'identifier la couleur de la ligne lors de la demande de valeurs à l'indicateur ?
S'il n'est pas possible d'afficher la fenêtre des paramètres de manière programmatique, veuillez indiquer si les paramètres peuvent être initialisés d'une manière ou d'une autre.
Que recommandez-vous ?
D'abord, les mandats doivent être passés au crible par le symbole et le magicien. Il ne vous reste que deux ordres. Vous sélectionnez celui que vous voulez supprimer sur votre état. Vous en supprimez un et modifiez le stop loss.
Alexey, j'ai demandé une suggestion sur la façon d'appeler la fonction de calcul des paramètres AVANT l'apparition de la fenêtre des paramètres, et non après.
La question est ouverte : est-il possible d'appeler la fenêtre de paramètres de manière programmatique ? Sinon, est-il possible d'initialiser les paramètres à partir d'une fonction AVANT que la fenêtre de paramètres n'apparaisse.
Je voudrais faire quelque chose comme ceci
entrée double BuyStop = GetMyBuyStop() ;
Mais je reçois une erreur disant que seule une constante peut être sur le côté droit (
Alexey, j'ai demandé une suggestion sur la façon d'appeler la fonction de calcul des paramètres AVANT l'apparition de la fenêtre des paramètres, et non après.
La question est ouverte : est-il possible d'appeler la fenêtre de paramètres de manière programmatique ? Sinon, est-il possible d'initialiser les paramètres à partir de la fonction AVANT que la fenêtre de paramètres n'apparaisse.
Je voudrais faire quelque chose comme ceci
entrée double BuyStop = GetMyBuyStop() ;
Mais une erreur se produit car il ne peut y avoir qu'une constante à droite (
Il n'y a rien avant l'apparition de la fenêtre de paramétrage, tout ne commence que plus tard, lorsque la fenêtre est déjà chargée
Exactement ce que Vitaly a dit !
Créez un panneau sur le graphique, gérez les variables à partir de là.
Il n'y a rien avant l'apparition de la fenêtre des paramètres, elle ne commence qu'après, lorsque la fenêtre est déjà chargée.
Je le sais, c'est pourquoi j'attends l'avis d'un professionnel. Il est peut-être possible de le faire par des moyens non standard, via l'API de Win ou autre.
N'y a-t-il vraiment aucun moyen d'afficher la fenêtre de manière programmatique, à partir du code ?
Je le sais, c'est pourquoi j'attends l'avis d'un professionnel. Il est peut-être possible de le faire par des moyens non standard, via l'API de Win ou autre.
N'y a-t-il aucun moyen d'afficher la fenêtre de manière programmatique, à partir du code ?
Avant l'initialisation de l'EA (et les paramètres sont entrés avant l'initialisation), l'EA n'est pas disponible, il ne fonctionne pas... Avant l'initialisation de l'Expert Advisor, la fenêtre de ses paramètres est à votre disposition. Mais cela ne vous convient pas. Donc, utilisez une autre entrée des valeurs dont vous avez besoin - après l'initialisation de l'EA. Vous avez accès à la fenêtre MessageBox(). Mais cela ne vous aidera pas beaucoup - il n'y a pas de champs de saisie de valeur - seulement des boutons d'accord/désaccord/annulation.
Donc - vous devez utiliser votre propre fenêtre. Vous pouvez le créer vous-même à partir d'objets. Cherchez-le dans ObjectCreate(). Ou utilisez Canvas. Mais kanvas n'est pas destiné à de simples travaux d'artisanat.
L'EA n'est pas disponible avant son initialisation (et les paramètres sont entrés avant l'initialisation), il ne fonctionne pas... Avant que l'EA ne soit initialisé, sa fenêtre de paramètres est à votre disposition. Mais cela ne vous convient pas. Donc, utilisez une autre entrée des valeurs dont vous avez besoin - après l'initialisation de l'EA. Vous avez accès à la fenêtre MessageBox(). Mais cela ne vous aidera pas beaucoup - il n'y a pas de champs de saisie de valeur - seulement des boutons d'accord/désaccord/annulation.
Donc - vous devez utiliser votre propre fenêtre. Vous pouvez le créer vous-même à partir d'objets. Cherchez-le dans ObjectCreate(). Ou utilisez Canvas. Mais kanvas n'est pas destiné à de simples travaux d'artisanat.
Artem, merci, j'attendais vos conseils. En attendant, je cherchais moi-même des solutions possibles. Ce matin, j'ai trouvé comment afficher la fenêtre des paramètres de manière programmatique !
J'ai découvert que la fenêtre est appelée en appuyant sur F7. Une recherche sur Internet a montré que je peux réaliser un affichage des touches de fonction à l'aide de MQL.
Le reste est une question de technique. Je colle le code ici pour le partager avec vous si quelqu'un peut le trouver utile :
extern double BuyStop, SellStop ;
...
Mais je me suis réjoui trop tôt. J'ai réussi à ouvrir la fenêtre des paramètres de manière programmatique, mais les valeurs que j'ai assignées aux paramètres dans la procédure n'ont pas été sauvegardées (((
C'est-à-dire que lorsque j'ouvre la fenêtre des paramètres, je vois les valeurs spécifiées lors de l'initialisation, dans mon cas des zéros.
Existe-t-il un moyen de transférer les valeurs calculées dans le formulaire des paramètres ?