Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 624
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
Voici comment modifier
il y a beaucoup d'erreurs dans le code, dans
il est préférable de normaliser les prix, alors ils fonctionneront, puis le serveur donnera une erreur de "mauvais prix", il est souhaitable de normaliserStopLoss_SELL
et très probablement, vous devez vérifier si le StopLoss est égal à zéro - il n'est pas souhaitable de comparer des nombres réels pour qu'ils soient égaux, vous devez essayer de comparer des nombres réels à > ou <.
Aidez-moi à corriger un bug dans l'indicateur, il ne dessine pas le haut et le bas du jour quand il est sur la dernière bougie de l'heure.
J'ai esquissé l'indicateur, votre code n'aime pas travailler avec des chaînes de caractères, je l'écrirais plus simplement, voici un exemple. Toutefois, si votre tâche consiste à prendre en compte le décalage horaire du serveur, c'est l'inverse qui s'impose.
Mon exemple n'est pas non plus un exemple, je l'ai écrit rapidement, je pense que je n'aurais pas dû compter de la fin de l'historique au début à la première exécution, mais de la barre zéro à l'historique, le code aurait été plus court et aurait pu calculer le jour actuel plus rapidement - le cycle aurait été plus court,
Mais je l'ai vérifié dans le testeur, il semble fonctionner sans problème, qu'il en soit ainsi, il est tard, j'ai sommeil.... J'ai fait un mauvais exemple (((
il y a beaucoup d'erreurs dans le code, dans...
il est préférable de normaliser les prix, alors ils fonctionneront, puis le serveur donnera une erreur de "mauvais prix", il est souhaitable de normaliserStopLoss_SELL
Et très probablement, vous devez vérifier si le StopLoss est égal à zéro, et il n'est pas souhaitable de comparer des nombres réels pour qu'ils soient égaux, vous devez essayer de comparer des nombres réels à > ou <.
C'est vrai. Je viens de montrer un endroit dans le code, pourquoi il ne modifie pas les ordres du marché : demander un stop du marché donnera 0.
Voici un indicateur esquissé, je n'aime pas votre code avec des chaînes, je l'écrirais plus simplement, voici un exemple. Toutefois, si votre tâche consiste à prendre en compte le décalage horaire du serveur, vous devez procéder différemment.
Mon exemple n'est pas non plus un exemple, je l'ai écrit rapidement, je pense que je n'aurais pas dû compter de la fin de l'historique au début à la première exécution, mais de la barre zéro à l'historique, le code aurait été plus court et aurait pu calculer le jour actuel plus rapidement - le cycle aurait été plus court,
Mais je l'ai vérifié dans le testeur, il semble fonctionner sans problème, qu'il en soit ainsi, il est tard, j'ai sommeil.... Mauvais exemple fait (((
Ce n'est pas mon code, je l'ai trouvé sur Internet, je ne sais pas écrire les indicateurs. :)
Pour ce que ça vaut un mauvais exemple, j'ai vraiment aimé votre indicateur, il fonctionne dans le Strategy Tester et sur des graphiques réels.
Merci beaucoup pour cette aide rapide !
Puis-je également vous demander de supprimer les lignes qui dessinent le canal ? Je les ai marquées avec des flèches rouges sur la capture d'écran.
Et si cela ne pose pas trop de problèmes, veuillez ajouter la fonction permettant de désactiver/activer la formation de lignes pour le jour en cours. Je les ai marqués sur la capture d'écran avec des flèches bleues. https://prnt.sc/kuuj3e
Merci d'avance !
Bonjour, ma chère !
Veuillez indiquer comment exécuter la procédure OnInit() ;
après que les variables du conseiller expert aient été modifiées ?
Lorsque l'on place l'Expert Advisor sur le graphique, il y a OnInit() ; mais lorsque les variables sont modifiées, il n'y a pas de OnInit !?
Comment identifier l'événement du changement de variable de l'Expert Advisor ?
S'il vous plaît aidez avec des conseils, ou plutôt avec du code, comment le faire !?
Bonjour, ma chère !
Veuillez indiquer comment exécuter la procédure OnInit() ;
après que les variables du conseiller expert aient été modifiées ?
Lorsque l'on place l'Expert Advisor sur le graphique, il y a OnInit() ; mais lorsque les variables sont modifiées, il n'y a pas de OnInit !?
Comment identifier l'événement du changement de variable de l'Expert Advisor ?
S'il vous plaît aidez avec des conseils, ou plutôt avec du code, comment le faire !?
Expérimentez avec ce code, lisez le message dans le journal de l'EA (changez le TF, entrez la variable, redémarrez le terminal sans fermer l'EA...)
et la seconde option consiste à décrire une variable de portée globale avec le modificateur static.
expérimentez avec un tel code, lisez le message dans le journal de l'Expert Advisor (changez le TF, entrez la variable, rechargez le terminal sans fermer l'Expert Advisor...)
et la deuxième option consiste à décrire une variable de portée globale avec le modificateur static.
A la portée globale avec le modificateur static ????? C'est une sorte de perversion.
Au niveau global avec le modificateur statique static ????? C'est une sorte de perversion.
Mais d'après mon expérience, lorsque les builds de MT4 étaient souvent mis à jour, il est préférable de les écrire selon le C++ classique, plutôt que d'écouter la réponse "écrivez le code correctement" lorsque vous communiquez avec les développeurs.
ZS : Je me souviens pourquoi j'ai commencé à écrire le modificateur statique globalement, si je veux être sûr de ne pas "perdre" la valeur de la variable pendant l'exécution du programme MQL. Auparavant (il y a environ 5 ans) la directive précompilateur #property strict n'existait pas et en activant des fichiers (#include ou library - je ne me souviens plus) j'ai "perdu ma variable" une fois, car les noms des variables coïncidaient avec le nom de la variable.J'ai été maudit par MQL mais plus tard j'ai trouvé cette erreur par accident. Mais si j'écrivais un modificateur statique le compilateur afficherait une erreur de compilation dans ce cas aussi.
Le compilateur actuel est MT4, assez pratique et fiable, et avec la directive #property strict, peut-être que je n'ai pas besoin de telles précautions, mais j'écris statique par habitude quand je ne veux pas "perdre la valeur" d'une variable
ZZZY : ce modificateur n'affecte pas la vitesse d'exécution des programmes MQL, et il est pratique pour moi d'ouvrir mon code plus tard, et ayant vu static je saurai exactement, que cette variable a une valeur, qui est important de ne pas "perdre" pendant l'exécution du programme
Mais d'après mon expérience, lorsque les builds de MT4 étaient souvent mis à jour, il est préférable de les écrire selon le C++ classique, plutôt que d'écouter la réponse "écrivez le code correctement" lorsque vous communiquez avec les développeurs.
ZS : Je me souviens pourquoi j'ai commencé à écrire le modificateur statique globalement, si je veux être sûr de ne pas "perdre" la valeur de la variable pendant l'exécution du programme MQL. Auparavant (il y a environ 5 ans) la directive précompilateur #property strict n'existait pas et en activant des fichiers (#include ou library - je ne me souviens plus) j'ai "perdu ma variable" une fois, car les noms des variables coïncidaient avec le nom de la variable.J'ai été maudit par MQL mais plus tard j'ai trouvé cette erreur par accident. Mais si j'écrivais un modificateur statique le compilateur afficherait une erreur de compilation dans ce cas aussi.
Le compilateur actuel est MT4, assez pratique et fiable, et avec la directive #property strict, peut-être que je n'ai pas besoin de telles précautions, mais j'écris statique par habitude quand je ne veux pas "perdre la valeur" d'une variable
ZZZY : ce modificateur n'affecte pas la vitesse d'exécution du programme MQL, et il est pratique pour moi d'ouvrir mon code après un certain temps, et ayant vu statique je saurai exactement, que cette variable a une valeur, qui est importante "à ne pas perdre" pendant l'exécution du programme
Le compilateur génère un avertissement si les noms de variables coïncident avec ceux du fichier d'inclusion. Pour moi, un avertissement équivaut à une erreur et je réagis de la même manière. Et des variables de niveau global avec un modificateur statique, c'est du beurre.
Mais... Si tu aimes écrire comme ça, personne ne peut te l'interdire.
Mais... Mais... si vous aimez l'écrire de cette façon, personne ne peut vous l'interdire.
J'ai des doutes sur mon caractère unique dans cette affaire... Je ne suis pas le seul, en cherchant dans le dossier MQL5, j'ai trouvé de telles déclarations avec le modificateur statique au niveau global dans plusieurs codes sources de la livraison de MT5.
Même dans l'article "FORÊT DE DÉCISIONS RANDOMES DANS LE RÉSUMÉ", dans le code source, j'ai trouvé une déclaration au niveau global : static datetime last_time=0 ;
donc j'ai écrit comme je l'entends pour allouer et sera, je ne suis pas 100% des variables au niveau global décrivant comme statique
Dieu protège les nécessiteux, dit la religieuse... ))))