Erreurs, bugs, questions - page 2291

 

La bibliothèque .ex5 ne peut pas être chargée si elle se trouve dans le répertoire commun de tous les terminaux clients MetaTrader 5 (Common\MQL5\Libraries) comme décrit dans la documentation- "Rechercher la bibliothèque EX5 importée dans la séquence suivante : point 3".

#import "Test.ex5"
        void f();
#import
void OnStart()
{
        f();
}

Résultat : impossible d'ouvrir le fichier 'Test.ex5'.

alors que 'Test.ex5' se trouve dans le dossier Common\MQL5\Libraries.

 
fxsaber:
Il peut être intéressant d'examiner l'ordre dans lequel les objets sont stockés dans le modèle. Je pense que plus un objet est stocké tard, plus il est élevé par rapport aux autres.
Pour placer un objet au-dessus de tous les autres, quel que soit l'ordre dans lequel il est stocké, vous devez d'abord le rendre invisible sur toutes les périodes, puis le rendre à nouveau visible.
 
Tetyana Shcherba:

Je ne sais pas si j'écris au bon endroit, mais dans mon signal, qui sert à surveiller les performances de l'EA, un avertissement est apparu qui n'a absolument rien à voir avec la réalité.

""80% des gains ont été réalisés en 16 jours. C'est 4% de la durée de vie totale du signal, qui est de 376 jours.""


Comment est-ce possible, ou est-ce que je comprends mal quelque chose ?

J'ai remarqué ça hier aussi. Ils doivent réparer la formule.
 

Les passages qui renvoient INIT_PARAMETERS_INCORRECT pendant l'optimisation ont les entrées suivantes dans le journal

Core 3  pass 90 tested with error "incorrect input parameters" in 0:00:00.000
Core 3  pass 91 tested with error "incorrect input parameters" in 0:00:00.125
Core 3  pass 92 tested with error "incorrect input parameters" in 0:00:00.141


En même temps, ils apparaissent dans les résultats d'optimisation pour une raison quelconque.


Vous pouvez voir dans la capture d'écran qu'elles sont triées par bénéfice, mais les passes incorrectes ne succombent pas à ce tri. Par conséquent, lorsque je descends dans la liste, je vois des passes incorrectes au lieu de passes négatives. La valeur zéro indique soi-disant qu'il n'y a pas de passes négatives. Je dois faire défiler la page vers le bas pour trouver ces passages très négatifs, à moins que je ne sois induit en erreur par le comportement de cette interface graphique.


Auparavant, les nuls de OnInit et ExpertRemove ne pouvaient pas être affichés dans les résultats d'optimisation. Et même s'ils étaient affichés, leurs lignes dans le tableau étaient marquées en rouge. Est-il possible de faire revenir ce comportement ?


Lors de l'exportation du XML, l'information selon laquelle certaines lignes du tableau sont des résultats incorrects est-elle transmise ? Si je comprends bien, cet indicateur de conformité est stocké dans le format opt qui n'est pas encore ouvert.

Ce serait bien de pouvoir l'obtenir dans OnTesterPass.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Erreurs, bugs, questions

fxsaber, 2018.09.13 06:16

A la fin de l'Optimisation, le testeur donne ceci
Tester  optimization finished, total passes 691200 (successful 673286 passes)

Les experts sont des passes qui ont atteint la fin. Les autres sont interrompus par ExpertRemove.


Par quel drapeau le Testeur classe-t-il les passes reçues des Agents ? Comment lire cet indicateur dans OnTesterPass ?


Et sur le tableau d'optimisation, il serait bien de ne pas montrer les passes incorrectes.


 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Bugs, bugs, questions

fxsaber, 2018.09.13 06:16

A la fin de l'optimisation, le testeur produit ceci
Tester  optimization finished, total passes 691200 (successful 673286 passes)

Expertl sont les passes qui ont atteint la fin. Les autres sont interrompus par ExpertRemove.


Je ne comprends pas pourquoi Tester ne dit pas un mot sur les passes réussies...

Tester  optimization finished, total passes 1800

Il y a des passes interrompues par ExpertRemove, mais la réponse à la fin n'est pas du tout comme vu dans la citation ci-dessus.

 
Slava:
Pour placer un objet au-dessus de tous les autres, quel que soit l'ordre dans lequel il est placé, vous devez d'abord le rendre invisible sur toutes les échéances, puis le rendre à nouveau visible.
J'ai déjà écrit à ce sujet à la page précédente. La question était différente : comment puis-je ensuite déterminer cela de manière programmatique ?
 
Alexey Navoykov:
J'ai déjà écrit à ce sujet sur la dernière page. La question était différente : comment déterminer ensuite cela de manière programmatique ?
Non
 
Erreur de compilation
typedef void (*fn1)();
void f1() {}
void g()
{
        fn1 f = f1; //(1) нормально
}
/*...*/
typedef void (*fn2)();
void f2() {}
void OnStart()
{
        fn2 f = f2; //(2) Error: 'f2' - type mismatch
}

Quelle différence cela fait-il ?

 
Slava:
Non
// В комментарии к чарту выводит текущую Z-глубину всех графических объектов чарта

#define private public
  #include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003
#undef private

#define  STRING_END "\r\n"
#define  OBJECT_NAME "name="
#define  OBJECT_BEGIN ("<object>" + STRING_END)

int GetZObjects( string &Names[], const long Chart_ID = 0 )
{
  const int Size = ArrayResize(Names, ObjectsTotal(Chart_ID));
  string Template = EXPERT::TemplateToString(Chart_ID);  
  
  for (int i = 0; i < Size; i++)
  {
    Template = EXPERT::StringBetween(Template, OBJECT_BEGIN);
    
    Names[i] = EXPERT::StringBetween(Template, OBJECT_NAME, STRING_END);
  }
  
  return(Size);
}

void OnChartEvent( const int id, const long&, const double&, const string& )
{
  if ((id == CHARTEVENT_OBJECT_CHANGE) ||
      (id == CHARTEVENT_OBJECT_CLICK) ||
      (id == CHARTEVENT_OBJECT_CREATE) ||
      (id == CHARTEVENT_OBJECT_DELETE) ||
      (id == CHARTEVENT_OBJECT_DRAG) ||
      (id == CHARTEVENT_OBJECT_ENDEDIT))
  {
    string ZObjects[];
    
    string Str = NULL;
    
    for (int i = GetZObjects(ZObjects) - 1; i >= 0; i--)
      Str += (string)i + " Z: " + ZObjects[i] + "\n";
      
    Comment(Str);
  }
}
 
Tetyana Shcherba:

Je ne sais pas si j'écris au bon endroit, mais dans mon signal, qui sert à surveiller les performances de l'EA, un avertissement est apparu qui n'a absolument rien à voir avec la réalité.

""80% des gains ont été réalisés en 16 jours. C'est 4% de la durée de vie totale du signal, qui est de 376 jours.""


Comment est-ce possible, ou est-ce que je comprends mal quelque chose ?

Vladislav Andruschenko:
J'ai remarqué ça hier aussi. Ils doivent corriger la formule.

Je ne suis pas le premier à le remarquer.

https://www.mql5.com/ru/forum/268577/page6#comment_8736344

Новый дизайн на странице сигнала
Новый дизайн на странице сигнала
  • 2018.09.19
  • www.mql5.com
Что первое бросилось в глаза. Попробовал найти текущие средства, так этого и нашел...
Raison: