Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration - page 34
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je ne le regarde jamais non plus. Mais il prend un espace utile...
Cependant, il s'est avéré utile.
Je ne le regarde jamais non plus. Mais il prend un espace utile...
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration
fxsaber, 2019.12.11 04:50
Il manque également des millisecondes dans la deuxième colonne.
N'est-il pas choquant de constater que l'on trouve d'abord des messages du testeur concernant la synchronisation, le chargement du conseiller expert, etc. avec l'heure locale, puis des messages du conseiller expert et du serveur de trading de test avec l'heure de test, parfois entrecoupés de messages du testeur avec l'heure locale ?
Slava, j'ai réfléchi à la meilleure façon de l'organiser. Je voulais suggérer que l'heure de démarrage, la synchronisation, etc. soient envoyées en premier, et ensuite le reste - de l'expert et du testeur avec des messages importants.
Cela me semble être la même chose que ce que vous avez suggéré :)
J'ai trouvé un des endroits où Tester peut être accéléré. Il s'avère que chaque fois que Tester compare deux prix (par exemple BuyLimit et Tick.ask), il le fait via une normalisation coûteuse. Il n'y a pas besoin de faire ça !
Les prix dans l'historique du terminal ne sont pas normalisés !
Résultat (EURUSD, MQ-Beta)
Comment est-ce possible ? Une erreur du côté du serveur commercial ?
Par conséquent, le testeur fait fonctionner les EA à des prix frauduleux, même sur des symboles réels.
Il semble que le problème soit que les développeurs ont utilisé un algorithme de normalisation différent.
Reproduction d'un bug avec une valeur vide dans les paramètres d'intuition.
1. Assemblez l'EA :
2. optimiser les deux paramètres :
3. Décochez enam et optimisez seulement x :
4. Chargez le 1er cache d'optimisation, puis le 2ème cache d'optimisation, lancez une seule exécution à partir des résultats. Au lieu de -1, nous obtenons INT_MAX:
Pertinent pour tous les enums commençant par -1.
Il y a une suspicion que lorsque vous décochez t, l'entrée est complètement désactivée.
et la variable t contient une valeurINT_MAX non initialisée au lieu d'une valeur vide.
Les prix dans l'historique du terminal ne sont pas normalisés !
Résultat (EURUSD, MQ-Beta)
Comment est-ce possible ? Une erreur du côté du serveur commercial ?
Par conséquent, le testeur fait fonctionner les EA à des prix frauduleux, même sur des symboles réels.
Il semble que le problème soit que les développeurs ont utilisé un algorithme de normalisation différent.
Ce ne sont pas des prix abusifs ! Ils sont tout à fait normalisés. Cela ressort très clairement de votre empreinte
Le serveur de négociation utilise toujours un epsilon pour comparer le prix entrant au prix actuel lors de la négociation.
Savez-vous que le résultat de <un_nombre_réel>*0,5 peut être différent du résultat de <le_même_nombre_réel>/2,0 ?
Savez-vous que certains compilateurs peuvent remplacer une opération par une autre lorsqu'ils optimisent le code ? De plus, dans un cas, il est remplacé et dans un autre cas, il ne l'est pas, dans le même projet. Sans déclarer la guerre.
Il y a une suspicion que lorsque vous décochez t, l'entrée est complètement désactivée.
et la variable t contient une valeur INT_MAX non initialisée au lieu d'une valeur vide.
Ce que la raison est à l'intérieur n'est pas important.
Ce qui est important, c'est qu'ils le reproduisent et le réparent. Le bug est vieux.
Ce ne sont pas des prix abusifs ! Ils sont tout à fait normalisés. Cela ressort très clairement de votre empreinte
Le prix n'est normalisé que s'il passe cette condition.
Forum sur le trading, les systèmes de trading automatisés et le testeur de stratégie
Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration
fxsaber, 2019.12.11 07:47
Le serveur de négociation utilise toujours epsilon lors de la négociation pour comparer le prix entrant et le prix actuel.
Il est exact que le serveur commercial fait exactement cela.
Savez-vous que le résultat <un_nombre_réel>*0,5 peut être différent du résultat <le_même_nombre_réel>/2,0 ?
Savez-vous que certains compilateurs peuvent remplacer une opération par une autre lors de l'optimisation du code ? Et dans un cas remplacer et dans un autre non, au sein du même projet. Sans déclarer la guerre.
La réponse aux deux questions est affirmative - je suis au courant.
Une fois de plus, les prix originaux dans le terminal ne sont pas normalisés. Cette situation se produit donc facilement.
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-DemoLe prix d'ouverture de la position actuelle n'est pas égal au prix de leur ordre/transaction.