Erreurs, bugs, questions - page 2995

 
Francuz:


Quelqu'un peut-il répondre à la question de savoir pourquoi ce code ne fonctionne correctement que sur les minutes ?

Il s'agit d'un indicateur.

P. S.

Sur des périodes de temps autres que les minutes, il produit des valeurs erronées.

Parce que vous n'avez effectué une seule itération qu'au tout premier passage de OnCalculate, lorsque prev_calculated = 0. À ce moment-là, les barres ne sont peut-être pas encore formées. Et toutes les TF sont formées à partir de 1M TF.
Insérer dans le chèque :

if(prev_calculated>0 && handle != INVALID_HANDLE)

Et tout fonctionnera.

 

Il y a deux onglets d'EA ouverts dans ME, les deux ont des changements non sauvegardés, nous appuyons sur le bouton de compilation sur l'un d'eux et voyons que ME sauvegarde les changements dans les deux EA. Pourquoi ? Qui lui a demandé de faire ça ?

Si ME sauvegardait les changements dans les fichiers liés avant de compiler, ce serait un comportement logique, mais alors..... Bien sûr, puisque c'est tellement plus facile, pourquoi trier quels fichiers appartiennent à qui ? Il est beaucoup plus facile de sauvegarder tous les fichiers ouverts et d'en finir avec cela.....

 
Andrey Dik:
Dans ME, les onglets de deux EA sont ouverts, les deux ont des modifications non sauvegardées, appuyez sur le bouton de compilation de l'un d'entre eux et voyez que ME sauvegarde les modifications dans les deux EA. Pourquoi ? Qui lui a demandé de faire ça ?
Comment pourrait-il le faire autrement ?
C'est le seul moyen.
C'est le cas dans tous les IDE.
 
Nikolai Semko:
Comment faire autrement ?
C'est le seul moyen.
Tous les IDE sont comme ça.

Est-ce que c'est sûr dans tous les IDEs ?

Je viens d'essayer VS, oui, le comportement est le même. Mais, le comportement retardé d'un produit, même le plus célèbre, devrait être considéré comme une référence ? Copions tous les bugs et les malentendus de VS, pourquoi ?

))

 
Andrey Dik:

est-il exact dans tous les cas ?

Je viens d'essayer VS, oui, le comportement est le même. mais, le comportement attardé d'un produit, même le plus connu, doit être considéré comme la référence ? copions alors tous les bugs et incompréhensions de VS, pourquoi ?

))

J'ai utilisé au moins 9 IDE différents au cours de l'année dernière. C'est comme ça partout.
Réfléchissez logiquement, combien de problèmes peut-il y avoir si un fichier a plusieurs maîtres qui ne voient pas les changements de l'autre. Si l'un a compilé avec un code, et un autre avec un autre code, vous devez déjà créer deux fichiers ex5 avec le même nom, etc.
 

Pourquoi ne pas faire du Navigateur un tableau à la manière de la fenêtre Market Watch ? LeMarket Watch a mis en place le tri, bravo ! - Nous le demandons depuis longtemps.

Vient maintenant l'ère de notre nouveau rêve de méga convivialité qui consiste à afficher le contenu du Navigateur et à le trier par colonnes : Titre, Auteur, Date de compilation, Date de dernière exécution, Disponibilité de la source, Type de programme (et à désactiver le tri et revenir à la vue actuelle).

 
Nikolai Semko:
J'ai utilisé au moins 9 IDE différents l'année dernière. Partout c'est comme ça.
Réfléchissez logiquement, combien de problèmes peut-il y avoir si un fichier a plusieurs hôtes qui ne voient pas les changements de l'autre. Si l'un est compilé avec un code et l'autre avec un autre code, vous devez déjà créer deux fichiers ex5 avec le même nom, etc.

Si deux EA différentes sont ouvertes, quel peut être le lien entre elles ? Seuls les inludes qui font partie des hiboux doivent être sauvegardés, et peu importe à qui d'autre ces inludes appartiennent.

Par exemple, si vous ouvrez un fichier *txt qui n'est pas enregistré, il n'a rien à voir avec le fichier compilé et/ou le projet, alors pourquoi l'enregistrer ?

 
Nikolai Semko:

car vous n'effectuez qu'une seule itération à la toute première entrée OnCalculate, lorsque prev_calculated = 0. À ce stade, les barres ne sont peut-être pas encore formées. Et toutes les TF sont formées à partir de 1M TF.
Insérer dans le chèque :

et tout fonctionnera.

Vous n'avez pas compris. Le code ne doit fonctionner qu'une seule fois. Son but est de montrer que l'indicateur appelé ne fonctionne pas. Le problème est que dans toutes les variantes de l'indicateur appelé ne fonctionnera pas si celui-ci (et l'appelant) a une TimeFrame différente de celle de la minute. J'ai découvert que c'est un bugde MetaTrader qui ne peut être résolu qu'avec des béquilles. Et ce problème est assez ancien. Vous pouvez lire les détails dans "Je ne peux pas obtenir les données des indicateurs de l'ancien TF 123".

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2012.03.12
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Francuz:

Vous ne comprenez pas. Le code n'est censé fonctionner qu'une fois. Son but est de montrer clairement que l'indicateur appelé ne fonctionne pas. Le problème est que l'indicateur appelé ne fonctionnera pas s'il (et l'appelant) a une TimeFrame différente de celle de la minute. J'ai découvert que c'est un bugde MetaTrader qui ne peut être résolu qu'avec des béquilles. Et ce problème est assez ancien. Vous pouvez lire les détails dans la rubrique "Je ne peux pas obtenir les données de l'indicateur de la principale TF 123".

C'était il y a longtemps. Le problème a été résolu depuis longtemps. Il faut au moins une fois toutes les deux minutes pour accéder aux données d'un cadre temporel/symbole non natif. Dans la boucle principale, s'il n'y a pas encore de données de l'intervalle de temps demandé, vous devez sortir de la boucle - il suffit de retourner zéro pour attendre le prochain tick, et l'indicateur sait que les données historiques n'ont pas encore été calculées.

 
Artyom Trishkin:

C'était il y a longtemps. Le problème est résolu depuis longtemps. Vous devez accéder aux données de l'horloge/symbole non natif au moins une fois toutes les deux minutes. Dans la boucle principale, s'il n'y a pas encore de données de l'intervalle de temps demandé, vous devez sortir de la boucle - il suffit de retourner zéro pour attendre le prochain tick, et l'indicateur a su que les données historiques n'ont pas encore été calculées.

Ils sont donc calculés, mais les valeurs sont envoyées de manière incorrecte. Il ne fonctionne correctement que sur les minutes.

Raison: