Que diable se passe-t-il ?

 

Il s'agit encore une fois du testeur/optimisateur...

J'ai remarqué des divergences dans les résultats de l'optimisation et du test unique. Redémarrage du terminal, modification des paramètres (pour être sûr). Début de l'optimisation.

J'ai fait un seul test...

Comment est-ce possible ? D'où vient cette absurdité ?

 

Avez-vous garanti que la logique de votre code est la même dans les deux cas ?

Pas dans le sens de "je n'ai pas changé le code", mais pour garantir que le comportement technique et logique du robot reste inchangé.

Ce type de revendication nécessite de donner le plus de détails techniques possible, y compris les logiques et les conditions de relecture. Plus vos propres tentatives pour comprendre et rassembler plus d'informations. Le programme est le vôtre.

Crier "J'ai écrit quelque chose ici, je ne l'ai pas compris, je n'ai pas décrit les détails, je veux juste exprimer mon indignation parce que je pense que mon programme, dont je ne sais pas comment il fonctionne, a été en quelque sorte malmené par quelqu'un d'autre" est futile.

 
J'utilisais l'optimiseur quand j'étais jeune et vert, maintenant cela fait plusieurs années que j'ai commencé à optimiser, un simple testeur suffit pour comprendre, et l'optimiseur nous nourrit d'illusions
 
Aleksey Semenov:
J'avais l'habitude d'utiliser l'optimiseur quand j'étais jeune et vert, et maintenant je ne l'ai plus utilisé depuis plusieurs années, parce que le testeur a juste besoin de comprendre, et l'optimiseur ne fait que nous nourrir d'illusions.

L'optimiseur a une tâche claire : vérifier le champ des options et donner un ensemble de paramètres pour la fonction définie par le trader.

Il s'agit d'une tâche technique et il a fait et fait un excellent travail.

La qualité et la robustesse des robots doivent être contrôlées.

 
Renat Fatkhullin:

L'optimiseur a une tâche claire : vérifier le champ des options et donner un ensemble de paramètres pour la fonction définie par le trader.

C'est une tâche technique, et il s'en est accommodé et fait un excellent travail.

La qualité et la robustesse des robots doivent être contrôlées.

J'ai supprimé tous les caches. Répéter le test d'optimisation. Le résultat est le même. Corriger les divergences.

Bien sûr, je ne suis pas un conseiller expert, mais je ne comprends pas pourquoi l'optimiseur a une valeur de 100 alors qu'il utilise les paramètres 3, 5, 20 et que le test avec les mêmes paramètres montre -20.....

La logique de l'EA est la même dans l'optimiseur et le testeur. Le matériel est le même. Que et comment dois-je faire pour obtenir une telle différence dans les résultats ?

Renat Fatkhullin:

Et vous avez garanti que la logique de votre code ne changera pas dans les deux cas ?

Pas dans le sens de "je n'ai pas changé le code", mais dans le sens de garantir un comportement inchangé aux niveaux technique et logique du robot.

Ce type de revendication nécessite de donner le plus de détails techniques possible, y compris les logiques et les conditions de relecture. Plus vos propres tentatives pour comprendre et rassembler plus d'informations. Le programme est le vôtre.

Crier "J'ai écrit quelque chose ici, je ne l'ai pas examiné, je n'ai pas décrit les détails, je veux juste exprimer mon indignation parce que je crois que mon programme, dont je ne connais pas le fonctionnement, a été en quelque sorte malmené par quelqu'un d'autre" est futile.

Des conseils sur la manière de détecter cette "variabilité" entre l'optimisation et le test ?

Je posterai les logs demain. Je vais tout nettoyer, optimiser et tester. Je me souviens de votre leçon )))) Je serai très attentif.


En attendant, bonne Grande Victoire à tous ! !!

Je vais aller célébrer ))))

 
Сергей Таболин:

Suppression complète de tous les caches. Répétition du test d'optimisation. Même résultat. Corriger les divergences.

Bien sûr, je ne suis pas un expert, mais je ne comprends pas pourquoi l'optimiseur a un résultat de 100, alors que le test avec les mêmes paramètres montre -20.....

La logique de l'EA est la même dans l'optimiseur et le testeur. Le matériel est le même. Que dois-je faire pour obtenir une telle différence dans les résultats ?

S'il vous plaît, conseillez-moi comment détecter cette "variabilité" entre l'optimiseur et le testeur ?

Je posterai les logs demain. Je vais tout nettoyer et faire l'optimisation et le test. Je me souviens de votre leçon )))) Je serai très attentif.


En attendant, bonne Grande Victoire à tous ! !!

Je vais aller célébrer ))))

Il y a un petit fil de discussion dans la section anglaise où un utilisateur pose la même question.
Son optimisation et son backtest sont les mêmes pour tous ses EA (tout est OK), mais un EA est le même que le vôtre.
Il a donné le résultat du backtest - vous pouvez le consulter (je lui ai donné une idée en un coup d'œil - pourquoi la différence).

Il n'a pas donné le code, mais il est clair que la raison se trouve dans la logique (dans le code) de son EA (car il a dit qu'il n'avait pas de tels problèmes avec tous ses autres EA - voir son dernier message dans le fil de discussion) : https://www.mql5.com/en/forum/338047.
 
Il suffit d'oublier d'initialiser quelque chose dans le code pour qu'il y ait une différence. Vérifiez le code.
 
Andrey Barinov:
Vous pouvez simplement oublier d'initialiser quelque chose dans votre code et il y aura une différence. Vérifiez le code.

J'ai testé des variantes il y a longtemps, il y avait vraiment des déchets dans les variables, le développeur a-t-il battu cela au départ avec ses propres efforts ? Après tout, s'il y a des déchets au milieu du code, cela devrait toujours être le même, non ?

Je ne suis pas un programmeur professionnel, c'est une question, je ne connais pas le principe de la programmation de bas niveau.

 
Sergey Golubev:
Il y a un petit fil de discussion dans la section anglaise où un utilisateur pose la même question.
Son optimisation et son backtest sur tous ses EAs correspondent (tout est OK) et un EA est comme le vôtre.
Il a donné le résultat du backtest - vous pouvez le consulter (je lui ai donné une idée en un coup d'œil - pourquoi la différence).

Il n'a pas donné le code, mais il est clair que la raison se trouve dans la logique (dans le code) de son EA (parce qu'il a dit qu'il n'avait pas de tels problèmes avec tous les autres EA - voir son dernier post) : https://www.mql5.com/en/forum/338047.

Tout est identique au mien ))))

Andrey Barinov:
Il suffit d'oublier d'initialiser quelque chose dans le code pour qu'il y ait une différence. Vérifiez le code.

Comment ça ? C'est pareil là et là. Comment peut-il y avoir une différence ? D'autant plus que pratiquement toutes les données sont initialisées dans une boucle. Et si quelque chose n'est pas initialisé à cet endroit, vous sortez avec une erreur.

Fast235:

Il y a longtemps, j'ai testé des variantes, il y avait des déchets dans les variables, le développeur n'a-t-il pas vaincu cela dès le début par ses propres efforts ? Après tout, au milieu du code, s'il peut y avoir des déchets, ils doivent toujours être les mêmes, non ?

Je ne suis pas un programmeur professionnel, c'est une question.

C'est exactement ce que je veux dire. Il doit être le même dans les deux cas. Même si j'ai un bug quelque part, il doit être partout. Mais il s'avère que ce défaut (le mien) est en quelque sorte magiquement corrigé. Mais il n'est absolument pas clair où... Soit dans l'optimiseur, soit dans le testeur....


Loin de la table de fête pour un moment )))))))))))

 
Сергей Таболин:

Tout est identique au mien ))))

Comment ça ? C'est pareil là et là. Comment peut-il y avoir une différence ? D'autant plus que pratiquement toutes les données sont initialisées dans une boucle. Si quelque chose n'est pas initialisé, vous obtiendrez une erreur.

C'est ce que je veux dire. Il doit être le même dans les deux cas. Même s'il y a un bug à un endroit, il doit être partout. Mais il s'avère que ce défaut (le mien) est en quelque sorte magiquement corrigé. Mais il n'est absolument pas clair où... Soit dans l'optimiseur, soit dans le testeur....


Loin de la table des fêtes pour un moment )))))))))))

Je parlais des variables, lorsque vous exécutez le script et qu'au lieu de 0, elles contiennent les données de la dernière exécution ou quelque chose comme ça, je ne me souviens pas, c'était il y a 5 ans ou quelque chose comme ça...

et dans le testeur le plus probable encore vous avez quelque part la nuance, qui d'ailleurs dit que MQ il doit être amélioré, je personnellement n'aime pas tout dans le testeur, l'interface pour l'exécuter n'aime pas

 
Сергей Таболин:

Tout est identique au mien ))))

Comment ça ? C'est pareil là et là. Comment peut-il y avoir une différence ? D'autant plus que pratiquement toutes les données sont initialisées dans une boucle. Et si quelque chose là n'est pas initialisé - sortie avec une erreur.

...

J'ai donné à ce camarade de la branche une idée de la raison pour laquelle il a une différence dans cette EA.
En effet, à la fin du backtest (au moment de la fin du backtest), toutes les positions ouvertes sont fermées de force (uniquement dans le testeur).
S'il avait juste fait un échange, ils ne seraient pas fermés à ce moment-là.

Donc, ici pour lui -

  • Ou l'optimisation de la confiance (qui, dans son cas, est préférable),
  • ou ignorer la fermeture forcée des positions ouvertes dans le bestest seulement avant qu'il ne se termine, mais alors il n'aura pas de chiffres,
  • ou choisissez un intervalle de temps pour le backtest avec les mêmes paramètres d'optimisation, lorsque l'EA fermera toutes les positions avant la fin du backtest (en choisissant ...), et alors je pense que ce sera la même chose.
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Raison: