Discussion de l'article "L’algorithme de génération de ticks dans le testeur de stratégie du terminal MetaTrader 5" - page 20

 
Plus tard, j'afficherai les ticks de Dukascopy, alpari, GKFX sous une forme visuelle.
 

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

Version bêta de l'IDE MetaTrader 4 incluant un nouveau compilateur et éditeur MQL4

Urain, 2013.09.12 13:18

Vous croyez naïvement qu'en tradant sur des TF plus élevés vous échappez à la malédiction de la génération incorrecte de tick, ce n'est pas vrai. Le franchissement à proximité d'un certain niveau ne dépend pas de la TF. Cela s'applique à toutes les échelles de temps. Et sur W1, la clôture croise le même niveau que sur M1.

Voici un exemple :


Les sections horizontales sont les meilleurs points pour ouvrir/fermer (en termes d'exécution), le prix est stable, il y a suffisamment de volume sur le marché pour que le marché s'améliore progressivement (c'est pourquoi le prix est stable), le risque d'obtenir des requotes est minime.

Mais le testeur génère cette section comme un peigne de ticks (haut-bas), donc dans la vraie vie vous ouvrirez sur n'importe quel TF avec assez de confiance (s'il y a un signal, par exemple la clôture a franchi la ligne de l'indicateur), mais dans le testeur sur ces sections vous obtiendrez beaucoup de faux positifs et paierez 8 spreads, et ensuite après 100 ticks supplémentaires vous paierez encore 8 autres spreads. C'est ainsi que la génération de faux ticks tuera un TS normal, et tous les déchets resteront, et l'optimiseur devra choisir ce qu'il vous donnera comme singe gagnant.

Soit dit en passant, il existe de nombreux sites de ce type dans la vie réelle.

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

Version bêta de l'IDE MetaTrader 4, incluant le nouveau compilateur et éditeur MQL4.

Urain, 2013.09.12 14:13

Il y a des ticks. Dans la vie réelle, les ticks sont générés par le changement d'état de la pile.

C'est-à-dire qu'il y a quatre types de ticks : bid changed, ask changed, both bid and ask changed, et enfin il n'y a pas eu de changement dans les prix mais le volume dans le verre a changé.

C'est seulement le quatrième type qui donne une ligne droite, et il est généré de manière inadéquate par le testeur, tout comme les changements dans la demande.


Pour le dernier message : ...

C'est ainsi que la génération de faux tics tuera un TS normal, et tous les déchets resteront, et l'optimiseur devra choisir parmi eux ce qu'il vous donnera en tant que singe gagnant.

Comment les singes prennent-ils de l'avance ? Dans la vie réelle, un saut brutal, qui ne s'ouvrira pas, et dans le testeur, une hausse régulière des prix qui n'existait pas, sur une telle hausse, les singes testeurs affichent un profit, bien qu'ils perdent dans la vie réelle.


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

Version bêta de l'IDE MetaTrader 4, incluant le nouveau compilateur et éditeur MQL4.

Urain, 2013.09.12 14:21

Je ne demande pas d'exemple, quand on écrit un programme, on réfléchit aux variantes possibles.

Maintenant la question est l'adéquation de la modélisation dans des situations précises. J'ai donné un lien vers un exemple, mais la situation peut très bien se produire sur n'importe quel instrument chez n'importe quel courtier.

ZY sur 4 situations conduisant à la génération d'un tick, 2 d'entre elles sont traitées de manière inadéquate.

Parmi les deux restantes, la situation de changement des deux prix (bid et ask) n'est pas toujours traitée correctement.

Par exemple, la situation de changement brutal des prix entraîne l'apparition de faux prix.

En résumé, une seule situation - les changements d'offre - est toujours traitée correctement.

ntchk




 

L'Expert Advisor a été légèrement modifié pour enregistrer les ticks du testeur à partir de l'article.

//+------------------------------------------------------------------+
//|Write_Ticks_mod.mq5 |
//| Copyright Copyright 2010, MetaQuotes Software Corp.
//| https ://www.mql5.com
//+------------------------------------------------------------------+

input datetime start = D'2013.09.06 14:29:00';
input datetime end   = D'2013.09.06 14:31:00';

//+------------------------------------------------------------------+
//| Fonction de tic-tac expert|
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   datetime time=TimeCurrent();
//---
   SymbolInfoTick(Symbol(),tick);
   //Imprimer(time,tick.bid) ;
   Print(time,", ",tick.bid,", ",tick.ask); // demande ajoutée
//---
   if(time>end) ExpertRemove();
//---
  }


http://www.gkfx.ru/trade_specs/tick_history.html

http://www.dukascopy.com/swiss/russian/marketwatch/historical/

https://www.alpari.ru/ru/login/ (tiques dans mon armoire personnelle), http://ticks.alpari.org/


Tous les fichiers + xlsx dans le trailer

 

Свеча в 14:30 (время в MetaTrader 5) объёмом в 39 тиков, в альпари она равна 86 на ECN и 136 тиков на стандарт,

mais ce n'est absolument pas important (nombre de ticks), car le principe de génération des ticks sera le même, simplement les ticks seront plus denses.


Dans le testeur MetaTrader 5, vous pouvez voir que le prix sur cette bougie monte de façon monotone, régulière et sans à-coups pendant 36 secondes jusqu'au maximum, puis il y a un petit recul.

Et sur les futures (ticks boursiers), vous pouvez voir que le prix a bondi brusquement, en une fraction de seconde, et qu'il a ensuite repris son cours normal.


Le principe est le même pour d'autres nouvelles/statistiques avec des sauts brusques de cotations.

https://www.mql5.com/ru/forum/1031/page19#comment_597854


La différence entre les ticks réels du FOREX et les ticks des contrats à terme est assez faible parce qu'il y a un arbitrage entre les deux et qu'il y a un filtrage et une agrégation des ticks sur le FOREX.

+ Lors de transactions réelles, le délai d'exécution des ordres est différent, car chez certains courtiers en contrats à terme, tous les ordres sont stockés sur la bourse et sont exécutés en quelques microsecondes, contrairement à ce qui se passe sur le FOREX.

https://www.mql5.com/ru/forum/10454/page88#comment_584876


C'est également la raison pour laquelle le délai arbitraire (option dans le testeur) n'est pas pertinent, car le temps exact (millisecondes, secondes) de la formation des hauts ou des bas ou des pullbacks dans le chandelier M1 n'est pas pris en compte lors de la génération des ticks du testeur.

Ou bien ce délai arbitraire devrait être réglé manuellement à plus d'une minute, mais ce n'est pas possible (là encore, il y aura une diminution de la précision dans d'autres cas).

Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5"
Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5"
  • www.mql5.com
Обсуждение статьи "Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5".
 
Pourriez-vous nous donner un exemple de code sur l'algorithme de génération de ticks . Je suis très curieux de cet algorithme et comment calculer le temps correspondant à chaque Tick généré par l'Algorithme de Génération de Ticks ? Merci !!!
 
Salut les gars, je pense que j'ai besoin d'aide.

J'ai un indicateur pour le micro scalping. Il donne de très bons résultats sur le Tester M1 time frame - Every tick
Quand il passe en live les résultats sont mauvais !

Après m'être tapé la tête contre le mur pendant plusieurs jours, j'en suis arrivé à la conclusion que la différence est due à cet"algorithme de génération de ticks".

Des suggestions ?
Par exemple, pourrais-je filtrer les données en direct ? si oui, comment ?

merci pour votre aide.

ugo
 
ugo:
Salut les gars, je pense que j'ai besoin d'aide.

J'ai un indicateur pour le micro scalping. Il donne de très bons résultats sur le Tester M1 time frame - Every tick
Quand il passe en live les résultats sont mauvais !

Après m'être tapé la tête contre le mur pendant plusieurs jours, j'en suis arrivé à la conclusion que la différence est due à cet"algorithme de génération de ticks".

Des suggestions ?
Par exemple, pourrais-je filtrer les données en direct ? si oui, comment ?

merci pour votre aide.

ugo
Les Scalper (qui s'appuient sur des données de ticks) ne peuvent probablement pas être testés avec le Strategy Tester.
 
angevoyageur:
Les scalpeurs (qui s'appuient sur des données de tic-tac) ne peuvent probablement pas être testés avec le testeur de stratégie.

Si vous n'utilisez pas d'indicateurs supplémentaires, vous pouvez récupérer les ticks générés automatiquement à partir des barres d'historique sauvegardées, les jeter et insérer les ticks pour la même minute à partir d'un flux de ticks sauvegardé précédemment.

Un flux de ticks binaire sauvegardé sur disque prend environ 50 MBytes pour une devise et une semaine. Je pense donc que seules de petites périodes peuvent être testées (si vous devez sauvegarder vos propres données de ticks et que vous ne pouvez pas obtenir de données de ticks à partir d'autres sources).

Mais cela peut être suffisant pour vérifier vos algorithmes.

Bonne chance, ugo58

 
ugo58:

Si vous n'utilisez pas d'indicateurs supplémentaires, vous pouvez récupérer les ticks générés automatiquement à partir des barres d'historique sauvegardées, les jeter et insérer les ticks pour la même minute à partir d'un flux de ticks sauvegardé précédemment.

Un flux de ticks binaires sauvegardé sur disque prend environ 50 MBytes pour une devise et une semaine. Je pense donc que seules de petites périodes peuvent être testées (si vous devez sauvegarder vos propres données de ticks et que vous ne pouvez pas obtenir de données de ticks à partir d'autres sources).

Mais cela peut être suffisant pour vérifier vos algorithmes.

Bonne chance, ugo58

Bonjour, merci à tous !

Je ne suis pas sûr de comprendre : " ... insérer les ticks pour la même minute ". Voulez-vous dire qu'il faut voir manuellement quelles étaient les valeurs réelles des ticks aux mêmes heures d'ouverture et de fermeture ou qu'il y a un moyen de lancer le Strategy Tester à partir d'un historique sauvegardé sur disque ? J'ai compris d'après angevoyageur que ce n'est pas possible.

ugo

 

En effet, le testeur de stratégie MQL5 ne permet pas l'utilisation d'un historique différent des prix fournis par le courtier. Mais si vous programmez votre propre EA, vous pouvez gérer cela tant que vous n'avez pas besoin d'indicateurs préfabriqués.

Avec le nouveau MQL4, d'après ce que j'ai compris, vous pouvez écrire un code identique à celui de MQL5. Si vous tenez compte de la manière différente de gérer les ordres, vous pouvez tester votre EA avec un historique fourni par vos soins.

ugo58