Caractéristiques du langage mql4, subtilités et techniques - page 18

 
Dmitry Rannev:

Le problème a été décrit ci-dessus par fxsaber. Nous essayons d'en trouver la cause.

Voici comment cela fonctionnera correctement

NormalizeDouble(Price1 - Price2, _Digits) != 0.0;
 
Alexey Viktorov:

Voici comment cela fonctionnera correctement

Il ne s'agit pas de résoudre le problème de la comparaison des doubles. La tâche est différente.

 
Dmitry Rannev:

Le problème a été décrit ci-dessus par fxsaber. Nous essayons d'en trouver la cause.

Eh bien, fxsaber a répondu correctement - j'ajouterais qu'il ne faut pas utiliser Printf, mais plutôt printf et spécifier la précision souhaitée des chiffres. Sortie { printf("Open : %.6f, Close : %.6f", OrderOpenPrice(), OrderClosePrice()) ; }.

 
Ilya Malev:

Eh bien, fxsaber a répondu correctement - j'ajouterais qu'il ne faut pas utiliser printf, mais plutôt printf et spécifier la précision souhaitée des nombres sortie { printf("Open : %.6f, Close : %.6f", OrderOpenPrice(), OrderClosePrice()) ; }.

Si vous voulez comprendre quel est exactement le problème, demandez à fxsaber ce qui l'empêche d'écrire des EAs normalement. Nous essayons, du côté des développeurs de logiciels de courtage, de faire en sorte que ce problème soit moins important. Nous ne cherchons pas un problème d'écriture d'EAs, nous cherchons un problème de stockage de données dans l'historique du serveur qui empêche fxsaber d'écrire des EAs.

 
Je n'ai pas entendu dire que fxsaber a été empêché d'écrire correctement des EAs, mais tant pis, tant pis :) Si mon commentaire était hors sujet, pardonnez-moi.
 
Dmitry Rannev:

...mais dans la sauvegarde des données dans l'enregistrement du serveur du trader, ce qui empêche fxsaber d'écrire des EAs.

Ah, c'est ça... Et on n'arrive pas à savoir ce qui l'arrête.
 
Alexey Navoykov:
Ah, le voilà... Et on n'arrive pas à savoir ce qui l'arrête.

C 'est là que ça a commencé. Et a évolué en ceci

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Prix non normalisés dans MT4

fxsaber, 2019.02.20 23:03

Mais la situation est bien pire, et en même temps sur MQ-Demo
// 15326434
// wmefo5sa
// MetaQuotes-Demo
void OnStart()
{
  const double Price1 = HistoryOrderSelect(356138100) ? HistoryOrderGetDouble(HistoryOrderGetTicket(0), ORDER_PRICE_CURRENT) : 0;
  const double Price2 = PositionSelectByTicket(356138100) ? PositionGetDouble(POSITION_PRICE_OPEN) : 0;  
  
  Print(Price1 - Price2); // -2.220446049250313e-16
}


Le prix d'ouverture de la position actuelle n'est pas égal au prix de leur ordre/transaction.

 
fxsaber:
Caractéristiques de ArrayResize pour les tableaux multidimensionnels

parce qu'avec ArrayRange() vous devez obtenir le nombre d'éléments dans la dimension requise, et vous ne pouvez redimensionner que la 1ère dimension de toute façon, c'est pourquoi il est plus logique d'utiliser mql5

 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

Andrey Khatimlianskii, 2019.03.12 22:57

Je me demande si TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (bouton AutoTrade) affecte les EAs testés (MT4) ?

Dans 1170 il affecte, vous pouvez contrôler le trading dans le testeur directement avec le bouton. Je suis choqué.

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégie

Bugs, bugs, questions

Vladimir Pastushak, 2019.03.13 19:12

Si votre code contient quelque chose comme

if(!TerminalInfoInteger (TERMINAL_TRADE_ALLOWED))
return;

Le bouton fonctionne.

Si une telle commande n'existe pas, le bouton ne fonctionne pas.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Bugs, bugs, questions

Vladislav Andruschenko, 2019.03.13 19:14


J'ai écrit à ce sujet il y a environ deux ans.


C'est exactement ce que c'est. C'est pourquoi j'ai désactivé les vérifications des boutons dans le testeur de stratégie.





 

Il s'avère qu'il est possible d'obtenir les valeurs tampons des indicateurs fonctionnant sur un graphique (utilisation unique de WinAPI).

Si sans DLL - presque en mode automatique.

Raison: