Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration - page 44

 
traveller00:
Oui, j'ai copié les paramètres et vu quel formulaire il s'attend à voir. Mais il n'est pas très pratique de manipuler de telles valeurs. C'est pourquoi j'ai demandé s'il était possible d'y introduire le support des formats de date, comme dans la source.

La personne modifie-t-elle les fichiers du jeu ?


Si les données de temps sont affichées (set-files, CTRL+C tester, tpl-files et probablement quelque chose d'autre) comme une chaîne de caractères au lieu d'un nombre, toute la commodité de l'analyse de ces données s'effondrera.

Il n'y a maintenant que trois types de données d'entrée : double, long et string. Les deux premiers sont toujours des chiffres. Celui-ci inclut non seulement la date, mais aussi la couleur, l'enum et tout sauf la chaîne de caractères. C'est super pratique !


Créer une entité supplémentaire, rendant ainsi beaucoup de code inutilisable, n'est pas très judicieux. Il y a des commentaires. Voici un exemple d'un ensemble généré automatiquement.

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

Bibliothèques : TesterCache

fxsaber, 2019.11.11 04:45

; saved on 2019.11.13 19:40:01
; Experts\Examples\MACD\MACD Sample LImitTP.ex5
; EURUSD
; 2019.09.01 - 2019.11.13
; 479, 10, Max, 47.92, -253.60
;
InpLots=0.1
InpTakeProfit=200||10||5||500||Y
InpTrailingStop=290||30||10||300||Y
InpMACDOpenLevel=5||5||5||200||Y
InpMACDCloseLevel=180||5||5||200||Y
InpMATrendPeriod=8||1||1||200||Y
;
; Pass = 1838
; initial_deposit = 10000.0
; withdrawal = 0.0
; profit = 479.15
; grossprofit = 479.15
; grossloss = 0.0
; maxprofit = 99.8
; minprofit = 0.0
; conprofitmax = 479.15
; maxconprofit = 479.15
; conlossmax = 0.0
; maxconloss = 0.0
; balance_min = 10000.0
; maxdrawdown = 0.0
; drawdownpercent = 0.0
; reldrawdown = 0.0
; reldrawdownpercent = 0.0
; equity_min = 9997.700000000001
; maxdrawdown_e = 253.6000000000004
; drawdownpercent_e = 2.457388152985982
; reldrawdown_e = 253.6000000000004
; reldrawdownpercnt_e = 2.457388152985982
; expected_payoff = 47.91500000000001
; profit_factor = 1.797693134862316 e+308
; recovery_factor = 1.889392744479493
; sharpe_ratio = 1.069726339729858
; margin_level = 1.797693134862316 e+308
; custom_fitness = 0.0
; deals = 15
; trades = 10
; profittrades = 10
; losstrades = 0
; shorttrades = 6
; longtrades = 4
; winshorttrades = 6
; winlongtrades = 4
; conprofitmax_trades = 10
; maxconprofit_trades = 10
; conlossmax_trades = 0
; maxconloss_trades = 0
; avgconwinners = 10
; avgconloosers = 0
; 
; version = 515
; copyright = Copyright 2000-2019, MetaQuotes Software Corp.
; name = TesterOptCache
; header_size = 2526
; record_size = 328
; expert_name = MACD Sample LImitTP
; expert_path = Experts\Examples\MACD\MACD Sample LImitTP.ex5
; server = MetaQuotes-Beta
; symbol = EURUSD
; (ENUM_TIMEFRAMES)period = PERIOD_M1
; date_from = 2019.09.01 00:00:00
; date_to = 2019.11.13 00:00:00
; date_forward = 1970.01.01 00:00:00
; opt_mode = 1
; ticks_mode = 4
; last_criterion = 0
; msc_min = 501
; msc_max = 2342
; msc_avg = 801
; group = demo (netting)
; trade_currency = USD
; trade_deposit = 10000
; trade_condition = 0
; trade_leverage = 100
; trade_hedging = 1
; trade_currency_digits = 2
; trade_pips = 0
; parameters_size = 28
; parameters_total = 6
; opt_params_size = 40
; opt_params_total = 5
; dwords_cnt = 0
; snapshot_size = 0
; passes_total = 0
; passes_passed = 2510

Je ne sais pas ce qu'il en est pour les autres, mais je trouve pratique que le fichier de l'ensemble contienne toutes les informations. Il est très rapide de savoir ce que c'est, d'où ça vient et combien ça coûte.


Ce n'est pas suffisant ?


ZZY Il faut se rappeler que la date et l'heure sont optimisées, et que vous pouvez définir les paramètres Start, Step et Stop. Où le pas, bien sûr, même dans l'interface graphique est défini en secondes.

 
Je voulais dire copier dans le tampon par CTRL+C pour laisser le numéro tel qu'il était. Mais le collage par CTRL+V devrait être étendu pour comprendre à la fois l'ancien format (essentiellement ulong) et le nouveau format de chaîne. Cela ne devrait pas casser quoi que ce soit, mais cela va l'étendre pour ceux qui veulent spécifier une chaîne de caractères au lieu d'un nombre.
 
traveller00:
Je voulais dire copier dans le tampon par CTRL+C pour laisser le numéro tel qu'il était. Mais pour étendre le collage par CTRL+V pour comprendre à la fois l'ancien format (essentiellement ulong) et le nouveau format de chaîne. Cela ne devrait rien casser, mais cela va l'étendre pour ceux qui veulent spécifier une chaîne de caractères au lieu d'un nombre.

Bonne clarification. Il ne cassera vraiment rien. Vraiment, je ne connais pas de personnes qui utilisent CTRL+V pour régler la date.

 
fxsaber:

Cependant, je ne connais pas de personnes qui utilisent CTRL+V pour définir la date.

Il s'agit plutôt de fixer non pas la date, mais les paramètres en général, y compris l'endroit où se trouve la date. D'abord, pour que ce soit cohérent, puisque mql lui-même conserve le format de la date, et ensuite, pour que ce soit clair, et non pour multiplier les commentaires. Pour mes essais, il génère les paramètres d'entrée, qui doivent être évalués à l'œil, et je peux ensuite les ajouter.

Slava:
Peut-être. Nous le ferons.

Pouvons-nous en même temps supporter l'insertion (via CTRL+V) de paramètres d'entrée pour Expert Advisor ? Pour les tests, il est parfaitement inséré dans les Paramètres. Cependant, lorsqu'il ne s'agit pas de tester mais simplement d'ajouter une EA à un graphique, l'onglet Input Parameters ne semble pas prendre en charge le collage et je dois remplir les mêmes paramètres manuellement. Merci.

 
traveller00:

Peut-on également prendre en charge l'insertion (via CTRL+V) de paramètres d'entrée pour l'EA ? Il est parfaitement inséré pour être testé dans les Paramètres. Cependant, lorsqu'il ne s'agit pas de tester mais simplement d'ajouter une EA à un graphique, l'onglet Input Parameters ne semble pas prendre en charge le collage et je dois remplir les mêmes paramètres manuellement. Merci.

ET CTRL+C.

 

Développeurs, bonjour !

Pour une raison quelconque, cette vérification dans OnTimer ne fonctionne pas toujours dans le testeur de stratégie lors de l'exécution de l'EA (je ne sais pas ce que cela a à voir) :

    if (MQLInfoInteger(MQL_PROFILER) == 0 && MQLInfoInteger(MQL_TESTER) == 0) {
        Print("You can't use this version of EA in trade mode!");
        return;
    }

OnInit semble toujours fonctionner correctement.

PS. En même temps, le commerce ne fonctionne pas toujours. J'ajouterai des logs pour les modes de test afin d'expliquer pourquoi les échanges ne sont pas autorisés. Une sorte de problème de flottaison.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

J'ai été confronté au fait que les objets graphiques du testeur MT5 en mode visualisation ne sont pas rendus comme je le pensais. J'ai simplifié le test Expert Advisor à l'extrême, il doit construire un rectangle par des coordonnées prises sur la base des 50ème et 45ème barres. Le code est dans la pièce jointe, mais toute la logique est dans une seule ligne :

if (!IsNewBar()) return;
RectangleCreate(0, "5BarZone", 0, iTime(NULL,0,50), iHigh(NULL,0,50), iTime(NULL,0,0), iLow(NULL,0,45), clrGreen, STYLE_SOLID, 1, true, true);
ChartRedraw(0);

L'EA doit redessiner un tel canal sur chaque nouvelle barre de la TF actuelle. L'image devrait ressembler à ceci :


En réalité, le rectangle s'étire de manière chaotique en longueur et en largeur et l'image ressemble à ceci :


Le code de l'EA fonctionnelle contient beaucoup plus d'objets et chacun d'entre eux est encore plus déformé, ce qui crée un désordre.

De plus, si nous effectuons un test visuel de l'EA de test à une vitesse réduite, le rendu est presque toujours correct. Cependant, lorsque j'exécuteun conseiller expert de test à la vitessemaximale ou presque maximale, ou que j'exécute un véritable EA avec beaucoup d'objets même à la vitesse minimale, j'obtiens les distorsions décrites ci-dessus.

Veuillez m'indiquer quel est le problème et s'il peut être résolu. J'ai essayé de chercher une réponse mais sans succès.

J'apprécie beaucoup toute aide de quelque nature que ce soit.

Dossiers :
 
Andrey Pogoreltsev:

Développeurs, bonjour !

Pour une raison quelconque, la vérification de OnTimer ne fonctionne pas toujours dans le testeur de stratégie lors de l'exécution de l'EA (je ne sais pas ce que cela a à voir) :

OnInit semble toujours fonctionner correctement.

PS. En même temps, le commerce ne fonctionne pas toujours. J'ajouterai des logs pour les modes de test afin d'expliquer pourquoi les échanges ne sont pas autorisés. Une sorte de problème de flottaison.
Remplacez && par ||.
 
Grigori.S.B:

J'ai été confronté au fait que les objets graphiques du testeur MT5 en mode visualisation ne sont pas dessinés comme je le pensais. J'ai simplifié le test Expert Advisor à l'extrême, il doit construire un rectangle par des coordonnées prises sur la base des 50ème et 45ème barres. Le code est dans la pièce jointe, mais toute la logique est dans une seule ligne :

L'EA doit redessiner un tel canal sur chaque nouvelle barre de la TF actuelle. L'image devrait ressembler à ceci :


En réalité, le rectangle s'étire de manière chaotique en longueur et en largeur et l'image ressemble à ceci :


Le code de l'EA fonctionnelle contient beaucoup plus d'objets et chacun d'entre eux est encore plus déformé, ce qui crée un désordre.

De plus, si nous effectuons un test visuel de l'EA de test à une vitesse réduite, le rendu est presque toujours correct. Lorsque j'exécuteun conseiller expert de test à la vitessemaximale ou à une vitesse presque maximale, ou que j'exécute un véritable conseiller expert avec beaucoup d'objets, même à la vitesse minimale, j'obtiens les distorsions décrites ci-dessus.

Veuillez m'indiquer quel est le problème et s'il peut être résolu. J'ai essayé de chercher une réponse mais sans succès.

J'apprécie beaucoup toute aide de quelque nature que ce soit.

Essayez simplement de changer les coordonnées d'un objet déjà créé.
 
Grigori.S.B:

J'ai été confronté au fait que les objets graphiques dans MT5 tester en mode visualisation ne sont pas rendus comme je l'attendais. J'ai simplifié le test Expert Advisor à l'extrême, il doit construire un rectangle par des coordonnées prises sur la base des 50ème et 45ème barres. Le code est dans la pièce jointe, mais toute la logique est dans une seule ligne :

L'EA doit redessiner un tel canal sur chaque nouvelle barre de la TF actuelle. L'image devrait ressembler à ceci :


En réalité, le rectangle s'étire de manière chaotique en longueur et en largeur et l'image ressemble à ceci :


Le code de l'EA fonctionnelle contient beaucoup plus d'objets et chacun d'entre eux est encore plus déformé, ce qui crée un désordre.

De plus, si nous effectuons un test visuel de l'EA de test à une vitesse réduite, le rendu est presque toujours correct. Cependant, lorsque j'exécute un conseiller expert de test à la vitesse maximale ou presque maximale, ou que j'exécute un véritable EA avec beaucoup d'objets même à la vitesse minimale, j'obtiens les distorsions décrites ci-dessus.

Veuillez m'indiquer quel est le problème et s'il peut être résolu. J'ai essayé de chercher une réponse mais sans succès.

J'apprécie beaucoup toute aide de quelque nature que ce soit.

Vérifiez le code pour les erreurs, le plus probable étantERR_OBJECT_ALREADY_EXISTS.

Vous devez soit supprimer l'objet avant de le recréer soit

Slava:
Essayez simplement de changer les coordonnées d'un objet une fois créé.