Erreurs, bugs, questions - page 2290

 
fxsaber:
#define protected public
  #include <Canvas\Canvas.mqh>
#undef protected
 
fxsaber:

Bug seulement avec la lecture. Il n'y a aucun moyen de le lire.

Oui. J'ai déjà compris ça. Dommage.
Pensez-vous que MQ va s'en préoccuper ?
J'en doute, cependant.

Il est bien sûr dommage que nous devions abandonner l'idée de réécrire certains codes de MT5 à MT4. Pourtant, la foule principale est toujours sur 4K. Un mystère de la nature...

 
fxsaber:

Je pense que tu n'as pas lu la toile avant, tu n'y as fait que des entrées.

Je me souviens maintenant que je n'arrivais pas à comprendre, il y a quelques années, pourquoi le code fonctionnait sur 5 et pas sur 4. Je comprends maintenant que la raison de ce problème était que le code ne fonctionnait pas lors de la lecture de la ressource.

 

Imaginons une TS inversée sur les filets. Toutes les transactions serontde type DEAL_ENTRY_INOUT.

Pour savoir, à partir de l'historique, quelle était la taille de la position au moment de la conclusion d'une transaction, nous devons passer par PositionID à chaque fois, en calculant le lot. Ou bien, vous devez créer une certaine mise en cache pour que cela fonctionne sans décalage.

Si vous avez fait une centaine de flips, vous devrez exécuter la boucle cette centaine de fois à chaque fois, avec un HistorySelectByPosition non rapide correspondant.


Si je comprends bien, il n'y a pas d'autre méthode pour déterminer cette valeur.


Ou, par exemple, vous faites beaucoup de DEAL_ENTRY_IN et DEAL_ENTRY_OUT, sans fermer une position. Et il est possible de déterminer le volume de la position historique, encore une fois, uniquement par un jogging approprié sur l'histoire.


Est-il possible d'entrer DEAL_POSITION_VOLUME - taille de la position après une transaction ?

 

Je ne sais pas si j'écris au bon endroit, mais dans mon signal, qui sert à surveiller les performances de l'EA, un avertissement est apparu qui n'a absolument rien à voir avec la réalité.

""80% des gains ont été réalisés en 16 jours. C'est 4% de la durée de vie totale du signal, qui est de 376 jours.""


Comment est-ce possible, ou est-ce que je comprends mal quelque chose ?

signal

 
Une erreur dans la logique des opérateurs
int f( int x )
{
    while ( true ) {
        /*   ...*/
        /*if ...*/ continue;
        /*if ...*/ return 1;
        /*if ...*/ continue;
        /*   ...*/
    }
} //Error: '}' - not all control paths return a value
 
A100:
Une erreur dans la logique des opérateurs

Ce n'est pas sérieux.

 
fxsaber:

Ce n'est pas sérieux.

Si ce n'était pas sérieux, les développeurs ici et ici ... ne serait pas en train de le réparer. Croyez-moi, ils ne sont pas idiots et savent faire la différence entre sérieux
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2016.11.02
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

Les objets graphiques ne disposent pas d'une propriété définissant leur ordre de superposition (Z-Order). La propriété existante OBJPROP_ZORDER n'a rien à voir avec cela, bien qu'elle porte un nom similaire pour une raison quelconque.

J'avais l'habitude de penser que l'ordre de superposition était déterminé par la date de création d'un objet. Cependant, si pour un objet quelconque vous faites

ObjectSetInteger(chartid, objectname, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS);
ObjectSetInteger(chartid, objectname, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);

alors cet objet est placé au-dessus des autres. Aucune propriété de cet objet n'est modifiée. Par conséquent, il est impossible de déterminer par programme quel objet est au-dessus ou au-dessous. Cependant, MT stocke cette information quelque part. Par conséquent, j'aimerais avoir une propriété correspondante dans ObjectGetInteger.

 
Alexey Navoykov:

il n'est pas possible de déterminer par programme quel objet est supérieur ou inférieur.

Il peut être intéressant d'examiner l'ordre dans lequel les objets sont stockés dans le modèle. Je pense que plus un objet est stocké tard, plus il est élevé par rapport aux autres.
Raison: