Erreurs, bugs, questions - page 1941

 
Andrey Koldorkin:

Pouvez-vous me dire comment MT5 peut produire de tels résultats lors de l'optimisation, messieurs les connaisseurs ?

Il ne s'agit pas d'un cas isolé. En outre, si vous prenez n'importe quelle ligne et effectuez un seul test, le résultat sera complètement différent de celui du tableau.

De plus, un même test avec et sans visualisation donnera des résultats complètement différents.

De plus, si vous effectuez le test plusieurs fois, les résultats peuvent eux aussi différer parfois radicalement.

=====

Cela a commencé avec le terminal la semaine dernière. Avant cela, il semblait fonctionner de manière adéquate. Ou peut-être que je n'ai rien remarqué d'anormal.

J'ai eu le même problème il y a un an. Le testeur a également obtenu des résultats avec des paramètres EA impossibles. Par exemple, si le Take Profit est désactivé dans l'EA, il a produit un résultat de test, mais si nous le réglons sur 10000000000 points (c'est-à-dire qu'il ne peut jamais être atteint, d'où sa désactivation), le testeur a produit des résultats complètement différents.


Comment puis-je lutter contre ces insectes ? Pourquoi ce problème peut-il se poser ? Peut-être que je fais quelque chose de mal ?

Insérez deux lignes au début de votre EA

#define  REPORT_TESTER // В тестере будут автоматически записываться отчеты
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

Cela obligera le testeur à enregistrer un rapport détaillé pour chaque passage de l'optimiseur et pour une seule exécution.

Comparez le rapport d'exécution résultant de l'optimiseur et sa version d'une seule exécution.

 
Le compilateur MQL5 est silencieux, et MQL4++ avertit
m_pixels[y*m_width+x]=(r<<16|g<<8|b<<0|255<<24) &0xffffffff; // check operator precedence for possible error; use parentheses to clarify precedence

Qui a raison ?

 
Erreur de compilation (MT5b1641)
void NewFunc( int ) {}

#define  MACROS(A) New##A

void OnStart()
{  
  NewFunc(0);      // OK
  MACROS(Func(0)); // Error: 'NewFunc(0)' - undeclared identifier
}
 

Veuillez inclure les macros

__SCRIPT__ - le fichier mq5 compilé est un Script.

__INDICATOR__ - le fichier mq5 compilé est un Indicateur.

__EXPERT__ - le fichier mq5 compilé est un conseiller expert.

__SERVICE__ - le fichier .mq5 compilé est un service.


Situation où MQLInfoInteger ne peut être utilisé

#ifdef __EXPERT__

void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)  
  {
    Print("FirstTick!");
    
    FirstRun = false;
  }
  
  OldOnTick();
}

#endif // __EXPERT__

#ifdef __SERVICE__

void OnTick( const string &Symb )
{
  static bool FirstRun = true;
  
  if (FirstRun)  
  {
    Print("FirstTick!");
    
    FirstRun = false;
  }
  
  OldOnTick(Symb);
}

#endif // __SERVICE__

#define OnTick OldOnTick

// Дальше код советника/сервиса.

 
Comment obtenir un agent de relations publiques par le biais de MQL ? En mesurant la vitesse de l'agent, je voulais obtenir un PR, mais il n'est pas .
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
Comment puis-je obtenir un agent de relations publiques par le biais de MQL ? Je mesure la vitesse de l'agent, je voulais obtenir le PR, mais il n'y a pas de PR ici.

Quel est l'intérêt ? Vous ne pouvez pas choisir les agents de toute façon. Vous pouvez interrompre une tâche si elle prend trop de temps, même sans PR.

 
Stanislav Korotky:

Quel est l'intérêt ? Vous ne pouvez pas choisir les agents de toute façon. Il est possible d'interrompre une tâche si elle prend trop de temps, même sans PR.

L'objectif est de pouvoir montrer l'incohérence des performances réelles de l'agent de relations publiques. Ou vice versa - pour montrer l'adéquation du calcul de la notation.

 
Impossible d'ouvrir un compte de démonstration MT4 sur MetaQuotes-Demo.
 

Le testeur MT4 en mode "All ticks" effectue des transactions sur des barres qui ne figurent pas dans l'historique.

 
fxsaber:

L'objectif est de pouvoir indiquer l'incohérence de l'agent de relations publiques par rapport à ses performances réelles. Ou vice versa - pour montrer l'adéquation du calcul de la notation.

Indiquer à qui - MQ ? Ils utilisent leur propre algorithme pour calculer le RP, et c'est une autre façon de mesurer la "performance réelle" ?