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

 

Qui sait comment utiliser SB pour créer des EA OOP, veuillez créer un EA sous forme de portefeuille de 20 TS identiques. Et partager les résultats de la performance d'un tel portefeuille de TS dans le Testeur.


Par exemple, pour moi, un seul TS (sur les ordres en attente) prend une seconde pour passer. Un portefeuille de 20 transactions de ce type prend > 30 minutes. En d'autres termes, le ralentissement n'est pas 20 fois, mais 2000 fois - deux ordres de grandeur de plus qu'il ne devrait l'être.

Il s'avère que le testeur n'est pas adapté au trading de portefeuille.

 
fxsaber:

Pour vous donner un exemple, il me faut une seconde pour passer une transaction (sur un ordre en attente). Un portefeuille de 20 de ces TSs > 30 minutes. En d'autres termes, le ralentissement n'est pas de 20 fois, mais de 2000 fois, soit deux ordres de grandeur de plus que ce qu'il devrait être.

Il s'avère que le testeur n'est pas adapté au trading de portefeuille.

Chaque TS sur chaque tick passe en cycles par tous les ordres en cherchant le sien ?

 
Andrey Khatimlianskii:

Chaque CT à chaque tick exécute une boucle à travers tous les ordres en recherchant le sien ?

Oui. Mais ce n'est pas ce qui cause le ralentissement. Par exemple, si nous exécutons dans Optimizer, la vitesse augmente de 10 fois exactement.

 
fxsaber:

Oui. Mais ce n'est pas ce qui cause le ralentissement. Par exemple, si vous l'exécutez dans l'Optimiseur, la vitesse augmente d'un facteur 10 exactement.

Alors qu'est-ce qui ralentit ? Les parties internes du testeur (vérification du déclenchement des ordres, de la marge, etc.) ?

J'ai fait une seule liste de commandes et un accès à celle-ci à partir de tous les CT, cela a sensiblement accéléré le travail.

 
Andrey Khatimlianskii:

Qu'est-ce qui ralentit les choses alors ? Les internes du testeur (vérification du déclenchement des ordres, de la marge, etc.) ?

L'optimiseur diffère d'un seul en ce sens qu'il n'y a pas de journal pour chaque pet. Il est fort probable que la journalisation crée la plupart des décalages.

Cela permettrait d'accélérer considérablement le travail.

Dans le terminal, un EA du panier de 20 EA fonctionne parfaitement.

 
fxsaber:

Qui sait comment utiliser SB pour créer des EA OOP, veuillez créer un EA sous forme de portefeuille de 20 TS identiques. Et partager les résultats de la performance d'un tel portefeuille de TS dans le Testeur.


Par exemple, pour moi, un seul TS (sur les ordres en attente) prend une seconde pour passer. Un portefeuille de 20 transactions de ce type prend > 30 minutes. En d'autres termes, le ralentissement n'est pas 20 fois, mais 2000 fois - deux ordres de grandeur de plus qu'il ne devrait l'être.

Il s'avère que le testeur n'est pas adapté au trading de portefeuille.

Je ne peux pas encore le vérifier, les ordinateurs sont occupés, mais le temps de tester le portefeuille TS augmente définitivement.

J'ai un "découpage" des CTs par temps d'opération de l'EA, les temps d'opération de l'EA se chevauchent rarement - et la tâche est d'évaluer un portefeuille déjà optimisé dans les CTs du testeur, si le portefeuille s'effondre - le test est terminé, en général, il est possible de travailler dans le testeur.



il y a une suspicion que les ordres en attente augmentent le temps de test et précisément - le calcul de la marge est une opération très "coûteuse", mon profileur met la plupart du temps sur l'appel OrderCalcMargin() - il est fort probable que la même vérification est faite par le testeur pour les ordres en attente


vous devez tester avec un EA de test pour trouver la vérité

 
Igor Makanu:

il y a un soupçon que les ordres en attente augmentent le temps de test et c'est certain - le calcul de la marge est une opération très "coûteuse", mon profiler met le plus de temps à appelerOrderCalcMargin()- il est très probable qu'une vérification similaire est effectuée par le testeur pour les ordres en attente

Je n'utilise cette fonction nulle part. Et je cours en mode pips, où le testeur lui-même ignore le calcul de la marge.

 

qu'est-ce que ça peut être, où creuser ?

test sur tous les symboles dans l'aperçu du marché :

tous les agents ont terminé et la minuterie continue...

le plus étrange est qu'avant le début du test, il y en avait 31 dans la vue d'ensemble, ainsi que le point d'arrêt. mais 8 autres se sont ouverts tout seuls, plutôt étranges, je n'ai jamais ouvert de trade sur eux, à partir d'exotiques.

 
Igor Zakharov:

Le plus étrange, c'est qu'avant le début du test, il y en avait 31 dans la revue, ainsi que le point de rupture. Mais 8 autres se sont ouverts tout seuls, assez étrange, je n'ai jamais ouvert d'offres sur eux, à partir d'exotiques.

après le redémarrage de l'ordinateur, le nombre d'ouvertures est de 42. elles apparaissent après avoir appuyé sur "start". le test arrive à la fin. les mêmes transactions sont ajoutées (à première vue, je ne les ai pas toutes vérifiées). le journal est le même que d'habitude - connecté, synchronisé...

 
Igor Zakharov:

Après le redémarrage de l'ordinateur, ils deviennent 42. ils apparaissent après avoir appuyé sur "start". le test arrive à la fin. les mêmes sont ajoutés (à première vue, je ne les ai pas tous vérifiés). dans le log tout est comme d'habitude - connecté, synchronisé...

Sont-ils utilisés pour recalculer le profit ou la marge dans la devise du dépôt (le testeur les ajoute automatiquement à l'ouverture de la position) ?

Raison: