Qu'est-ce que le mode de backtesting Loupe à barres?

Les titulaires de comptes Premium peuvent obtenir des exécutions d'ordres plus réalistes dans leurs backtests de stratégie en utilisant l'option Loupe à barres (Bar Magnifier). Cet outil utilise l'inspection intra-barre pour obtenir une granularité plus profonde sur le mouvement des prix dans une barre, ce qui permet des exécutions d'ordres plus précises. Lorsqu'il est sélectionné, le mode Bar Magnifier remplace les hypothèses que l'émulateur du courtier doit faire sur le mouvement des prix par les seules valeurs OHLC des barres historiques.

L'horizon temporel intrabarre utilisé avec la loupe à barres s'ajuste dynamiquement avec l'horizon temporel du graphique. Ce tableau énumère les périodes intra-barres utilisés pour les périodes de plus en plus élevées des graphiques :

Période du graphique, T

Période intra-barre utilisée

1S < T < 30S

1S

30S <= T < 5

5S

5 <= T < 30

15S

30 <= T < 60

1

60 <= T < 240

5

240 <= T < D

15

D <= T < W

60

W <= T < 2W

120

T >= 2W

D

Tableau 1. Périodes intra-barre utilisées

Voici un exemple de stratégie qui utilise un ordre stop sans utiliser l'option Bar Magnifier :

//@version=5strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)if bar_index  == 10381    strategy.entry("Long", strategy.long, stop = 157.0)    strategy.exit("Exit", stop = 156.0) 
Java

L'émulateur du courtier place un ordre stop sur la barre n° 10381 et exécute un ordre au prix de 157,0 sur la barre suivante dès que la condition stop = 157,0 est remplie. L'émulateur du courtier estime qu'à l'intérieur de la barre elle-même, le prix passe de "close" à "low", puis à "high" (déclenchant l'entrée), puis à "close". Après quelques barres (11 jours pour la période actuelle), la condition pour sortir de la position avec le prix stop = 156.0 est déclenchée :

Lorsque la loupe de barre est activée (paramètre use_bar_magnifier = true), les prix de sortie et d'entrée restent inchangés; cependant, la sortie de la position se produit dans la même barre que l'entrée:

//@version=5strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = true)if bar_index  == 10381    strategy.entry("Long", strategy.long, stop = 157.0)    strategy.exit("Exit", stop = 156.0)
Java

Si nous vérifions le graphique de l'échelle temporelle inférieure pour le même symbole (un graphique de 60 minutes, selon le tableau de l'échelle temporelle intrabarre) et trouvons la plage de temps correspondant à la barre 10382, nous pouvons voir que sur l'échelle temporelle horaire, après avoir atteint 157,0 et déclenché l'entrée, le prix descend en dessous de 156,0, satisfaisant la condition stop =156,0:

Lorsque l'option Bar Magnifier est activée, l'émulateur du courtier a accès aux changements de prix des échelles de temps inférieures pendant le backtesting, ce qui rend son comportement plus similaire à celui qui se produirait pendant le test de la stratégie pour la même période.

L'option Bar magnifier peut être activée en basculant l'entrée correspondante dans la fenêtre " Paramètres/Propriétés " de la stratégie:

Notez que cette option a une limitation : la stratégie ne peut demander plus de 100 000 barres de l'horizon temporel inférieur. Cela peut être le cas pour les symboles comportant de nombreuses données historiques (où Nombre de barres sur le graphique * Nombre de barres de l'échelle temporelle inférieure par barre du graphique > 100000), les premières transactions sur le graphique pouvant ne pas être affectées par la loupe à barres. Le nombre de barres, en partant de la fin du graphique, qui peuvent être affectées par la loupe peut être calculé approximativement comme suit :

last_bar_index - (100000 / ( 1 / Num of Lower Timeframe Bars per Chart Bar)

La valeur obtenue sera une approximation, car le nombre de barres inférieures peut varier d'une barre à l'autre.