Questions pour les débutants en MQL5. Les professionnels ne passent pas leur chemin. - page 2

 
Figar0:

Le modèle "all ticks" a seulement 14 fois plus de ticks que le modèle "open price" sur H4. Soit je suis fou, soit l'un des deux... Il n'y a donc pas de modèle de "prix ouvert" ?

Jetez un coup d'œil à "Les bases du test dans MetaTrader 5" :

Prix ouverts uniquement

Dans le mode de test "Open prices only", la génération des ticks est effectuée par le même algorithme que pour le mode "1 minute OHLC". La seule différence est que la fonction OnTick() dans ce mode s'exécute uniquement sur les prix Open de la période testée.

Par exemple, un Expert Advisor est testé sur EURUSD H1 en mode "Prix ouverts seulement". Cela signifie que le nombre total de ticks (points de contrôle) sera le même que dans le mode "OHLC 1 minute", mais que le gestionnaire OnTick() n'est appelé qu'à l'ouverture de la barre d' une heure. Sur d'autres ticks ("cachés" par un Expert Advisor), les vérifications nécessaires pour un test correct ont lieu :

  • le calcul des exigences de marge ;
  • le déclenchement du Stop Loss et du Take Profit ;
  • le déclenchement des ordres en attente ;
  • Suppression des commandes en cours dont le délai est expiré.

S'il n'y a pas de positions ouvertes ou d'ordres en attente, il n'est pas nécessaire de procéder à ces vérifications de ticks cachés, et l'augmentation de la vitesse peut être significative. Le mode "Prix d'ouverture uniquement" est idéal pour tester les stratégies qui n'effectuent des transactions qu'à l'ouverture des barres et n'utilisent pas les ordres en attente, ainsi que les ordres StopLoss, TakeProfit. Toute la précision nécessaire des tests est conservée pour la classe de ces stratégies.

 
Rosh:

Jetez un coup d'œil à cet article Basic Testing in MetaTrader 5:

Le pourquoi est clair, le comment ne l'est pas ? Comme je l'ai dit tout de suite - triste) le testeur MT5 dans mon exemple est 70 fois plus lent que le testeur MT4. Où dans mon MT4 était un jour ici sera 10 semaines ? C'est cool, j'ai décidé d'accélérer) C'est bien que j'ai commencé petit et que je n'ai pas converti toutes les bonnes choses vers MT5 pour les tester)

Pardonnez mon sarcasme, je comprends que le testeur MT5 présente de nombreux avantages par rapport à MT4, mais la vitesse l'emporte.

Peut-être devrions-nous introduire un modèle similaire aux "prix d'ouverture" de MT4 ? Qu'il soit imprécis, qu'il apparaisse en rouge et en gras avec de nombreux avertissements, mais qu'il soit plus immédiat que dans MT4. La précision de la génération des séquences de test dans MT5, par exemple, est absolument inutile pour les Expert Advisors fonctionnant sur une ouverture de barre sans TP et SL.

 
Figar0:

Le pourquoi est clair, le comment ne l'est pas ? Comme je l'ai dit tout de suite - triste) le testeur MT5 dans mon exemple est 70 fois plus lent que le testeur MT4. Où dans mon MT4 était un jour ici sera 10 semaines ? C'est cool, j'ai décidé d'accélérer) C'est bien que j'ai commencé petit et que je n'ai pas converti toutes les bonnes choses vers MT5 pour les tester)

Pardonnez mon sarcasme, je comprends que le testeur MT5 présente de nombreux avantages par rapport à MT4, mais la vitesse l'emporte.

Peut-être devrions-nous introduire un modèle similaire aux"prix d'ouverture" de MT4 ? Qu'il soit imprécis, qu'il apparaisse en rouge et en gras avec de nombreux avertissements, mais qu'il soit plus immédiat que dans MT4. La précision de la génération des séquences de test dans MT5, par exemple, est absolument inutile pour les Expert Advisors fonctionnant sur une ouverture de barre sans TP et SL.

Si vous voulez des prix d'ouverture rapides, il suffit d'écrire un filtre dans le code pour qu'il ne soit pas calculé à condition qu'il n'y ait pas de nouvelle barre, la génération des ticks elle-même prend un temps minimum, plus précisément un historique de 3 ans sur n'importe quel TF (à prix ouvert) prend 7-15 secondes.
 
Urain:
Si vous voulez être rapide par les prix ouverts, il suffit d'écrire un filtre dans le code pour qu'il n'y ait pas de calcul sur la condition jusqu'à ce qu'une nouvelle barre apparaisse, la génération des ticks elle-même prend un temps minimum, spécifiquement l'historique de 3 ans sur n'importe quel TF (par les prix ouverts) prend 7-15 secondes.
Quel type de filtre ?) J'ai une vérification pour une nouvelle barre au début de Ontick(). Mais même avec ce filtre, mon optimisation d'EAs comparables dans MT5 est 70 !!! fois plus lente que dans MT4, et ce n'est pas une partie de plaisir... Peut-être que j'ai fait une erreur dans ce morceau de code (nouvelle vérification de la barre), s'il vous plaît regardez la page de code plus tôt. Ou peut-être que c'est juste moi ? Je devrais peut-être essayer de réinstaller mt5 par exemple ?
 
