Aide MetaTrader 5Trading Algorithmique, Robots de TradingTicks Réels et Ticks Générés

Ticks Réels et Ticks Générés

Les ticks sont nécessaires pour le test et l'optimisation des Expert Advisors, car ils utilisent les données des ticks pour opérer. Le test peut être effectué sur les vrais ticks fournis par le courtier ou sur les ticks générés par la stratégie et à partir des données 1 minute.

Ticks Réels #

Le test et l'optimisation sur de vrais ticks sont aussi proches que possible des conditions réelles. Au lieu de ticks générés à partir des données 1 minute, il est possible d'utiliser les ticks réels accumulés par le courtier. Ce sont les ticks provenant des places boursières et des fournisseurs de liquidité.

Lors du test sur des ticks réels, le spread peut changer dans la barre 1 minute, tandis que lors de la génération de ticks dans une minute, un spread fixe est utilisé dans la barre correspondante.

Si le Market Depth est affiché pour un symbole, les barres sont construites strictement selon le prix de la dernière transaction exécutée (Last). L'événement OnTick est déclenché sur tous les ticks, que le Dernier prix soit présent ou non.

Veuillez noter que les opérations de trading sont toujours exécutées aux prix Bid (Offre) et Ask (Demande), même si le graphique est construit sur les Derniers prix. Par exemple, si un Expert Advisor travaillant sur les prix d'ouverture des barres reçoit un signal au Dernier prix, il effectue une transaction à un autre prix (Bid ou Ask selon la direction). Si le mode "Chaque tick" est utilisé, les barres sont construites sur les prix Bid (Demande), tandis que les trades sont effectués sur les prix Bid (Offre) et Ask (Demande). Le prix Ask est calculé comme le Bid + spread fixe de la barre 1 minute correspondante.

Si l'historique du symbole a une barre 1 minute sans données de ticks, le testeur génère des ticks dans le mode "Chaque tick". Cela permet de tester l'EA sur une certaine période dans le cas où les données des ticks du courtier sont insuffisantes. Si l'historique du symbole n'a pas de barre en minute, mais que des données des ticks existent pour la minute, ces ticks seront ignorés. Les données en minute sont considérées plus fiables.

Les données des ticks ont une plus grande taille que celles des tick 1 minute. Le téléchargement peut prendre du temps lors du premier test. Les données téléchargées des ticks sont stockées par mois dans les fichiers TKC dans \bases\[nom du serveur de trading]\ticks\[nom du symbole]\.

Génération de Ticks #

Le testeur de stratégie génére les données des ticks sur la base des enregistrements de chaque minute mis en cache sous forme d'entiers. Cela signifie que le testeur copie les données historiques requises depuis la plateforme et les convertit en entiers pour accélerer les calculs.

Le testeur de stratégie fournit plusieurs modes de génération des ticks. Le mode le plus précis "Chaque tick" est décrit ci-dessous.

La procédure de génération du tick est diférente pour les barres ayant des volumes de tick différents :

Volume du Tick = 1

Les ticks ne sont pas générés pour les barres ayant un volume de tick à 1, un tick avec la valeur du prix de clôture de la barre est écrit pour eux :

Le volume du tick est égal à 1

Volume du Tick = 2

Les ticks ne sont également pas générés pour les barres avec deux ticks. Le tick du prix d'Ouverture est d'abord écrit et ensuite le tick du prix de Clôture :

Le volume du tick est égal à 2

Volume du Tick >= 3

Pour les barres ayant 3 ticks au moins, il existe différents schémas de génération de ticks suivant leur nombre.

Schéma de Progression de la Barre

Quatre différents schémas sont possibles pour les barres avec trois ticks ou plus :

Option de progression

Image

Le prix bouge dans un sens et retourne sur le niveau du prix d'ouverture. Une barre a donc un seul Plus Haut (le prix le plus haut) et un seul Plus Bas (le prix le plus bas).

Bougie Haussière

Bougie Baissière

Le prix bouge dans un sens et retourne sur le niveau du prix d'ouverture. Dans ce cas, la barre a donc soit un Plus Haut (le prix le plus haut) ou un Plus Bas (le prix le plus bas), mais les prix d'Ouverture et de Clôture ne sont pas égaux.

Bougie Haussière

Bougie Baissière

Le prix bouge dans un sens mais ne revient pas sur le prix d'Ouverture.

Bougie Haussière

Bougie Baissière

Le prix bouge de plusieurs points dans une seule direction. Dans ce cas, la barre n'a pas de Plus Haut ou de Plus Bas.

Bougie Haussière

Bougie Baissière

Génération des Ticks pour les Barres ayant Trois Ticks ou Plus

Les ticks sont générés sur la base de points de référence. Le nombre de ces points ne peut pas être supérieur au volume du tick, et ne peut pas être plus grand que 11 (le point du prix d'Ouverture n'est pas pris en compte).

Les points de référence sont divisés en trois : ceux formant l'ombre de l'ouverture, ceux formant le corps de la bougie (entre son Plus Haut et son Plus Bas) et ceux formant l'ombre de la clôture.

Chandeliers

Suivant le nombre de ticks, les variantes suivantes de distribution des points de référence sont possibles :

Nombre de points de référence

Ombre de l'ouverture

Corps de la bougie

Ombre de la fermeture

11

3

5

3

10

2

6

2

9

2

5

2

8

2

4

2

7

2

3

2

6

1

4

1

5

1

3

1

4

1

2

1

3

1

1

1

  • Si une bougie n'a pas d'ombre, les points de l'ombre sont inclus dans le corps de la bougie.
  • Le corps de la bougie est généré par un nombre impair de points de référence. Si le corps a un nombre pair de points, celui en excès est inclus dans l'une de ses ombres à condition qu'elle ait déjà 2 points. Sinon le point supplémentaire est omis.

La Distribution Idéale (3-5-3)

Les points de référence sont calculés comme le nombre de points depuis le prix d'ouverture. La distribution idéale des points (3-5-3) est calculée de la façon suivante :

Bougie Haussière

Calcul des Points

Image

  • Open
  • 3/4*(O - L)
  • 1/2*(O - L)
  • Low
  • (H - L)/3
  • (H - L)*3 - 1
  • 2/3*(H - L)
  • 2/3*(H - L) - 1
  • High
  • 3/4*(H - C)
  • 1/2*(H - C)
  • Close

Bougie Haussière

Bougie Baissière

Calcul des Points

Image

  • Open
  • 3/4*(O - H)
  • 1/2*(O - H)
  • High
  • (L - H)/3
  • (L - H)/3 + 1
  • 2/3*(L - H)
  • 2/3(L - H) + 1
  • Low
  • 3/4*(L - C)
  • 1/2*(L - C)
  • Close

Bougie Baissière

Doji

Si une bougie est un doji (Clôture = Ouverture), les bougies antérieures sont analysées. Si la bougie précédente était haussière, celle-ci est considérée comme étant baissière, et vice-versa.

Doji

Dessin d'une Ombre de Trois Points

Si une bougie est générée en utilisant trois points de référence, et que les valeurs entières des 3/4 et 1/2 de la taille de l'ombre sont égales (ceci arrive lorsque la différence entre l'Ouverture et le Plus Bas ou l'Ouverture et le Plus Haut n'est pas supérieure à 2 points, c'est à dire que les distances des pas des prix vers l'avant et vers l'arrière sont égaux), alors l'ombre est générée de la façon suivante :

Bougie Haussière

Calcul des Points

Image

  • Open
  • Open - 1
  • Open
  • Low

Bougie Haussière

Bougie Baissière

Calcul des Points

Image

  • Open
  • Open + 1
  • Open
  • High

Bougie Baissière

Une ombre de clôture est générée de la même façon.

Dessin d'une ombre de Deux Points

Si une ombre est générée sur la base de deux points, la génération est effectuée de la façon suivante :

Bougie Haussière

Calcul des Points

Image

  • Open
  • Open + 1
  • Low

Bougie Haussière

Bougie Baissière

Calcul des Points

Image

  • Open
  • Open - 1
  • High

Bougie Baissière

Une ombre de clôture est générée de la même façon.

Dessin du Corps de la Bougie

Le corps de la bougie est généré par vagues en cycles. Si Prec = Low (le prix précédent est le Plus Bas), le cycle suivant est utilisé :

  • N1 = Prec + Pas
  • N2 = Prec + Pas - 1
  • Prec = N2

Si Prec = High (le prix précédent est le Plus Haut), le cycle suivant est utilisé :

  • N1 = Prec - Pas
  • N2 = Prec - Pas + 1
  • Prec = N2

Avec :

N1 et N2 sont les points de référence dans un cycle ;
Prec est le prix précédent ;
Pas est la taille du pas. Le pas est calculé de la façon suivante : (H - L - 1)/(Nombre de cycles) + 1 ;
Le nombre de cycles est calculé comme (Nombre de points de référence dans le corps + 1)/2.

Corps de la bougie

Ticks Intermédiaires

Les ticks intermédiaires entre les points de référence sont générés suivant les règles suivantes :

  • Si le nombre de ticks est plus grand que le nombre de pips entre les points de référence, une "scie" est générée (valeur initiale +/- 1).
  • sSi le nombre de pips entre les points de référence est suffisamment grand, une séquence linéaire de ticks est générée.

Modes de Génération des Ticks #

Le mode de génération de ticks peut être sélectionné dans la fenêtre des paramètres du testeur de stratégie. Les options suivantes sont disponibles :

Chaque Tick

Dans ce mode, tous les ticks sont générés – les ticks OHLC et les ticks intermédiaires. La procédure de cette génération des ticks est décrite ci-dessus.

1 Minute OHLC

Dans ce mode, seuls les ticks OHLC des barres de 1 minute sont générés. Si le volume de ticks d'une bougie est supérieur à 4, alors seuls 4 prix (Open, High, Low and Close) sont générés. Si le volume de ticks est inférieur à 4, alors les règles ci-dessus de formation de la bougie sont appliquées.

Sélectionner ce mode ne signifie pas que le test ou l'optimisation sera effectuée sur la période M1. Par exemple, si vous sélectionnez la période H1 dans le mode "OHLC de M1", les prix seront générés sur chaque barre 1-minute pour les valeurs Open, High, Low et Close. Dans ce cas, l'évènement OnTick() de l'Expert Advisor est exécuté quatre fois par minute – à l'ouverture, à la clôture, au plus haut et au plus bas d'une barre d'une minute, bien que le test soit effectué en H1.

En fait, les prix OHLC existent dans les données d'historique. Donc seules les heures d'arrivée des ticks Open, High, Low et Close sont générées durant le test, car les prix sont issus de l'historique.

Prix d'Ouverture Uniquement

Dans ce mode, les prix OHLC des barres de la période sélectionnée pour le test sont générés. La fonction OnTick() de l'Expert Advisor n'est exécutée qu'au début de la barre (au prix d'Ouverture). A cause de cette caractéristique, les niveaux des Stops et les ordres en attente peuvent être déclenchés à des prix différents de ceux spécifiés (notamment lors du test sur des périodes supérieures). Mais cela vous permet d'effectuer rapidement un test d'évaluation d'un Expert Advisor.

Les périodes W1 et MN1 sont des exceptions car les barres ne sont générées qu'une seule fois par jour au lieu d'une fois par semaine ou par mois respectivement.

Quelques limitations existent pour le mode "Prix d'Ouverture uniquement" :

  • Le mode de trading Délai Aléatoire ne peut pas être utilisé ;
  • L'Expert Advisor testé ne peut pas accéder aux données d'une période inférieure à la période de test/d'optimisation. Par exemple, si vous testez/optimisez sur la période H1, vous pouvez accéder aux données de H2, H3, H4 etc., mais pas à celles de M30, M20, M10 etc. De plus, les périodes supérieures utilisées doivent être un multiple de la période de test. Par exemple, si vous testez sur M20, vous ne pouvez pas accéder aux données de M30, mais vous pouvez accéder à celles de H1. Ces limitations sont liées à l'impossibilité d'obtenir des données d'une période inférieure ou n'étant pas un multiple des barres générées durant le test/l'optimisation.
  • Les limitations d'accès aux données des autres périodes s'appliquent aussi aux autres symboles pour lesquels les données sont utilisées par l'Expert Advisor. Dans ce cas, la limitation pour chaque symbole dépend de la première période utilisée pendant le test/l'optimisation. Supposons que pendant le test sur l'EURUSD en H1, un Expert Advisor accéde aux données du GBPUSD en M20. Dans ce cas, l'Expert Advisor pourra utiliser par la suite les données de l'EURUSD en H1, H2, etc., mais également celles du GBPUSD en M20, H1, H2, etc.

Le mode de génération de chaque tick est le plus précis, mais le plus lent également. Pour des tests/optimisations rapides mais plus approximatifs, utilisez le mode "Prix d'Ouverture Uniquement".

Calculs Mathématiques #

Ce mode vous permet d'utiliser le Testeur de Stratégie pour des calculs mathématiques. Il ne requiert pas et donc ne charge pas les données historiques et les informations des symboles, et il ne génére pas de ticks. Dans les Expert Advisors testés, seules les fonctions OnInit(), OnTester() et OnDeinit() sont appelées séquentiellement.

Dans ce mode, le critère d'optimisation personnalisé est utilisé. Tous les champs des paramètres du testeur deviennent actifs, excepté le mode d'optimisation et la sélection de l'Expert Advisor.

Les calculs mathématiques sont utiles pour calculer le point extrême d'une fonction mathématique, pour lequel la valeur devrait être retournée par la fonction OnTester(). L'optimisation vise à trouver la valeur la plus haute de la fonction. Avec un grand nombre de combinaisons de variables d'entrées d'une fonction mathématique, il est recommandé d'utiliser le mode "Algorithme Génétique". Il permet d'accélerer significativement la recherche.