Questions des débutants MQL5 MT5 MetaTrader 5 - page 674
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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) :
et dans le testeur j'obtiens le résultat :
Vladimir Karputov:
Ensuite, je fixe un point d'arrêt (étape 1) et j'exécute un test d'historique (étape 2) :
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 ?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.
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 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 ?
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 ?
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) :
Et dans le testeur j'obtiens le résultat :
Ce qui précède a déjà été expliqué. Ça a marché et ça marche. Et je vous ai donné un exemple.
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 ?
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 :
Dans le testeur de stratégie, nous obtenons les résultats suivants :