Figar0:
Quel type de filtre ?) Mon Ontick() commence par une vérification d'une nouvelle barre. Mais même avec ce filtre, l'optimisation des EA comparables dans MT5 est 70 !!! fois plus lente que dans MT4, et ce n'est pas drôle ... J'ai peut-être fait une erreur dans ce morceau de code (vérifier la présence d'une nouvelle barre), veuillez consulter la page de code précédente. Ou peut-être que c'est juste moi ? Je devrais peut-être essayer de réinstaller mt5 par exemple ?

Créer une variable à chaque tick, créer un tableau dynamique à chaque tick, appeler la fonction de copie, deux contrôles.

Pourquoi de telles complications ?

Vous déclarez une variable globale stockant le nombre de barres dans la requête précédente et vérifiez si le nombre de barres a changé, c'est tout.

int prevbars;

int OnInit()
  {
   prevbars=-100;// любое число которое не может вернуть Bars()  
   // ...
   return(0);
  }

void OnTick()
  {
   if(prevbars!=Bars(_Symbol,_Period))
     {
      prevbars=Bars(_Symbol,_Period);
      // ...
     }
  }

Si vous avez besoin d'une vérification supplémentaire, placez cette vérification à l'intérieur de la zone protégée.

 
Urain:

Créer une variable à chaque tick, créer un tableau dynamique à chaque tick, appeler la fonction de copie, deux contrôles.

Pourquoi de telles complications ?

Déclarez globalement une variable stockant le nombre de barres de la requête précédente, et vérifiez si le nombre de barres a changé, c'est tout.

Si vous voulez vérifier si les données sont chargées, placez ce contrôle à l'intérieur de la zone protégée.

Merci. Mais pensez-vous vraiment que cela puisse changer fondamentalement la situation ?) J'ai vérifié, donc des centimes, peut-être juste dans la marge d'erreur... Il s'agit de l'énorme différence dans le volume des ticks générés par le modèle "Par les prix d'ouverture" dans MT4 2K et MT 1200K, aucun multicore et cloud n'aidera. Je ne sais même pas si ce modèle a le "droit" d'être appelé par les prix d'ouverture, c'est comme un modèle "1 tick sur 14" à en juger par le ratio. Je ne comprends pas en quoi le modèle "Opening price" de MT4 est coupable. Il y avait une demande certaine pour ce service, pourquoi ne pas le laisser sous sa forme MT4 ?

Je ne sais pas pourquoi et pour qui cette redondance dans les tests est si évidente. Devons-nous utiliser le testeur pour tirer profit de l'histoire ? Je pense que le point principal est que la précision du testeur ne peut pas être transférée à un compte réel.

Au fait, qui sait où cacher ma case à cocher préférée "Ignorer les résultats inutiles" ? Je n'ai pas pu le trouver.... Est-il tombé en désuétude lui aussi ?)

 
Figar0:

Il était vraiment en demande

... est et restera en demande.

Attendons que les fichiers d'historique, au moins les fichiers minute, soient craqués.

 
TheXpert:

... utilise et continuera d'utiliser.

Attendons que les fichiers d'historique, au moins les fichiers minute, soient craqués.

Oui, je comprends, on va trouver une solution, je voulais juste éviter les problèmes... Les développeurs semblent vouloir faire une plateforme utilisable et fonctionnelle => plateforme populaire auprès des traders => plateforme populaire auprès des sociétés de courtage. Mais parfois, je pense qu'ils ne regardent pas les choses de l'autre côté). D'abord, le refus catégorique de la possibilité de définir des spreads (en conséquence, vous ne pouvez pas utiliser le 4 le week-end sans TakeMySpread), et maintenant l'introduction d'un cloud innovant, des agents pour accélérer le travail et en conséquence le ralentissement par 70 fois... Je ne comprends pas.
 
Les développeurs doivent ajouter une autre option de sélection. Il s'agit de l'ancienne option" Prix d'ouverture". Il est suffisant pour de nombreuses idées. J'ai obtenu des résultats identiques dans tous les modes dans MT4. Le nuage deviendra alors un super nuage s'il est testé dans l'ancienne variante)).
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
joo:

J'ajouterais le même mode "par prix d'ouverture" mais avec une option pour sélectionner une sous-trame temporelle. Disons que vous avez choisi la période de test H1, cela signifie que vous pouvez sélectionner les modes de mouvement des prix sur M1, M2, M5, M10 ...... М30. Il sera alors très souple de choisir entre "vitesse et précision" (s'il ne s'agit pas de pipsers, la plupart préféreront la "vitesse").

C'est un super ajout ! Aussi les barres rangées dans le testeur... Mais c'est une autre histoire.))