Questions des débutants MQL5 MT5 MetaTrader 5 - page 674

 
Leo59:

Je n'arrive pas à obtenir quelque chose à imprimer() dans le journal du testeur. Comment faites-vous ?

Voici le code de OnInit() de l'Expert Advisor :

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


Ensuite, je fixe un point d'arrêt (étape 1) et j'exécute le test sur l'historique (étape 2) :

OnInit()

et dans le testeur j'obtiens le résultat :

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00
 

Vladimir Karputov:

Ensuite, je fixe un point d'arrêt (étape 1) et j'exécute un test d'historique (étape 2) :

Bizarrement, ce bouton bleu, que vous désignez par le chiffre "2", n'est pas actif pour moi. Serait-ce parce que je suis dans MT4 ?
 
Mais, néanmoins, si une telle chose est écrite :


Le fonctionnement de certaines fonctions du testeur de stratégie du terminal client est soumis à des restrictions.

Fonctions Print() et PrintFormat()

Pour augmenter les performances lors de l'optimisation des paramètres EA, les fonctionsPrint() etPrintFormat() ne sont pas exécutées. L'exception est l'utilisation de ces fonctions à l'intérieur du gestionnaireOnInit(). Cela nous permet de faciliter la recherche des causes des erreurs lorsque celles-ci se produisent.


pourquoi les fonctionsPrint() dans le handlerOnInit() ne fonctionnentpas comme d'habitude ?

Et en général, qu'en est-il des autres fonctions définies par l'utilisateur dans init() en mode optimisation ?
 
Leo59:
Curieusement, mon bouton bleu, que vous désignez par "2", n'est pas actif. Serait-ce parce que je suis dans MT4 ?

Oui, c'est pourquoi je peux librement tester n'importe quel EA sur l'HISTORIQUE, c'est à dire choisir une période, disons de 2016.06.20 à 2016.11.11 et tranquillement, étape par étape, déboguer et observer les changements dans les variables, alors que vous ne pouvez pas le faire.

Alors, cela vaut-il la peine de continuer à s'asseoir sur un vieux terminal dont le support est terminé ? Ou peut-être devriez-vous utiliser la version moderne de MetaTrader 5 ? En fait, MetaTrader 5 dispose déjà d'une couverture :la plateforme de trading MetaTrader 5 dispose d'une couverture.

 
Vladimir Karputov:

Oui, c'est pourquoi je peux librement tester n'importe quel EA sur l'HISTORIQUE, c'est à dire choisir une période, disons de 2016.06.20 à 2016.11.11 et tranquillement, étape par étape, déboguer et observer les changements dans les variables, alors que vous ne pouvez pas le faire.

Alors, cela vaut-il la peine de continuer à s'asseoir sur un vieux terminal dont le support est terminé ? Ou peut-être devriez-vous utiliser la version moderne de MetaTrader 5 ? Après tout, MetaTrader 5 dispose déjà d'une couverture :la plateforme de trading MetaTrader 5 dispose d'une couverture.

Pourquoi puis-je effectuer un débogage dans MT4 et observer les changements de variables étape par étape ? Qu'est-ce que je fais de mal ?
 
Artyom Trishkin:
Pourquoi ne puis-je pas déboguer dans MT4, et tranquillement, étape par étape, déboguer et regarder les variables changer ? Qu'est-ce que je fais de mal ?
QU'EST-CE QUE VOUS FAITES DE MAL : lire très rapidement ou sauter délibérément du texte.
 
Cher !!!!

Question de fond :

Pourquoi la fonctionPrint() dans le gestionnaireOnInit() ne fonctionne-t-ellepas comme d'habitude ? Et en général, qu'en est-il des autres fonctions personnalisées dans init() en mode optimisation ?

 
Leo59:
Cher !!!!

Question de fond :

Pourquoi la fonctionPrint() dans le gestionnaireOnInit() ne fonctionne-t-ellepas comme d'habitude ? Et en général, qu'en est-il des autres fonctions définies par l'utilisateur dans init() en mode optimisation ?

Tout est expliqué ci-dessus. Cela a fonctionné et fonctionne. Je vous ai montré un exemple.

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

Questions des débutants

Vladimir Karputov, 2016.11.23 12:07

Voici le code de OnInit() de EA :

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


Je mets ensuite un point d'arrêt (étape 1) et je commence à tester l'historique (étape 2) :

OnInit()

Et dans le testeur j'obtiens le résultat :

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00

 
Vladimir Karputov:

Ce qui précède a déjà été expliqué. Ça a marché et ça marche. Et je vous ai donné un exemple.


Vladimir, dans votre exemple avec le point d'arrêt et l'exécution du test depuis MetaEditor, et non depuis le testeur dans le terminal n'est pas standard.

Laissez-moi me répéter :

1. Pourquoi la fonctionPrint() dans le handlerOnInit() ne fonctionne pas comme d'habitude ?

2. Comment les autres fonctions utilisateur de init() fonctionnent-elles en mode optimisation ?

 
Leo59:
Vladimir, dans votre exemple avec le point d'arrêt et le début du test depuis MetaEditor, et non depuis le testeur dans le terminal n'est pas standard.

Encore une fois :

1. Pourquoi la fonctionPrint() dans le gestionnaireOnInit() ne fonctionne-t-elle pas comme d'habitude ?

2. Comment les autres fonctions utilisateur de init() fonctionnent-elles en mode optimisation ?

J'ai l'impression que vous n'avez jamais allumé le terminal.

Voici le code de la fonction OnInit() de l'Expert Advisor :

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }

Pas à pas. Première étape - démarrer le testeur depuis le terminal (un seul passage), en testant sur l'historique, avec visualisation :

Étape 1

Dans le testeur de stratégie, nous obtenons les résultats suivants :

Étape 2