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

 
Karputov Vladimir:
Ne vous lancez pas dans un verbiage -bien sûr, appeler OnCalculate implique de l'appeler par le terminal lui-même, car

Vous n'aviez pas à appeler OnCalculate vous-même. Je le fais régulièrement. Et, il s'avère que je ne suis pas le seul.

En bref, le même code dans MT4 fonctionne sans aucun problème, dans MT5 il se plante. Vont-ils corriger le comportement de 5 personnes ?

 
comp:

Vous n'aviez pas à appeler OnCalculate vous-même. Je le fais régulièrement. Et, il s'avère que je ne suis pas le seul.

En bref, le même code dans MT4 fonctionne sans aucun problème, dans MT5 il se plante. Répareront-ils le comportement de la 5 ?

Vous pouvez travailler dans l'indicateur seulement après le premier appel de OnCalculate - parce que c'est OnCalculate qui garantit la préparation de l'environnement de l'indicateur.
 
Karputov Vladimir:
Vous ne pouvez travailler dans l'indicateur qu'après la première exécution dans OnCalculate - car c'est OnCalculate qui garantit la préparation de l'environnement de l'indicateur.
Le code ci-dessus montre que cette règle ne fonctionne que dans MT4. Dans MT5, c'est différent.
 
comp:
Le code ci-dessus montre que cette règle ne fonctionne que dans MT4. C'est différent dans MT5.
Encore une fois : seule la première entrée dans OnCalculate garantit la préparation de l'environnement.
 
Karputov Vladimir:
Encore une fois : seule la première entrée dans OnCalculate garantit la préparation de l'environnement.

Vous essayez de me provoquer dans une dispute, ce qui relève de la règle "se disputer avec un modérateur" et est passible d'un bannissement. Je n'ai pas l'intention de me disputer avec vous.

Contrairement à vous, j'ai fourni un code qui confirme pleinement ce que je dis. Quiconque veut comprendre, peut exécuter le code et s'assurer que mes paroles sont vraies.

 
Maria Baburina:

Bonjour, j'ai rencontré ce problème.

Il y a une condition dans le programme : si une variable (dans laquelle le profit de certains ordres est calculé) est plus petite que l'expression de plusieurs autres variables, plusieurs fonctions seront exécutées ensuite.

Je ne décrirai pas tout de suite exactement ce qu'elle est et comment elle est calculée car ce serait trop. Peut-être, la réponse sera très simple car je ne la connais pas :)

Ainsi, lors de l'exécution du programme, cette condition s'avère être vraie, alors qu'en fait la première variable est beaucoup plus grande que l'autre (par exemple, j'ai sorti les valeurs - 146.3412 et 0.41 dans le testeur).

Toutes les variables dans cette condition sont de type double et séparément sont calculées correctement.

Pouvez-vous me dire à quoi cela peut être lié ?

Quel est le problème ?
 
Vladimir Zubov:
Quel est le problème ?
Sur les chiffres spécifiques, il est dit 146.3412 < 0.41

Je vais écrire un code séparé avec cette erreur pour la vérifier.
 
comp:

Vous essayez de me provoquer dans une dispute, ce qui relève de la règle"se disputer avec un modérateur" et est passible d'un bannissement. Je n'ai pas l'intention de me disputer avec vous.

Contrairement à vous, j'ai fourni un code qui confirme pleinement ce que je dis. Quiconque veut comprendre peut exécuter le code et voir si ce que j'ai dit est vrai.

Cet argument ne doit pas être considéré comme un argument avec un modérateur, pour la simple raison que Vladimir ne remplit PAS la fonction de modérateur dans le dialogue actuel. Il s'agit simplement d'une dispute entre deux programmeurs.
 
Alexey Viktorov:
Cet argument ne doit pas être considéré comme un argument avec un modérateur, pour la simple raison que Vladimir ne remplit PAS la fonction de modérateur dans le dialogue actuel. Il s'agit simplement d'une dispute entre deux programmeurs.
Cependant, j'ai été banni à plusieurs reprises pour avoir essayé de défendre mes points techniques lors de discussions avec les modérateurs. Et accusé de comportement contraire à l'éthique - "se disputer avec un modérateur". Je n'ai pas l'intention de marcher sur le même râteau.
 
comp:
Cependant, j'ai été banni à plusieurs reprises pour avoir essayé de défendre mes points techniques lors de discussions avec les modérateurs. Et accusé de comportement contraire à l'éthique - "se disputer avec un modérateur". Je n'ai pas l'intention de marcher sur le même râteau.

J'ai lu ces arguments. Mais ce n'était pas un argument, c'était juste un manque de volonté de comprendre les explications et les tentatives de prouver la faute du terminal. Vos paroles n'étaient pas étayées par quoi que ce soit. Vous êtes trop paresseux pour faire des captures d'écran et expliquer clairement vos pensées.

N'essayez pas de prouver que les développeurs sont plus stupides que vous et il n'y aura pas de représailles.

Si MT4 ne se comporte pas comme MT5, cela ne signifie pas que MT5 ne se comporte pas correctement.

Raison: