3. dans OnDeinit j'insère ceci du 2ème script à partir d'ici : https://www.mql5.com/fr/code/27611 :
uchar Bytes2[];
if (MTTESTER::GetLastTstCache(Bytes2) != -1) // S'il était possible de lire le dernier enregistrement de cache d'une seule exécution
{
const SINGLETESTERCACHE SingleTesterCache(Bytes2); // L'introduire dans l'objet approprié.
SingleTesterCache.SaveSet(NULL, true, "Created by " + __FILE__); // Sauvegarder le fichier set avec les détails.double Balance[];
double Equity[];
Print(SingleTesterCache.Header.ToString()); // Sortie de l'en-tête d'une seule passe.Print(SingleTesterCache.Summary.ToString()); // Statistica.Print(SingleTesterCache.Inputs); // Paramètres d'entrée.
3.2 J'ai essayé la même chose "en quelque sorte" sous cette forme
Je préfère avoir les fichiers prêts à l'emploi. Et je ne comprends pas ce que vous avez besoin d'obtenir.
Oui, je voulais obtenir les statistiques de la dernière exécution unique et les écrire dans un fichier, par exemple, comme vous l'avez écrit ici dans le sujet multitester. https://www.mql5.com/ru/forum/318305/page23#comment_19934192.
Pour ce faire, il faut insérer du code dans OnDeinit EA partout.
En fait, ce ne sont même pas toutes les statistiques qui sont nécessaires, mais quelques paramètres. Par exemple, MQLInfoString(MQL_PROGRAM_NAME),TesterStatistics(STAT_SHARPE_RATIO).
Oui, je voulais extraire les statistiques de la dernière exécution unique et les écrire dans un fichier, par exemple, comme vous l'avez écrit ici dans le sujet sur le multitester. https://www.mql5.com/ru/forum/318305/page23#comment_19934192
En fait, ce ne sont même pas toutes les statistiques qui sont nécessaires, mais quelques paramètres. Par exemple, MQLInfoString(MQL_PROGRAM_NAME),TesterStatistics(STAT_SHARPE_RATIO).
Vous pouvez probablement essayer d'exécuter des exemples à partir de la livraison ou des discussions.
Vous pouvez essayer d'exécuter les exemples de la livraison ou des discussions.
Je n'ai pas encore trouvé cette fonctionnalité ou quelque chose de similaire pour enregistrer les statistiques de passage dans un fichier csv. Hmm, même dans les bibliothèques, je n'ai pas trouvé de fonctions appropriées. Je vais en chercher d'autres.
Je vois un tel bloc, mais je n'ai pas compris comment appeler les informations nécessaires à partir de ce bloc
Chaque fois que je regarde mon code comme s'il s'agissait de celui de quelqu'un d'autre, je ne m'en souviens pas du tout.
C'est pourquoi je ne peux pas vous le dire.
Je vois, plus on étudie, plus on comprend. C'est juste que, d'après ce que j'ai compris, toutes les fonctionnalités ne sont peut-être pas incluses dans la version actuelle de la bibliothèque, c'est-à-dire qu'il manque peut-être quelque chose pour remplir la tâche. L'essentiel est de comprendre si c'est possible ou non.)
2 problème.
Print(SingleTesterCache.Summary.ToString()) commande ;
Je l'ai testé avec d'autres Expert Advisors etc. et il donne des statistiques erronées.
variante 1
variante 2
2 problème.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Erreurs, bugs, questions
Renat Fatkhullin, 2021.01.01 00:14
Je suppose que cela ne fonctionne pas à cause d'un transfert de code incorrect du script vers l'Expert Advisor.
Je vous enverrai un exemple.
Procédure.
1. on prend n'importe quel Expert Advisor - j'ai testé à plusieurs reprises sur le Movin' Averag standard.
2. Je place les inclusions en haut :
3. dans OnDeinit j'insère ceci du 2ème script à partir d'ici : https://www.mql5.com/fr/code/27611 :
3.2 J'ai essayé la même chose "en quelque sorte" sous cette forme
const SINGLETESTERCACHE SingleTesterCache; // Загоняем ее в соответствующий объект. double Balance[]; double Equity[]; Print(SingleTesterCache.Header.ToString()); // Вывели заголовок одиночного прохода. Print(SingleTesterCache.Summary.ToString()); // Статистику. Print(SingleTesterCache.Summary.ToString()); // Статистику. Print(SingleTesterCache.Inputs); // Входные параметры.Je suppose que cela ne fonctionne pas à cause d'un transfert de code incorrect du script vers l'Expert Advisor.
Je vais envoyer un exemple maintenant.
Il serait préférable d'avoir des fichiers prêts à l'emploi. Je ne comprends pas ce que vous voulez obtenir.
Je préfère avoir les fichiers prêts à l'emploi. Et je ne comprends pas ce que vous avez besoin d'obtenir.
Oui, je voulais obtenir les statistiques de la dernière exécution unique et les écrire dans un fichier, par exemple, comme vous l'avez écrit ici dans le sujet multitester. https://www.mql5.com/ru/forum/318305/page23#comment_19934192.
Pour ce faire, il faut insérer du code dans OnDeinit EA partout.
En fait, ce ne sont même pas toutes les statistiques qui sont nécessaires, mais quelques paramètres. Par exemple, MQLInfoString(MQL_PROGRAM_NAME),TesterStatistics(STAT_SHARPE_RATIO).
Oui, je voulais extraire les statistiques de la dernière exécution unique et les écrire dans un fichier, par exemple, comme vous l'avez écrit ici dans le sujet sur le multitester. https://www.mql5.com/ru/forum/318305/page23#comment_19934192
Pour éviter d'insérer du code dans OnDeinit EA partout.
En fait, ce ne sont même pas toutes les statistiques qui sont nécessaires, mais quelques paramètres. Par exemple, MQLInfoString(MQL_PROGRAM_NAME),TesterStatistics(STAT_SHARPE_RATIO).
Vous pouvez probablement essayer d'exécuter des exemples à partir de la livraison ou des discussions.
Vous pouvez essayer d'exécuter les exemples de la livraison ou des discussions.
Je n'ai pas encore trouvé cette fonctionnalité ou quelque chose de similaire pour enregistrer les statistiques de passage dans un fichier csv. Hmm, même dans les bibliothèques, je n'ai pas trouvé de fonctions appropriées. Je vais en chercher d'autres.
Je vois un tel bloc, mais je n'ai pas compris comment appeler les informations nécessaires à partir de ce bloc
string ToString( void ) const
{
return(this.Header.expert_path[] + "\n ; " +
this.Header.symbol[] + "\n ; " +
::TimeToString(this.Header.date_from, TIME_DATE) + " - " + ::TimeToString(this.Header.date_to, TIME_DATE) + "\n ; " +
::DoubleToString(this.Summary.TesterStatistics(STAT_PROFIT), 0) + ", " + " +
::DoubleToString(this.Summary.TesterStatistics(STAT_TRADES), 0) + ", " + ::DoubleToString(this.Summary.TesterStatistics(STAT_TRADES), 0) + ", " +
::DoubleToString(this.Summary.TesterStatistics(STAT_PROFIT_FACTOR), 2) + ", " + ::DoubleToString(this.Summary.TesterStatistics(STAT_PROFIT_FACTOR), 2) + ", " +
::DoubleToString(this.Summary.TesterStatistics(STAT_EXPECTED_PAYOFF), 2) + ", -" + ::DoubleToString(this.Summary.TesterStatistics(STAT_EXPECTED_PAYOFF), 2) + ", -" +
::DoubleToString(this.Summary.TesterStatistics(STAT_EQUITY_DD), 2)) ;
}
Je vois un tel bloc, mais je ne comprends pas comment appeler les informations requises à partir de celui-ci
Chaque fois que je regarde mon code comme s'il s'agissait de celui de quelqu'un d'autre, je ne m'en souviens pas du tout.
C'est pourquoi je ne peux pas vous donner d'indice.
Chaque fois que je regarde mon code comme s'il s'agissait de celui de quelqu'un d'autre, je ne m'en souviens pas du tout.
C'est pourquoi je ne peux pas vous le dire.
Je vois, plus on étudie, plus on comprend. C'est juste que, d'après ce que j'ai compris, toutes les fonctionnalités ne sont peut-être pas incluses dans la version actuelle de la bibliothèque, c'est-à-dire qu'il manque peut-être quelque chose pour remplir la tâche. L'essentiel est de comprendre si c'est possible ou non.)
L'essentiel est de comprendre si c'est possible ou non.)
https://www.mql5.com/fr/code/viewcode/27611/229701/exptradesummarysingle.mqh