Les résultats de l'optimisation diffèrent des tests individuels sur ces derniers

 

J'optimise l'EA. Ensuite, je lance un test unique basé sur les résultats. Les résultats de l'optimisation et des tests individuels ne coïncident pas toujours.

Séquence d'actions :
1. Je sélectionne une paire (par exemple AudUsd) dans l'optimiseur et je fixe la période 2010.08.23 - 2010.10.30. Le conseiller expert dans la liste et l'horizon temporel H1 sont déjà sélectionnés - je ne teste qu'un seul conseiller expert maintenant.
2. Je saisis des plages d'optimisation des paramètres.
3. J'ouvre l'historique des minutes pour AudUsd en double-cliquant sur l'archive des citations. Cliquez sur Télécharger. Après le téléchargement, j'ouvre l'horloge et je clique à nouveau sur Télécharger. Il est écrit : "Recalculera-t-il toutes les échéances ? Je réponds oui.
4. J'optimise 4 ou 5 paramètres et j'attends quelques heures. Je voudrais voir les résultats de l'optimisation dans "AudUsd_1_optim.txt" joint à l'archive.
5. J'ai sélectionné la ligne qui me convient dans "Résultats d'optimisation" (dans mon exemple c'est le numéro 2183 dans le fichier "AudUsd_1_optim.txt") et j'ai double-cliqué sur ses paramètres dans le testeur. Je ne change pas et ne touche à rien d'autre.
6. Je commence le test unique. Je regarde l'onglet Rapport et je vois un profit et un drawdown complètement différents (201.78/-116.28), ne correspondant pas aux résultats de l'optimisation (162.36/-34.25) pour cette combinaison de paramètres. Il y a une erreur d'inadéquation de volume dans les journaux, mais ma stratégie n'utilise pas les volumes de quelque manière que ce soit, donc je pense que cette erreur n'est pas critique et ne peut pas affecter les résultats autant que cela. Le nombre de transactions et tout le reste est également différent. La liste des commandes de ce test est disponible dans le fichier "AudUsd_2_Orders.txt" et le journal se trouve dans "AudUsd_2.log".
7. Je suis très surpris. Bien que je m'y habitue lentement.
8. Je répète l'étape 3.
9. Je recommence le test unique en utilisant les mêmes paramètres. Maintenant, j'obtiens un profit et un drawdown qui coïncident avec l'optimisation. La liste des commandes de ce test est contenue dans "AudUsd_1_Orders.txt" et le journal est dans "AudUsd_1.log".

C'est ainsi depuis plus de deux mois maintenant (j'optimise chaque semaine). Ce problème est périodique et ne détecte aucun modèle clair. Il ne dépend pas de l'heure de départ de l'optimisation et d'un couple. Parfois, les résultats de l'optimisation et des tests séparés suivants coïncident, mais parfois non.
Franchement, j'en ai déjà assez. Toute la nuit, il compte et optimise quelque chose. Et je dois ensuite le réoptimiser à nouveau parce que je ne comprends pas à quels résultats je dois me fier. En outre, je ne suis pas sûr que même une coïncidence se soit avérée être une variante correcte et non pas un bug du travail du testeur.

Je tiens à vous dire tout de suite que j'ai cherché et lu des sujets similaires sur des forums. Je les ai cherchés et lus à la fois sur le forum Alpari et ici. Et dans Yandex aussi. Cela fait maintenant quelques semaines que j'essaie de trouver des informations. Mais tout ce que j'ai trouvé, ce sont les mots des développeurs sur la "propagation flottante" dont dépendent les résultats des tests. Et des conseils pour tester les stratégies le week-end (c'est exactement ce que je fais - ça ne marche pas). Bien que, à mon avis, cela ne ressemble à rien de plus qu'une excuse pour ne pas vouloir résoudre d'une manière ou d'une autre ce problème. Après tout, pour clore le sujet du "spread flottant", il suffit d'ajouter le champ "Spread" dans les paramètres de l'optimiseur remplis par les utilisateurs à leur discrétion, et on peut déjà effectuer une optimisation et une comparaison adéquates des stratégies par paramètres. Je ne vois pas l'intérêt de mémoriser le dernier écart de marché à des fins d'optimisation.

