Was ist der Backtesting-Modus der Balkenlupe?
Inhaber eines Premium-Accounts können realistischere Orderausführungen in ihren Strategie-Backtests erzielen, indem sie die Option Balkenlupe verwenden. Dieses Tool nutzt die Inspektion innerhalb des Balkens, um die Kursbewegung innerhalb eines Balkens genauer zu erfassen und so präzisere Orderausführungen zu ermöglichen, wenn Sie diese Option auswählen, ersetzt der Balkenlupen-Modus die Annahmen, die der Broker-Emulator über die Preisbewegung machen muss, durch die OHLC-Werte für historische Balken.
Die Intrabar-Zeiteinheit, der mit der Balkenlupe verwendet wird, passt sich dynamisch an die Zeiteinheit des Charts an. In dieser Tabelle finden Sie den Intrabar-Zeiteinheiten, der für zunehmend höhere Chart-Zeiteinheit verwendet wird:
Chart-Zeitrahmen, höher oder gleichwertig zu (T >=) | Verwendeter Intrabar-Zeitrahmen |
1S | 1S |
30S | 5S |
1 | 10S |
5 | 30S |
10 | 1 |
15 | 2 |
30 | 5 |
60 | 10 |
240 | 30 |
1D | 60 |
3D | 240 |
W | D |
Tabelle 1. Intrabar Zeiteinheiten
Hier sehen Sie ein Beispiel für eine Strategie, die eine Stop-Order verwendet, ohne die Option Balkenlupe zu nutzen:
//@version=5
strategy("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)
Der Broker-Emulator platziert eine Stop-Order auf Bar #10381 und füllt eine Order mit einem Preis von 157,0 auf dem nächsten Balken aus, sobald die Bedingung Stop = 157,0 erfüllt ist. Der Broker-Emulator geht davon aus, dass der Kurs innerhalb des Balkens selbst von "open" auf "low", dann auf "high" (was die Eingabe auslöst) und dann auf "close" geht. Nach einigen Balken (11 Tage für den aktuellen Zeitrahmen) wird die Bedingung für den Ausstieg aus der Position mit dem Stoppkurs = 156,0 ausgelöst:
Wenn die Balkenlupe aktiviert ist (Parameter use_bar_magnifier = true), bleiben Ausstiegs- und Einstiegskurs unverändert; der Ausstieg aus der Position erfolgt jedoch innerhalb desselben Balkens, in dem der Einstieg erfolgte:
//@version=5
strategy("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)
Wenn wir uns die niedrigeren Zeitrahmen für dasselbe Symbol ansehen (einen 60-Minuten-Chart, gemäß der Intrabar-Zeiteinheiten) und den Zeitbereich finden, der dem Balken 10382 entspricht, können wir sehen, dass der Kurs auf dem stündlichen Zeitrahmen nach dem Erreichen von 157,0 und dem Auslösen des Einstiegs unter 156,0 fällt, wodurch die Bedingung Stop = 156,0 erfüllt ist:
Wenn die Balkenlupe aktiviert ist, erhält der Broker-Emulator während des Backtestings Zugang zu den Kursveränderungen in den niedrigeren Zeiteinheiten, sodass sein Verhalten eher dem entspricht, was beim Forward-Test der Strategie für denselben Zeitraum passieren würde.
Die Option Balkenlupe kann durch Umschalten der entsprechenden Eingabe im Fenster "Einstellungen/Eigenschaften" der Strategie umgeschaltet werden:
Beachten Sie, dass diese Option eine Einschränkung hat: Die Strategie kann nicht mehr als 100.000 Balken aus dem unteren Zeitrahmen anfordern. Dies kann bei Symbolen mit vielen historischen Daten der Fall sein (wo Num of Bars per Chart Bar * Num of Lower Timeframe Bars per Chart Bar > 100000), die ersten Trades auf dem Chart sind möglicherweise nicht von der Balkenlupe betroffen. Die Anzahl der Balken, die ab dem Ende des Charts von der Balkenlupe beeinflusst werden können, lässt sich grob wie folgt berechnen:
last_bar_index - (100000 / ( 1 / Num of Lower Timeframe Bars per Chart Bar)
Der resultierende Wert ist ein grober Näherungswert, da die Anzahl der Balken des unteren Zeitrahmens von Balken zu Balken unterschiedlich sein kann.