Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 885
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
Oui, c'est ce que je veux dire. Ok, on l'a raté. L'essentiel est qu'il comprenne ce qui est quoi...
Qui ? C'est là que j'ai commencé.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Toute question des débutants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes
Alexey Viktorov, 2019.06.11 09:06
Vous ne pouvez pas utiliser SymbolInfoInteger pour obtenir Point()).
Et en général, il est nécessaire de se rappeler que Point() ou _Point ne concerne que le symbole courant. Pour les symboles autres que celui sur lequel l'EA fonctionne, vous devez utiliser cette fonction.
La fonction SymbolInfoInteger renvoie non seulement des valeurs int, mais aussi des valeurs long, bool et des énumérations.
Может вам очень не повезло, но я не люблю колупаться в чужом коде. Тем более править его...
Alexey Viktorov:
Question suivante : Combien de fois pensez-vous que la valeur de l'indicateur sera exactement 50 ?
Si j'ai bien compris le problème, il devrait s'agir d'une couleur >50 et d'une autre <=50, mais ==50, je ne l'ai vu nulle part. Bien sûr, pour éviter de perdre dans le cas ==50, nous devrions ajouter >=50 à l'un d'eux et <=50 à un autre. Cela peut paraître mieux.
Et la deuxième question : dans quelle mesure était-il nécessaire de modifier l'indexation de tout le tampon ? Après la réindexation, avez-vous tout corrigé dans votre code ? Il serait peut-être plus simple de créer un tampon de couleur d'index 4, et des tampons auxiliaires 5 et 6 en conséquence. Vous auriez moins à éditer et moins de chances de faire quelques erreurs supplémentaires.
Je pense que vous vous êtes creusé la tête lorsque vous avez modifié l'indexation du tampon.
Reprenez l'ancien code du message 8806 et ne changez que la séquence du tampon.
Puis trace les conditions quand il faut mettre 0 et quand il faut mettre 1Vous n'avez pas dû trop réfléchir lorsque vous avez modifié l'indexation du tampon.
Revenez en arrière et prenez l'ancien code du post 8806 et changez juste la séquence du tampon.
Ensuite, tracez les conditions quand il faut mettre 0 dans le tampon de couleur et quand il faut mettre 1.J'ai fait ça, ça n'a pas aidé, j'ai admis que je faisais des erreurs, après ton post j'ai recommencé. Voici les endroits du code que j'ai modifiés. L'ancien n'est pas commenté.
C'est comme ça que c'était avant que je fasse les changements. L'histogramme est là, la bonne couleur ne l'est pas.
C'est comme ça que ça se passe maintenant. L'histogramme a disparu, il n'est pas affiché.
Je suppose que je n'ai plus les idées claires.
Je l'ai fait, ça n'a pas marché, j'ai fait des erreurs, après votre post je l'ai refait. Voici les endroits du code que j'ai modifiés. L'ancien n'est pas commenté.
C'est comme ça que c'était avant que je fasse les changements. L'histogramme est là, la bonne couleur ne l'est pas.
C'est comme ça que ça se passe maintenant. L'histogramme a disparu, il n'est pas affiché.
Je dois encore me creuser les méninges.
Il n'y a aucune logique ici. La séquence doit être la suivante : la valeur de l'histogramme est déterminée et le i-ième indice du tampon indicateur est rempli. Ensuite, une vérification séparée, si cette valeur >=50 le tampon de couleur est rempli avec 0, sinon 1. Il est défini par la séquence de couleur dans la directive
Si 0, la couleur clrGreen est prise et si 1, clrRed.
Cette ligne est complètement inutile, et la séquence est l'inverse de la première.
Et ceci
int cl;
ajoutés dans quel but ? Il est plus facile de le remplir directement.
Pour remplir le tampon de couleur, j'utiliserais cette construction
L'opérateur ? : est équivalent à if else, mais plus facile à utiliser.La logique ici est cassée en général. La séquence doit être la suivante : définir la valeur de l'histogramme, remplir le i-ième indice du tampon indicateur. Ensuite, une vérification séparée, si cette valeur >=50 le tampon de couleur est rempli avec 0, sinon 1. Ceci est déterminé par la séquence de couleur dans la directive
Si 0, la couleur clrGreen est prise et si 1, clrRed.
Cette ligne est absolument inutile, et la séquence est l'inverse de la première.
Et ceci
ajoutés dans quel but ? Il est plus facile de le remplir directement.
Pour remplir le tampon de couleurs, j'utiliserais cette construction
L'opérateur ? : est équivalent à if else mais s'applique plus facilement.WURRAA, et mon âme a chanté. Alexey, merci beaucoup ! !!!!
Tout a fonctionné, je ne comprends pas bien comment il est possible de se passer du tableau.
car sa description a été supprimée. Vous pouvez donc vous passer d'un tableau supplémentaire ici ?
Mon Squeaky est juste un miracle, il l'emmène partout et partout.
p.s Je n'ai toujours pas appris comment attacher correctement l'image, veuillez m'excuser, je vais poster des captures d'écran.
Pour remplir le tampon de couleur, j'utiliserais cette construction
L'opérateur ? : est équivalent à if else, mais plus facile à utiliser.De bons conseils et une grande science pour l'avenir ! !! Il est même allé un peu plus loin. Voici le résultat.
C'était donc le cas :
Il en est ainsi, l'efficacité de la démarche est évidente ! !! Merci.
De bons conseils et une grande science pour l'avenir ! !! Il est même allé un peu plus loin que ça. Voici le résultat.
C'était donc le cas :
Il en est ainsi, l'efficacité de la démarche est évidente ! !! Merci.
Aucune efficacité ici - trois conditions if-else au lieu d'une. Ici, c'est pire comme ça...
Il n'y a pas d'efficacité ici : il y a trois conditions if-else au lieu d'une. C'est pire ici...
Oui, en effet. Je ne l'avais pas remarqué. C'est plus beau, il y a moins de lettres.
Et il n'y a aucun moyen de placer trois exécutions (je ne sais pas comment le dire correctement) sous la responsabilité d'un seul opérateur: en même temps ?