J'ai la dernière version de Metatrader téléchargée sur le site d'Alpari - 4.00.226. Exactement le même problème est observé sur deux autres ordinateurs, avec la même version, mais installés à des moments différents, à quelques mois d'intervalle. Les paramètres et la partition y sont les mêmes que sur le premier MT.
Je ne fais des tests et des optimisations que sur un compte de démonstration chez Alpari. Je n'ai pas connecté d'autres comptes. Le serveur Alpari-Demo se trouve dans les paramètres - Alpari NZ Limited. Je n'ai pas non plus touché au serveur. Je n'ai pas modifié les citations manuellement, je n'ai pas ajouté les miennes. Metatrader est toujours en ligne (j'ai toujours Internet sur mon ordinateur). J'effectue l'optimisation le samedi et le dimanche. Le spread, en théorie, ne devrait pas changer ces jours-là et le problème du "dernier spread" n'a probablement rien à voir avec cela. Les journaux ci-joints datent du samedi 30 octobre.
La période d'essai est toujours indiquée explicitement.

Les questions sont les suivantes :
1. Comment cela peut-il arriver ? Quelle en est la raison ?
2. Si c'est un problème de testeur, quand le réparerez-vous ? Et que dois-je faire pour que tout corresponde maintenant, dans cette version ?
3. si c'est ma faute, qu'est-ce que je fais de mal et comment dois-je m'y prendre ?

Je suis prêt à fournir le code réel complet de l'Expert Advisor (de toute façon il ne s'agit que d'une version très tronquée pour l'optimisation) et un ensemble de paramètres de test au développeur de Metatrader dans son message personnel.

Dossiers :
audusd.zip  116 kb
 

Voici un autre exemple. Je viens de commencer à examiner l'optimisation de nuit pour UsdJpy. Juste après l'optimisation, sans changer les cotations et sans les toucher, j'ai double-cliqué sur les valeurs des paramètres sélectionnés du résultat 2631 (profit 117.07 et drawdown 34.86) dans le testeur et j'ai exécuté un seul test en utilisant ces paramètres. J'ai obtenu un profit de -3925 et un drawdown de -4049.04. Une différence notable...
Le rapport fait état de 51 inadéquations de cartes. Il y a 51 entrées dans le journal à ce sujet. Mais toutes les entrées se réfèrent uniquement aux volumes, et je ne les utilise nulle part, pas même dans les indicateurs (je n'utilise pas d'indicateurs).
La période d'optimisation et de test est la même que dans mon premier post. Séquence d'actions - la même, mais avec l'ajout de l'exécution du testeur de contrôle après la p.3 pour vérifier l'absence d'erreurs d'inadéquation. Toutes les autres conditions sont les mêmes. L'optimisation a été effectuée dans la nuit du samedi au dimanche - le marché, et donc la propagation devrait être gelée.

J'ai encore été surpris. J'ai ouvert le "Quote Archive", j'ai appuyé sur "Upload" sur cette paire et j'ai permis de recalculer tous les délais.
Je double-clique à nouveau pour insérer des paramètres dans le testeur à partir des résultats de l'optimisation et je commence à tester. Les résultats sont maintenant les mêmes que dans l'optimisation. Il n'y a pas d'erreur d'inadéquation dans le rapport et le journal.

J'ajoute des questions (je continue à les numéroter) :
4. Où les divergences sont-elles apparues après l'optimisation (et peut-être pendant) si, avant l'optimisation, j'ai fait exprès de faire un essai et de m'assurer qu'après avoir chargé la paire dans "Quotes Archive" (entre le point 3 et le point 4 de mon message précédent), il n'y avait pas de divergences ?
5. Comment puis-je m'assurer que tous les résultats de l'optimisation sont obtenus sur des devis corrects et qu'il n'y a pas eu de pépin dans le processus d'optimisation ?
6. Comment les disparités de volumes peuvent-elles avoir un impact aussi important sur les résultats des tests qui n'utilisent pas de volumes ?

Z.I. J'ai un antivirus installé et qui fonctionne. Mais l'exécutable Metatrader et son dossier complet avec tous les sous-dossiers et fichiers sont dans les exceptions. Mon autre ordinateur n'a pas d'antivirus du tout, mais ces problèmes sont présents. Cela signifie que nous excluons l'antivirus. Même problème sur trois ordinateurs différents. Nous excluons les problèmes de disque et de matériel et l'influence éventuelle des programmes environnants. Quelque chose ne va pas dans Metatrader, il fait quelque chose de mal avec les cotations.

J'ai vu les mêmes problèmes d'optimisation dans d'autres stratégies, fondamentalement différentes. Donc, en substance, cela ne dépend pas vraiment de mon conseiller expert. C'est juste que ce n'était pas si important pour moi avant et je ne le testais pas assez. Maintenant, je fais des dizaines d'optimisations par semaine, et j'en ferai encore plus. Et nous parlons déjà d'argent réel. Veuillez me conseiller sur les actions correctes ou modifier le testeur et l'optimiseur. Merci !

L'archive contient les fichiers suivants :
UsdJpy_1_optim.txt - résultats de l'optimisation
UsdJpy_1_Orders.txt - liste des ordres (résultats) d'une seule exécution coïncidant avec l'optimisation
UsdJpy_1.log - journal de ce test
UsdJpy_1.htm - rapport sur ce test
UsdJpy_2_Orders.txt - liste des ordres (résultats) d'une seule exécution avec une perte énorme (avec des mismatches)
UsdJpy_2.log - journal de ce test
UsdJpy_2.htm - rapport sur ce test

Dossiers :
usdjpy.zip  179 kb
 

Maintenant, c'est encore plus intéressant. Ceci est sur le troisième ordinateur et sur une paire différente. Je fais tout selon le schéma de mon premier post. Après plusieurs heures d'optimisation, je vérifie les résultats. Je colle le jeu de paramètres sélectionné en double-cliquant (sans toucher ni modifier quoi que ce soit d'autre) et j'obtiens des résultats absolument différents de ceux de la chaîne d'optimisation avec les mêmes paramètres. Je vérifie le décalage des citations. Bien que j'aie téléchargé et recalculé les citations dans "Archive" avant l'optimisation. Ok, je pense, peut-être que le recalcul du devis va aider. Je lance "Recalculer toutes les échéances" et le teste à nouveau. Les divergences ont disparu. Mais j'ai maintenant calculé une troisième variante des résultats qui ne coïncide en rien avec les deux premières. *smiley_with_great_eyes*

Quelques tentatives supplémentaires pour recalculer les citations dans les archives et les tester. Tous les résultats correspondent maintenant à la dernière, troisième option. Hourra, nous avons trouvé la bonne variante ! Mais une demi-journée de travail sur l'optimisation a été gaspillée et les résultats de l'optimisation sont manifestement incorrects. C'est-à-dire que je dois réinstaller l'optimisation la nuit et avoir le temps de me lever tôt le matin pour choisir les paramètres appropriés pour la semaine suivante. En outre, vous ne pouvez pas être sûr qu'ils sont corrects.

J'ai remarqué d'autres détails. Premièrement, le nombre de "barres dans l'historique" diffère dans les rapports des testeurs pour les différentes variantes. Deuxièmement, même avec le même nombre de barres dans l'historique, les résultats peuvent être différents. Troisièmement, mon Expert Advisor travaille avec des chandeliers horaires et ouvre les premiers ordres de la série strictement à une certaine heure et 00 minute, c'est-à-dire à un chandelier Open. Mais ces ordres s'ouvrent à des prix différents dans des résultats différents. Cela peut être vu dans les rapports que j'ai joints dans mes premiers messages. Je n'écrirai donc pas d'autres journaux pour le moment. Si vous avez besoin d'autre chose, je l'afficherai.

Suis-je le seul à avoir ce problème avec le testeur ?

 

Et d'autres questions sur les "Archives des citations", puisque le sujet de leur conversion a été abordé. Pouvez-vous me dire où le lire en détail ou répondre à mes questions ici.

Je fais toutes les actions le samedi-dimanche, c'est-à-dire que l'archive des citations ne doit pas être modifiée.

J'ouvre une paire avec une fenêtre graphique non ouverte au cours de la semaine dernière, c'est-à-dire que je comprends que les cotations de cette semaine n'ont pas été téléchargées dans l'archive locale. J'appuie sur Télécharger. Le moniteur de trafic installé sur cet ordinateur montre les requêtes MT adressées au serveur et les blocs de données renvoyés par le serveur. Tout est correct. Après le téléchargement, je clique à nouveau sur Télécharger. Mais ici, j'ai deux possibilités : soit je continue à compter toutes les périodes (ce qui est logique lorsque le téléchargement est complètement terminé), soit je télécharge à nouveau quelque chose (et le moniteur de trafic le confirme) - on ne sait pas pourquoi le téléchargement n'a pas eu lieu la première fois. Et si vous appuyez plusieurs fois, le téléchargement depuis le serveur peut se faire après un nouveau calcul, ce qui n'est pas du tout logique et compréhensible. Si elle est déjà téléchargée, recalculée, qu'est-ce qui est téléchargé en plus ? Je ne ferme pas l'archive entre les téléchargements, je ne change pas la paire.

Parfois, il arrive qu'après avoir ouvert l'archive en appuyant sur le bouton Télécharger plusieurs fois de suite (5 ou plus), le serveur continue de télécharger quelque chose et ne propose pas de recalculer toutes les échéances, même si l'archive contenant la paire a été téléchargée auparavant (à l'ouverture précédente de l'archive) et si elle a été recalculée à ce moment-là. C'est comme si tout n'avait pas été chargé la première fois, et maintenant, chaque fois que vous cliquez, les éléments manquants sont remontés petit à petit, mais pas tous en même temps. Vous pouvez voir dans le moniteur qu'il ne s'agit pas seulement de demandes adressées au serveur, mais aussi de blocs de données renvoyés par celui-ci. Pourquoi et qu'est-ce qui n'a pas été chargé la première fois ? Combien de fois faut-il vraiment appuyer sur le bouton "Télécharger" pour être sûr que toutes les citations d'une paire sont téléchargées ?

Si je ferme l'archive, que je l'ouvre à nouveau et que je clique sur Recharger, les devis ne seront pas chargés la première ou la deuxième fois, mais un nouveau calcul sera proposé. La séquence logique de travail est rétablie. Et pourquoi cela se produit-il ? Comment le comprenez-vous ? Peut-être qu'après chaque téléchargement, je devrais fermer l'archive, l'ouvrir à nouveau et faire le nouveau calcul ? Veuillez expliquer.

Pouvez-vous faire en sorte que lorsque vous cliquez pour charger, les archives locales soient vérifiées et que tous les fichiers nécessaires soient chargés en une seule fois, puis que tous les délais soient automatiquement recalculés ? Et pouvez-vous intégrer le bouton "Valider" dans l'archive, qui montrera toutes les lacunes dans l'historique, les incohérences et autres ? Et ensuite, sur confirmation de l'utilisateur, tout serait automatiquement extrait du serveur et réparé. J'aimerais utiliser la version MT4 car la migration vers la version 5 va durer longtemps, et la version 4 est très populaire et très demandée. Et l'argent qu'on doit gagner maintenant, sur le 4.

Encore une fois, MT est connecté aux serveurs de démonstration d'Alpari depuis l'installation et ils n'ont jamais été modifiés. Il n'y a que deux dossiers dans le dossier de l'historique des programmes : Alpari-Demo et téléchargements. Les paramètres du nombre de barres dans l'historique et dans la fenêtre graphique n'ont pas été modifiés et restent par défaut depuis l'installation de MT sur l'ordinateur. Mais les résultats de l'appui sur le bouton Télécharger sont étonnamment différents. Que se passe-t-il réellement dans les archives et pourquoi sont-elles si imprévisibles ?

 
Je suis désolé, il y a quelque chose d'effrayant qui se passe ici.
 

Il existe une discussion parallèle sur ce sujet sur le forum Alpari http://forum.alpari.ru/thread58122.html.

Personne ici n'a de réponses ou même de questions ? Et les développeurs aussi ?

 

1. Vous devez supprimer les erreurs d'alignement des cartes. Supprimez tout l'historique des citations, téléchargez-en un nouveau.
2. Si le courtier a un spread flottant, il est nécessaire d'optimiser et de tester sur un seul spread. De préférence sur un modèle type.
3. Commencez la nuit ou le lendemain sur un compte de démonstration du conseiller expert et comparez les résultats de la démo et du testeur. Si les ordres coïncident approximativement, et que le nombre d'ordres n'est pas significativement différent, alors on peut faire confiance au testeur. Si le commerce ne correspond pas au testeur, vous ne devez pas optimiser dans le testeur.

Il serait bien de voir au moins un rapport de test.

 

Pour dimeon:

1. testé sur trois ordinateurs différents, trois instances différentes de MT4. Les symptômes sont les mêmes. Après avoir chargé les cotations dans l'"Archive", je les vérifie en exécutant le testeur - il n'y a pas de divergences pour la période requise. Puis je lance l'optimisation par la même période. Et puis je fais des tests d'optimisation. C'est ici que les divergences peuvent se produire. C'est-à-dire qu'ils apparaissent après que l'historique entier a été téléchargé et recalculé par l'Archive, après (ou pendant) l'optimisation. La suppression de l'historique n'apportera probablement rien.

2. Alpari a un spread flottant. Je suis d'accord avec vous, vous devez le tester sur des conditions de marché égales. Mais comment le tester sur une propagation sélectionnée, où le spécifier ? Je n'ai pas pu le trouver dans MT4.

C'est une bonne idée. Je vais probablement l'essayer. Seulement, je vais devoir prendre au moins quelques jours. Mais cela ne résout toujours pas la question principale : pourquoi ces problèmes avec les citations ?

Les rapports des testeurs sont dans les archives dans mes posts ci-dessus. Même pour deux paires différentes, à des jours différents. Dans les mêmes posts il y a une description des fichiers des archives. Jetez un coup d'œil.

 

Téléchargez l'historique, recalculez les délais. Déconnectez-vous d'Internet et testez.

Ce genre de conneries indique généralement que l'EA est extrêmement aiguisé. Les tics ne sont pas téléchargés, ils sont émulés. Et si vous ouvrez sur le marché, le moindre changement d'histoire conduit à cette absurdité.

Un résultat similaire peut être obtenu de cette manière :

L'ordinateur est connecté à Internet depuis longtemps et le graphique est ouvert sur H1.

Nous éteignons l'Internet et commençons les tests. L'Expert Advisor nous écrit qu'il télécharge l'historique de M5, M1 et ceci lorsque l'Internet est déconnecté. Il y a donc beaucoup d'embûches. Nous savons également quel type d'historique il télécharge lorsque l'Internet est connecté.

 
Merci, Mislaid. C'est exactement ce que je vais essayer de faire dans les prochaines optimisations. On m'a également parlé de cet algorithme sur le forum d'Alpari aujourd'hui. Bien que, franchement, soit je ne comprends pas la logique du programme, soit les développeurs ont une attitude étrange envers la partie la plus importante de l'optimiseur - les archives de citations. Je souhaite donc encore entendre les précisions des développeurs à ce sujet et les réponses aux questions. Et quel historique MT télécharge-t-il sur Internet ? Je ne sais rien à ce sujet. Expliquez-moi, s'il vous plaît, ou donnez-moi un lien où lire.
 
ReasonMan:
Merci Mislaid. C'est exactement ce que je vais essayer de faire avec les prochaines optimisations. On m'a également parlé d'un tel algorithme sur le forum d'Alpari aujourd'hui. Je vais essayer... Bien que, franchement, soit je ne comprends pas la logique du programme, soit les développeurs ont une attitude étrange envers la partie la plus importante de l'optimiseur - les archives de citations. Je souhaite donc que les développeurs apportent des éclaircissements sur ce sujet et répondent aux questions. Et quel genre d'historique MT télécharge-t-il sur Internet ? Je ne sais rien à ce sujet. Expliquez-moi, s'il vous plaît, ou donnez-moi un lien où lire.

Je ne sais pas tout, les conclusions de mon expérience personnelle.

Je vois que vous avez déjà mis en place suffisamment d'expériences pour pouvoir formuler des hypothèses.

Vous avez téléchargé une archive de citations sur les procès-verbaux. Il est téléchargé depuis le serveur MQ. Si vous l'avez remarqué, il manque ces derniers jours, voire ces dernières semaines. Hypothèse : l'archive des dernières citations sur le serveur MQ n'est peut-être pas encore formée. Vous téléchargez le reste de l'historique depuis le serveur via "Update".

Une autre expérience. Vous tuez l'histoire. Vous essayez de télécharger les minutes (cinq minutes) par le biais de "Update". Une petite partie de l'historique sera téléchargée depuis le serveur. Hypothèse : seule une partie limitée du dernier historique est stockée sur le serveur DC.

Hypothèse : le testeur télécharge М5, М1 depuis l'archive sur l'ordinateur et le complète depuis le serveur MQ. Si l'archive sur le serveur n'a pas encore été générée, ces données sont émulées. De même s'il n'y a pas de connexion internet. Les données émulées ne seront pas sauvegardées ?

Une fois par semaine, je télécharge l'historique pour 27 paires de devises en utilisant la fonction "Update". Sur certaines paires, plus de 10000 barres sont téléchargées, bien que les nouvelles barres de la semaine soient environ 7000. Hypothèse : l'histoire a changé.

Pour ces raisons, les résultats des tests peuvent ne pas coïncider avec les dernières données.

Les résultats des tests et les résultats des transactions démo (micro, réelles) peuvent ne pas coïncider pour d'autres raisons.