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
J'ai lu quelque part sur un forum que les commentaires pendant les tests ne sont pas écrits dans le journal (afin d'économiser de l'espace disque). Ma question est donc la suivante : comment puis-je déboguer le programme dans le testeur ? J'ai essayé printf et PrintFormat - rien ne fonctionne dans le testeur, j'ai même essayé Alert.
Vérifié. Mon agent est local (du moins, il est répertorié dans Local). Après avoir exécuté Expert Advisor en mode"Every tick", le contenu de l'onglet "Log" correspond au contenu du fichier journal de l'agent (Expert Advisor et fichiers journaux joints).
Oui, j'ai oublié. La période de test est "le mois dernier".
Votre journal indique "debug version of 'test.ex5', please recompile it".
Cela signifie qu'un EX5 destiné au débogage (en appuyant sur F5 dans l'éditeur, on obtient un EX5 avec des informations de débogage) ne peut pas être exécuté dans le testeur.
Nous ferons une recompilation automatique de ces EAs. En attendant, recompilez manuellement votre EA.
Et vous pouvez apporter le code complet ?
Et j'ai probablement fait remonter tout ça, je ne vois pas d'autre raison...
Je vais essayer de décrire la situation de manière plus détaillée.
Il y a une classe simple "CMqlTimer", la tâche de cette classe est de suivre le moment de changement de différents intervalles de temps : heure, jour, semaine, mois, année.
Tout est réalisé avec des primitives très simples, par exemple, si les minutes sont égales à 0, c'est qu'il y a une "nouvelle heure" ; si le numéro du jour de la semaine ne correspond pas à celui stocké dans la variable, c'est qu'il y a alternance de jours ("00:00:00" à l'heure du serveur). Et ainsi de suite.
L'analyse est effectuée lorsque le timer est déclenché, avec un intervalle de 1 seconde, le travail est effectué dans CMqlTimer::OnTimer(). Si l'intervalle de temps change, la fonction doit être exécutée. Par exemple, si c'est un "nouveau" jour, la fonction CMqlTimer::OnRolloverDay() doit être exécutée.
Si nous supprimons le reste du code et n'écrivons que OnRolloverDay(), le résultat sera le suivant :
Tous les événements de l'utilisateur sont suivis et transmis pour traitement à la classe principale.
Cela ressemble à quelque chose comme ceci
Ainsi, les événements n'atteignent pas OnChartEvent en mode test, c'est-à-dire que l'Expert Advisor ne peut pas traiter un événement envoyé en utilisant EventChartCustom en mode test. Je l'ai vérifié en affichant tous les événements dans le journal.
PS
La chose la plus intéressante est que la démo tous les événements atteindre, mais dans le testeur est de travail refuse.
Avant le 319, tout fonctionnait et dans le testeur, les événements étaient traités avec succès. C'est vrai que la dernière version où ça a marché, je ne peux pas dire...
Votre journal indique "debug version of 'test.ex5', please recompile it".
Cela signifie qu'un EX5 destiné au débogage (en appuyant sur F5 dans l'éditeur, on obtient un EX5 avec des informations de débogage) ne peut pas être exécuté dans le testeur.
Nous ferons une recompilation automatique de ces EAs. En attendant, recompilez manuellement votre EA.
Et j'ai probablement fait remonter tout ça, je ne vois pas d'autre raison...
Je vais essayer de décrire la situation de manière plus détaillée.
...Je ne comprends pas ce qui ne va pas, EA fonctionne dans le testeur sans erreurs et dans la machine de test de l'organisateur passe aussi sans erreurs.
Lorsque je l'exécute sur un compte de démonstration, j'obtiens une erreur lorsque j'essaie d'ouvrir un ordre :
2010.09.06 13:26:50 Trades '101894' : échec de l'achat instantané de 0.10 USDJPY à 84.179 [Mode de remplissage non supporté].
2010.09.06 13:26:45 Trades '101894' : échec de l'achat instantané de 0.10 USDCAD à 1.03689 [Mode de remplissage non supporté].
2010.09.06 13:26:39 Trades '101894' : échec de l'achat instantané de 0.10 USDJPY à 84.174 [Mode de remplissage non supporté].
2010.09.06 13:26:34 Trades '101894' : échec de l'achat instantané de 0.10 USDCAD à 1.03685 [Mode de remplissage non supporté].
2010.09.06 13:26:28 Trades '101894' : échec de l'achat instantané de 0.10 USDJPY à 84.174 [Mode de remplissage non pris en charge].
2010.09.06 13:26:23 Trades '101894' : échec de l'achat instantané de 0.10 USDCAD à 1.03688 [Mode de remplissage non supporté].
2010.09.06 13:26:18 Trades '101894' : échec de l'achat instantané de 0.10 USDJPY à 84.181 [Mode de remplissage non supporté].
Demande de vente :
Demande de BUY :
OrderCheck ne trouve pas d'erreur.
Remplacé la requête ORDER_FILLING_CANCEL par la requête ORDER_FILLING_AON, l'expert fonctionne.
Mais le problème reste entier, pourquoi y a-t-il une telle différence dans le fonctionnement du testeur et du serveur.
Quelle blague si le serveur du championnat devient l'inverse.