Erreurs, bugs, questions - page 2986

 
inwinterborn:

Pouvez-vous me dire pourquoi les points d'arrêt passent à la fonction suivante lors du débogage, à la fois sur l'historique et en ligne (Ctrl+F5, F5) ?

Je l'ai vérifié plusieurs fois. Toutes les explications sont dans les captures d'écran ci-jointes.

Est-ce un bug ?


Explication :

1. J'ai défini manuellement 2 points d'arrêt : 1) Series.mqh ligne 81 ; 2) TimeSeries.mqh ligne 48
2. Je passe au fichier ExpertMACD.mq5
3. Démarrer le débogage sur des données historiques ou réelles
4. Le débogueur s'arrête dans le fichier Series.mqh à la ligne 94, qui n'a pas de point d'arrêt. La ligne est le début de la fonction suivante après mon point d'arrêt manuel, qui à partir de la ligne 81 a disparu ou s'est déplacé.
5. Je vérifie mon deuxième point d'arrêt manuel dans TimeSeries.mqh, et je constate qu'il est également passé de la ligne 48 à la ligne 63, à nouveau la fonction suivante après mon premier point d'arrêt.


Pouvez-vous me dire quel pourrait être le problème ?

 
inwinterborn:


Explication :

1. J'ai défini manuellement 2 points d'arrêt : 1) Series.mqh ligne 81 ; 2) TimeSeries.mqh ligne 48
2. Je passe au fichier ExpertMACD.mq5
3. Démarrer le débogage sur des données historiques ou réelles
4. Le débogueur s'arrête dans le fichier Series.mqh à la ligne 94, qui n'a pas de point d'arrêt. La ligne est le début de la fonction suivante après mon point d'arrêt manuel, qui à partir de la ligne 81 a disparu ou s'est déplacé.
5. Je vérifie mon deuxième point d'arrêt manuel dans TimeSeries.mqh, et je constate qu'il est également passé de la ligne 48 à la ligne 63, à nouveau la fonction suivante après mon premier point d'arrêt.


Pouvez-vous me dire quel pourrait être le problème ?

Vérifiez les paramètres dans l'éditeur - désactivez l'optimisation :

 
Vladimir Karputov:

Vérifiez les paramètres dans l'éditeur - désactivez l'optimisation :

Merci pour la réponse, mais cela ne m'aide pas.

L'option a bien été activée.

Le désactiver. Je l'ai répété. Le résultat est le même que celui décrit ci-dessus.

Terminal fermé et éditeur avec nouveau paramètre.

Je l'ai rouvert. Répété. Le résultat est le même.

Quel autre problème pourrait-il y avoir ?


 
inwinterborn:

Merci pour la réponse, mais cela ne m'aide pas.

L'option a bien été activée.

Je l'ai désactivé. Je l'ai répété. Le résultat est le même que celui décrit ci-dessus.

Terminal fermé et éditeur avec nouveau paramètre.

Je l'ai rouvert. Répété. Le résultat est le même.

Quel autre problème pourrait-il y avoir ?


Essayez la version 2833 - peut-être que quelque chose a changé...

 
Vladimir Karputov:

Essayez la version 2833 - peut-être que quelque chose a changé ...

Il y a eu une mise à niveau automatique vers le 2834.

Le résultat est inchangé. Les points de rupture se déplacent.

 
fxsaber:

Votre code ne vérifie pas la valeur de retour de la fonction, il est donc impossible de juger de l'exactitude du contenu de la structure Ticks.

Et s'il n'y a pas d'erreurs lors de l'appel deCopyTicksRange, alors nous devrions considérer les valeurs nulles de la structure comme normales, sinon à qui pouvons-nous faire confiance ? Quels prix peuvent être considérés comme normaux (nous voulons dire même pas les prix 0.0, mais !n'importe quels!prix) ? Qui se plaindre en cas de prix erronés, le Sportlotto ? Le courtier va blâmer MQ et MQ va blâmer le courtier. Le problème est plus grave qu'il n'y paraît.

 
Andrey Dik:

Votre code ne vérifie pas la valeur de retour de la fonction, il est donc impossible de juger de l'exactitude du contenu de la structure Ticks.

Et s'il n'y a pas d'erreurs lors de l'appel deCopyTicksRange, alors nous devrions considérer les valeurs nulles de la structure comme normales, sinon à qui pouvons-nous faire confiance ? Quels prix peuvent être considérés comme normaux (nous voulons dire même pas les prix 0.0, mais !n'importe quels!prix) ? Qui se plaindre en cas de prix erronés, le Sportlotto ? Le courtier va blâmer MQ et MQ va blâmer le courtier. Le problème est plus grave qu'il n'y paraît.

Le code montre ce que peuvent être les prix. J'ai regardé mes propres codes. Ne faites pas ces contrôles et d'autres contrôles stupides. J'ai certainement effectué plus d'un million de transactions à différents endroits sur MT5 seulement. La question est très éloignée de la pratique.

 
fxsaber:

Lecode montre ce que peuvent être les prix. J'ai regardé mes propres codes. Ne faites pas ces contrôles et d'autres contrôles stupides. J'ai certainement effectué plus d'un million de transactions à différents endroits sur MT5 seulement. La question est très éloignée de la pratique.

Et alors ? C'est ça le problème, les prix peuvent être n'importe quoi, alors lesquels sont les bons ? Vous ne faites pas ces vérifications et d'autres vérifications stupides, mais vous faites des vérifications tout aussi stupides, mais beaucoup plus coûteuses de la valeur 0.0 ?

 
inwinterborn:

Pouvez-vous me dire pourquoi les points d'arrêt passent à la fonction suivante lors du débogage, à la fois sur l'historique et en ligne (Ctrl+F5, F5) ?

Je l'ai vérifié plusieurs fois. Toutes les explications sont dans les captures d'écran ci-jointes.

Est-ce un bug ?

Lepoint de rupture est décalé - comme dans CSeries::BufferResize expert ne rentre jamais du tout.

 
Vladimir Karputov:

Lepoint d'arrêt est déplacé - comme dans CSeries::BufferResize, l'expert n'entre jamais dans le code.


Je pensais que si un point d'arrêt est placé sur un code auquel on n'accède pas, le débogueur ne le fait pas.

C'est-à-dire que la condition pour le point d'arrêt n'est pas remplie.
Vladimir, est-ce que je rate quelque chose et est-ce qu'il y a quelque chose dans la documentation sur le déplacement des points d'arrêt ?