Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 548

 
evillive:

Les
chiffres aussi doivent de préférence être "tirés" du symbole correspondant ;)
Et ce n'est pas tout. Pour normaliser le prix d'un autre outil, vous devez prendre les chiffres d'un autre outil aussi, et aussi pour la sortie dans les commentaires vous ne devez pas normaliser un nombre réel, mais faire DoubleToString();
 
evillive:

Les
chiffres , eux aussi, doivent de préférence être "tirés" du symbole approprié ;)

Merci, ça marche.
 
artmedia70:
Et ce n'est pas tout. Pour normaliser le prix d'un autre symbole, vous devez prendre les chiffres d'un autre symbole également. De plus, je ne devrais pas normaliser le nombre réel mais utiliser DoubleToString() ;

pour le sortir en commentaires.

Je ne me soucie pas des commentaires, le plus important pour moi est d'ouvrir des ordres, mais le terminal génère toujours une erreur, même avec DoubleTtoStr(), il écrit des prix erronés.

 
Example2:

Je ne me soucie pas des commentaires, le plus important est que les ordres s'ouvrent, mais le terminal génère toujours une erreur, même avec DoubleTtoStr(), il écrit les mauvais prix.

Les remarques faites sont correctes. La normalisation échoue parfois mais ce n'est pas bon. Vous devez écrire aux développeurs de MetaTrader 4 Client Terminal build 610 pour vérification. Mais je n'ai réussi à reproduire la normalisation incorrecte que deux fois.

DoubleTtoStr() coupera mais le nombre lui-même ne changera pas à cause de cela, cela peut provoquer une erreur lors de la comparaison des variables, des commandes, etc. Je ne peux pas dire pour l'instant quelle est l'importance de l'ordre 1 dans le 16e bit, mais la comparaison des chiffres est définitivement incorrecte.

 
GSB:

Les remarques que vous avez faites sont correctes, mais le fait que la normalisation échoue parfois n'est pas bon. Vous devez écrire à MetaTrader 4 Client Terminal build 610 aux développeurs pour vérification. Mais je n'ai réussi à reproduire une normalisation incorrecte qu'à deux reprises.

DoubleTtoStr() coupera mais le nombre lui-même ne changera pas à cause de cela, cela peut provoquer une erreur lors de la comparaison des variables, des commandes, etc. Je ne peux pas dire pour l'instant quelle est l'importance de l'ordre 1 dans le 16e bit, mais la comparaison des chiffres est définitivement incorrecte.

Le conseiller expert n'ouvre les ordres qu'une seule fois. Doit-il être écrit pour chaque paire séparément ?
 
Example2:
Le conseiller expert ouvre des ordres une fois sur deux, faut-il donc l'écrire pour chaque paire séparément ?
Non, ce n'est pas le cas. Il est peu probable que les ordres s'ouvrent "par intermittence" pour cette raison, regardez le journal et avant de passer un ordre, assurez-vous de ResetLastError() ; et ensuite si(GetLastError()>1) Print(GetLastError() ); et assurez-vous de corriger l'erreur avec Digits
 
GSB:
Non, vous ne le faites pas. Il est peu probable que les commandes s'ouvrent "par intermittence" pour cette raison, consultez le journal et avant de passer une commande, assurez-vous de ResetLastError() ; et ensuite si(GetLastError()>1) Print(GetLastError() ) ; Et assurez-vous de corriger l'erreur Digits

.

GetLastError() dit "mauvais prix". J'ai déjà pris les chiffres séparément pour chaque paire de devises.
 
Example2:

GetLastError() dit "mauvais prix". Les chiffres que j'ai déjà pris séparément pour chaque paire de devises.

Le niveau d'arrêt a-t-il été pris en compte ? Vérifiez ce que c'est avec le script
 
GSB:

Le niveau d'arrêt a-t-il été pris en compte ? A quoi cela correspond-il, vérifiez avec le script


J'ai des ordres de marché.

 

129 erreur se produit lorsque le prix a le temps de changer avant que le DC exécute votre ordre, utilisez un slippage plus important.