Erreurs, bugs, questions - page 1943

 
Anton Ohmat:

Un problème courant. Lorsque 1-2 agents raccrochent et ne comptent rien. En conséquence, l'ensemble du test est suspendu, ce qui entraîne une perte de temps et d'argent pour le test.

J'en ai vraiment marre de ce problème. Y a-t-il un moyen de le corriger ? Par exemple, si un agent compte moins vite que 200-300 autres agents, il n'attend pas ou l'exclut complètement. Les tests se plantent après 500-600 passages.

En guise de solution, éteignez puis rallumez manuellement et tout fonctionne jusqu'à ce qu'un agent se mette à lambiner, puis tout recommence.

Essayez de faire OrderSend seulement après queOrderCheck soit réussi. Si ça ne marche pas, allez voir SR.

 

Le conseiller expert est compilé sous 1641, qui a un historique de trading rapide.

Est-il possible pendant l'optimisation d'arriver à l'agent de la build 1596, où l'historique fonctionne TRES lentement, et donc l'optimisation est ralentie plusieurs fois ?

 

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

Bibliothèques : TesterBenchmark

fxsaber, 2017.07.24 14:13

Nous prenons l'EA de la livraison et l'exécutons dans le testeur, obtenant les données de performance suivantes

------
OnTesterInit
i = 0 Pass = 0 OnTester = 2.231 s.: Count = 3387955, 1518581.4 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
i = 1 Pass = 1 OnTester = 2.214 s.: Count = 3387955, 1530241.6 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
iMin = 1 Results[iMin] = 2.214 s.
iMax = 0 Results[iMax] = 2.231 s.
Amount = 2 Mean = 2.223 s. - 79.08%
OnTesterDeinit
------
Interval = 5.621 s., Count = 0, 0.0 unit/sec

Maintenant, exécutons le même EA, mais en utilisant Trade.mqh

------
OnTesterInit
i = 0 Pass = 0 OnTester = 3.330 s.: Count = 3387955, 1017403.9 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
i = 1 Pass = 1 OnTester = 3.475 s.: Count = 3387955, 974951.1 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
iMin = 0 Results[iMin] = 3.330 s.
iMax = 1 Results[iMax] = 3.475 s.
Amount = 2 Mean = 3.402 s. - 89.73%
OnTesterDeinit
------
Interval = 7.584 s., Count = 0, 0.0 unit/sec

Il s'est avéré que Trade SB est 1,5 fois plus lent que MQL5 pur !

J'ai supposé que c'était la raison et j'ai donc fait une petite correction dans Trade.mqh.

//+------------------------------------------------------------------+
//| Access functions PositionSelect(...)                             |
//+------------------------------------------------------------------+
bool CPositionInfo::Select(const string & symbol)
  {
   return(PositionSelect(symbol));
  }

Mais le ralentissement de la variante SB n'a pas disparu.

Où est la raison de la lenteur du SB ?

 

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

Bibliothèques : TesterBenchmark

fxsaber, 2017.07.24 14:24

C'était le mode Optimisation. Et maintenant, CE même EA, mais en mode d'exécution unique

Core 1  2017.07.21 23:59:59   Interval = 5.140 s., Count = 3387955, 659135.2 unit/sec
Core 1  EURUSD,M1: 3387955 ticks, 52608 bars generated. Test passed in 0:00:05.164.

Une seule exécution sur l'agent local est 2,3 fois plus lente que sur ce même agent, mais pendant l'optimisation !


Peut-être s'agit-il de la lenteur du testeur, alors voyons ce que le profilage OnTick montrera (les problèmes d'exécution et les autres environnements de négociation n'affecteront pas le résultat) dans les modes Optimisation et Exécution unique.


Optimisation

------
OnTesterInit
i = 0 Pass = 0 OnTester = 2.910 s.: OnTick Profiler: Count = 3387955, Interval = 0.969 s., 3496753.0 unit/sec , Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
i = 1 Pass = 1 OnTester = 2.862 s.: OnTick Profiler: Count = 3387955, Interval = 0.952 s., 3559797.1 unit/sec , Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1641
iMin = 1 Results[iMin] = 2.862 s.
iMax = 0 Results[iMax] = 2.910 s.
Amount = 2 Mean = 2.886 s. - 78.06%
OnTesterDeinit
------
Interval = 7.394 s., Count = 0, 0.0 unit/sec


Passage unique

Core 1  2017.07.21 23:59:59   Interval = 6.149 s. (Profiler: Count = 3387955, Interval = 4.018 s., 843148.2 unit/sec)
Core 1  EURUSD,M1: 3387955 ticks, 52608 bars generated. Test passed in 0:00:06.162.


L'exécution nette de OnTick lui-même est 4,2 fois plus lente en mode Single Run qu'en mode Optimize. Et ça, c'est sur le même agent local !

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

Bibliothèques : TesterBenchmark

fxsaber, 2017.07.24 14:33

Même situation dans MT4 également. Probablement les freins en 4 en raison de la formation de billes pendant le passage unique.

 

Si vous appliquez un indicateur MT5 à un graphique qui vous permet de sélectionner des couleurs et que vous le recompilez ensuite, les couleurs sont réinitialisées à l'original et les autres paramètres sont conservés.

La raison pour laquelle les couleurs sont réinitialisées est extrêmement gênante, surtout si l'indicateur est MTF et que les couleurs sont liées au TF.

 
Travaillez avec votre code - 99,9% - vous avez un journal plein d'erreurs comme "pas d'argent pour ouvrir une position".

Je me suis assis et j'ai attendu de voir ce que l'agent lent allait me rendre. À la fin, il a renvoyé l'erreur INIT_PARAMETERS_INCORRECT (aucune opération effectuée). Ce qui, dans mon cas, indique que les paramètres d'entrée ne correspondent pas. Donc, avec une probabilité de 99 sur 100, je peux dire que quelqu'un a simplement branché un vieil ordinateur portable sur le système. L'idée n'a plus de sens à cause de cela. Observé dans le nuage MQL5 USA


C'est dans les journaux

Passe génétique MQL5 Cloud USA (0, 206) testée avec l'erreur "paramètres d'entrée incorrects" à 0:00:00.359 (PR 142)

 

Question pour les développeurs (je m'excuse si je vous ennuie)

Je ne comprends pas : mon algorithme génétique prévoit 12 000 passages, mais mes agents n'effectuent en réalité que 9 000 passages. - Qu'advient-il des 3000 autres résultats ?

 
Avant d'appeler quelque chose un "pépin", vous devriez étudier la documentation (Особенности тестирования - Алгоритмический трейдинг, торговые роботы) - lisez toute la section.
Графические объекты при тестировании

Во время тестирования/оптимизации не осуществляется построение графических объектов. Таким образом, при обращении к свойствам созданного объекта во время тестирования/оптимизации эксперт получит нулевые значения.

Данное ограничение не распространяется на тестирование в визуальном режиме.
Alors, comment puis-je voir si le robot a bien placé les stops sur le graphique en dehors de la visualisation ? La visualisation est lente (
 
fxsaber:

Le conseiller expert est compilé sous 1641, qui a un historique de trading rapide.

Est-il possible pendant l'optimisation d'arriver à l'agent de la build 1596, où l'historique fonctionne TRES lentement, et donc l'optimisation est ralentie plusieurs fois ?

Non, les tâches ne sont pas distribuées aux anciens agents dans les cludes.
 
Anton Ohmat:

Question pour les développeurs (je m'excuse si je vous ennuie)

Je ne comprends pas : mon algorithme génétique prévoit 12 000 passages, mais mes agents n'effectuent en réalité que 9 000 passages. - Qu'advient-il des 3000 autres résultats ?

En génétique, 12000 est une estimation approximative du nombre de passages dans l'étape primaire. Le nombre réel est inférieur. Mais parfois plus encore - cela dépend de la tâche.