Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration - page 38

 

Jouer le bug de la réinitialisation des entrées pendant la compilation.

EA

input int inRange = 0;

void OnInit() {}

1. définir inRange = 25 et exécuter une seule passe

2. CTRL+V dans l'onglet Paramètres du testeur de la ligne suivante

inRange=123

3. Recompiler l'EA.

4. Voyez que le inRange est réinitialisé à 25. Il aurait dû être de 123.

 
Slava:

Dans la minuterie du testeur ou via la veille décalée de 0,5 seconde. Comment identifier ce qui s'est passé ? TimeTradeServer ne montre pas les données de moins d'une seconde.

 
fxsaber:

Jouer le bug de la réinitialisation des entrées pendant la compilation.

EA

1. définir inRange = 25 et exécuter une seule passe

2. CTRL+V dans l'onglet Paramètres du testeur de la ligne suivante

3. Recompiler l'EA.

4. Voyez que le inRange est réinitialisé à 25. Il aurait dû être de 123.

Ce n'est pas un bug.

Tel que conçu. Tant que le bouton de test n'est pas pressé, les paramètres actuels ne sont pas écrits dans le <nom_expert>.set actuel

Lors de la recompilation, si la composition des paramètres n'a pas changé, leurs valeurs sont restaurées à partir de l'ensemble actuel

 
Slava:

Ce n'est pas un bug.

Tel que conçu. Tant que vous n'appuyez pas sur le bouton de test, les paramètres actuels ne sont pas écrits dans le <nom_expert>.set actuel

Lors de la recompilation, si la composition des paramètres n'a pas changé, leurs valeurs sont restaurées à partir de l'ensemble actuel

Ce n'est pas le cas. Si vous écrivez 123 à la main, la compilation ne changera pas la valeur.

 
J'ai déjàécrit sur ce sujet aussi, mais il n'y a pas eu de réponse. En fait, il devient impossible de déboguer avec des paramètres personnalisés. Parce que le débogage reconstruit à chaque fois, même si rien n'a été modifié. Rebuild réinitialise les paramètres. Je vais devoir sortir de l'équation en changeant le conseiller expert et en fixant les paramètres, ce qui n'est pas très pratique.
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Quelque chose que vous avez sur-optimisé avec iTime :


Je travaille sur la M5 :


Il s'agit d'un bogue de longue date.

Apparu sur des ticks EURUSD réels exactement dans cette fourchette de test.

Corrigé.

 
traveller00:
J'ai égalementécrit sur ce sujet, mais il n'y a pas eu de réponse. En fait, il devient impossible de déboguer avec des paramètres personnalisés. Parce que le débogage reconstruit à chaque fois, même si rien n'a été modifié. Rebuild réinitialise les paramètres. Je vais devoir sortir de l'équation en changeant le conseiller expert et en fixant les paramètres, ce qui n'est pas très pratique.

Vous n'avez rien dit sur les étapes à suivre pour reproduire le problème que vous décrivez.

Je n'ai personnellement pas pu le reproduire.

Il n'y a qu'un seul cas de réinitialisation des paramètres d'entrée aux paramètres par défaut. Lorsque vous modifiez la composition des paramètres de cette EA

 
fxsaber:

Les prix dans l'historique du terminal n'ont pas été normalisés !

Les prix de MQ-Demo et MQ-Beta ont été normalisés à partir du 12.12.2019.

 

Une construction de 2280 est utilisée. Il prend un symbole et une période où il n'y avait pas de citations. Dans ce cas, il s'agit de la bourse, du courtier Otkritie, du symbole UCAD-12.19, de la période 01.09.2019-03.09.2019. Un simple Expert Advisor est en cours d'exécution (ci-dessous). Si vous effectuez une passe à la fois, tout va bien, mais il est indiqué qu'il n'y a pas d'historique, 0 barre et 0 ticks. Si je lance l'optimisation, peu importe qu'elle soit génétique ou pleine, le journal contiendra beaucoup d'erreurs

genetic pass (0, 504) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0:00:00.041
input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}

Il semble que ce soit une réponse pour accéder au tableauOldTicks, mais je ne sais pas pourquoi. Remplacer le résultat du retour de la fonction par la taille du tableau n'aide pas. Ce qu'il faut faire, inconnu.

 

Construire 2280. Pourquoi, lorsque vous exécutez une optimisation, par exemple une optimisation génétique, tous les champs de l'onglet Paramètres deviennent grisés et ne peuvent être modifiés, mais le champ pour lequel l'optimisation est en cours (comme le critère personnalisé maximum) reste actif ? Le critère peut-il être modifié en plein milieu de l'optimisation ou s'agit-il d'un bug ?

P.S. Hm, ça ne semble pas toujours se répéter.

P.P.S. J'ai trouvé comment répéter. Initialement, après avoir exécuté le test, le bouton passe dans un état désactivé. Mais la fenêtre des paramètres inférieurs est un peu comprimée en hauteur, ce qui entraîne un défilement vertical. Si vous faites défiler l'écran jusqu'à ce que le critère ne soit plus visible, puis faites défiler l'écran vers le bas, vous pouvez le retrouver dénudé.
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...