Cos'è la modalità di backtesting Bar Magnifier?
È possibile ottenere esecuzioni degli ordini più realistiche nel backtesting della strategia utilizzando l'opzione “Bar Magnifier”. Questo strumento utilizza l'ispezione intrabar per fornire una visione più granulare del movimento dei prezzi all'interno di una barra, consentendo esecuzioni degli ordini più precise.
Quando è abilitata, la modalità Bar Magnifier fa sì che l'emulatore del broker utilizzi solo i valori OHLC per le barre storiche invece di ipotizzare l'andamento del prezzo.
L'intervallo intrabar utilizzato con Bar Magnifier si adatta dinamicamente all'intervallo del grafico. La tabella seguente elenca gli intervalli intrabar utilizzati per intervalli di grafico progressivamente più elevati.
Ecco un esempio di una strategia che usa un ordine stop senza l’opzione Bar Magnifier:
//@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)
L’emulatore broker piazza un ordine stop sulla barra #10381 e lo esegue al prezzo di 157.0 sulla barra successiva, non appena la condizione stop = 157.0 si realizza. Questo perchè ipotizza sempre che il prezzo all’interno della barra si sia mosso dal valore di apertura, al minimo, poi al massimo ed infine alla chiusura. Dopo qualche barra (11 giorni per il timeframe corrente), si realizza la condizione per uscire dalla posizione (stop price = 156.0):

Quando è attivo Bar magnifier (parametro use_bar_magnifier = true), i prezzi di entrata ed uscita sono inalterati; tuttavia, l’uscita avviene nella stessa barra in cui si è verificata l’entrata:
//@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)

Se controlliamo il grafico a timeframe inferiore dello stesso simbolo (un grafico a 60 minuti, secondo la tabella dei timeframe intrabar) e troviamo l'intervallo di tempo corrispondente alla barra 10382, possiamo vedere che sul timeframe orario, dopo aver raggiunto 157,0 e aver innescato l'entrata, il prezzo scende al di sotto di 156,0, soddisfacendo la condizione di stop = 156,0:

Con l'opzione Bar Magnifier attivata, l' emulatore del broker ha accesso alle variazioni di prezzo dei timeframe inferiori durante il backtesting, rendendo il suo comportamento più simile a quello che si verificherebbe durante il test in avanti della strategia per lo stesso periodo di tempo.
L'opzione Bar Magnifier può essere attivata selezionando l'input corrispondente nella finestra “Impostazioni/Proprietà” della strategia:

! Nota: la strategia non può richiedere più di 200.000 barre dal timeframe inferiore.
Per i simboli con molti dati storici (dove Numero di barre sul grafico × Numero di barre del timeframe inferiore per barra del grafico > 200.000), le prime operazioni sul grafico potrebbero non essere influenzate dal bar magnifier.
Il numero di barre, a partire dalla fine del grafico, che possono essere influenzate dal bar magnifier può essere calcolato approssimativamente utilizzando la seguente formula.
last_bar_index - (200000 / ( 1 / Num of Lower Timeframe Bars per Chart Bar)
Il valore risultante sarà un'approssimazione, poiché il numero di barre del timeframe inferiore può variare da una barra all'altra.
Leggi anche: