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

 
Slava:

Le processus de l'agent local vit 5 minutes après le dernier démarrage (ceci ne s'applique pas aux agents en mode visuel)

Dans votre cas, pour une raison quelconque, l'agent local fonctionnant en mode normal n'a pas réussi à redémarrer en mode visuel.

Essayons de le reproduire dans notre propre environnement.

Il ne joue pas. On dirait que quelque chose a mal tourné
 
Slava:
Ne se reproduit pas. On dirait que quelque chose a mal tourné

Oui, c'est un peu délicat avec les situations de relecture. Aujourd'hui, par exemple, les paramètres d'entrée ont été réinitialisés plusieurs fois. Le visualiseur se bloque lorsqu'on essaie de le fermer. Je ne peux pas le répéter exprès.

 
Slava:

Quelle différence cela fait-il ? Il vit aussi pendant 5 minutes après l'optimisation.

Cliquez avec le bouton gauche de la souris sur le symbole requis dans la fenêtre de l'étude de marché et faites-le glisser vers la fenêtre du testeur.

2019.10.14 13:14:26.068 Tester aucun agent n'est prêt, l'optimisation n'a pas commencé
2019.10.14 19:01:43.867 Testeur RTS-12.19 : le téléchargement préliminaire des tics de l'historique a commencé, il peut prendre un temps assez long
2019.10.14 19:01:43.867 Testeur RTS-12.19 : téléchargement préliminaire des tics de l'historique terminé
2019.10.14 19:01:43.876 Testeur RTS-12.19 : les données de ticks commencent à partir de 2019.08.26 00:00
2019.10.14 19:01:43.876 Core 1 erreur de démarrage de l'agent du testeur


La première ligne est ce qui était écrit avant le caractère de glisser-déposer. Le reste des entrées dans le processus de glisser le symbole sur votre recommandation et essayer de démarrer le test

 
Le testeur de stratégie MetaTrader 5 fait actuellement l'objet d'une profonde refonte par l'équipe MQ. fait l'objet d'une profonde refonte, et non d'une refonte comme vous le dites. celui qui écrit votre texte est aussi un robot ? un robot écrivain ? ce n'est tout simplement pas finalisé.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
KENT3004:
2019.10.14 13:14:26.068 Tester aucun agent n'est prêt, l'optimisation n'a pas commencé
2019.10.14 19:01:43.867 Testeur RTS-12.19 : le téléchargement préliminaire des tics de l'historique a commencé, il peut prendre un temps assez long
2019.10.14 19:01:43.867 Testeur RTS-12.19 : téléchargement préliminaire des tics de l'historique terminé
2019.10.14 19:01:43.876 Testeur RTS-12.19 : les données de ticks commencent à partir de 2019.08.26 00:00
2019.10.14 19:01:43.876 Core 1 erreur de démarrage de l'agent du testeur


La première ligne est ce qui était écrit avant le caractère de glisser-déposer. Le reste des entrées dans le processus de glisser-déposer le symbole sur votre recommandation et d'essayer de démarrer le test.

La première ligne indique que vous n'avez pas d'agents de test en attente.
 
Slava:
La première ligne indique que vous n'avez pas d'agent de test à l'état prêt.

C'est exactement le problème ! Après l'optimisation, il arrive que les agents soient désactivés (Disablet). Parfois un ou deux, mais dans mon cas, les 4 sont désactivés. Nous le démarrons manuellement et après un certain temps, tout se répète. Je comprends comment contourner le problème, mais je ne pense pas que ce soit normal.

La raison pour laquelle les symboles de l'aperçu du marché ne sont pas ajoutés automatiquement n'est pas encore claire.

 
KENT3004:

C'est exactement le problème ! Après l'optimisation, il arrive que les agents soient désactivés (Disablet). Parfois un ou deux, mais dans mon cas, les 4 sont désactivés. Nous le démarrons manuellement et après un certain temps, tout se répète. Je comprends comment contourner le problème, mais je ne pense pas que ce soit normal.

La raison pour laquelle les symboles de l'aperçu du marché ne sont pas ajoutés automatiquement n'est pas encore claire.

De quoi parlons-nous maintenant ? Désactiver les agents ou la possibilité d'utiliser des symboles dans les tests/optimisations ?

 
Dans l'optimisation génétique, j'utilise beaucoup de paramètres. Lorsque le nombre de variantes devient si grand qu'il s'affiche en notation scientifique (6,8768769e+21), l'optimisation après la génération 0 se poursuit avec la moitié des agents (4 sur 8). Aucune mention de cela dans les journaux. L'optimisation elle-même fonctionne bien, mais avec la moitié de la charge, elle est deux fois plus longue.
 
Edgar:
Dans l'optimisation génétique, j'utilise beaucoup de paramètres. Une fois que le nombre de variantes devient aussi grand qu'affiché en notation scientifique (6,8768769e+21), l'optimisation après la génération 0 se poursuit avec la moitié des agents (4 sur 8). Aucune mention de cela dans les journaux. L'optimisation elle-même fonctionne bien, mais avec la moitié de la charge, elle est deux fois plus longue.
Ce problème a déjà été soulevé par moi dans des branches de versions antérieures. Il n'a pas encore été corrigé. J'ai trouvé ma béquille. Je désactive une partie des agents (dans mon cas 3 sur 10) et l'active après 0 itération, puis tout va bien. Parfois, cependant, certains agents s'arrêtent en cours de route, mais rarement, l'algorithme de solution est le même.
 
Si ce sont les formules correctes
double ProfitPlus = 0;  // Профит неотрицательных закрытых позиций.
double ProfitMinus = 0; // Профит отрицательных закрытых позиций.

int AmountPlus = 0;  // Количество неотрицательных закрытых позиций.
int AmountMinus = 0; // Количество отрицательных закрытых позиций.

for (int i = OrdersHistoryTotal() - 1; i >= 0; i--)
  if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL))
  {
    const double Profit = OrderProfit() + OrderCommission() + OrderSwap();
    
    if (Profit >= 0)
    {
      ProfitPlus += Profit;
      AmountPlus++;
    }
    else
    {
      ProfitMinus += Profit;
      AmountMinus++;
    }      
  }

const double PF = ProfitMinus ? -ProfitPlus / ProfitMinus : DBL_MAX; // Профит-фактор.
const double Profit = ProfitPlus + ProfitMinus;                      // Профит


Le Testeur calcule ces chiffres de manière très différente. J'ai des différences frappantes dans les résultats entre ces formules et ce que montre le Testeur (à part le bénéfice).

Je suggère que nous allions au fond des choses. Le hic, c'est de savoir exactement ce que MT5 considère comme une transaction rentable.

Raison: