C’è un malinteso comune tra i neofiti quando si lavora con timeframe inferiori. Questo può portare a confusione o incomprensione dei dati e dei risultati ottenuti. In questo articolo descriviamo come analizzare i timeframe inferiori con Tradingview e comprendere i limiti dell’importazione di dati da un intervallo di tempo inferiore (più veloce) rispetto all’intervallo di tempo del grafico su cui viene applicato un indicatore.
Un tipico problema che si legge nei forum prevede di solito qualcosa come:
Faccio principalmente trading sul grafico a 1 ora, ma vorrei eseguire alcune analisi multi-time. Potete aiutarmi a creare un indicatore che mi mostri cosa sta facendo [inserire qui il nome dell’indicatore] in altri intervalli di tempo. Sono principalmente interessato ai timeframe a 4 ore, giornalieri e a 5 minuti.
Vediamo quindi di spiegare perché importare dati di un timeframe a 5 minuti in un grafico di 1 ora potrebbe non produrre i risultati desiderati.
Maggiore è timeframe, minore è la risoluzione
Partiamo dai concetti base. E’ facile capire che una candela di 5 minuti contiene una panoramica del movimento del prezzo avvenuto negli ultimi 5 minuti. Possiamo pensarlo come un riassunto perché otteniamo un quadro sintetico (OHLCV
) di cosa è accaduto ma, allo stesso tempo, perdiamo alcune informazioni. Ad esempio, una candela di 5 minuti non dice se il prezzo ha toccato il minimo prima del massimo o il massimo prima del minimo. Generalmente, se vogliamo maggiori informazioni, dobbiamo usare un timeframe. Ad esempio, 5 barre da 1 minuto possono fornire informazioni più dettagliate (ma comunque non complete). In altre parole man mano che saliamo con il timeframe, rinunciamo ad informazioni per ottenere una panoramica generale. Diamo un’occhiata a un esempio:
L’immagine precedente mostra un confronto del grafico GBPUSD a 1 minuto rispetto allo stesso grafico con timeframe a 5 minuti sulla destra. Inoltre, abbiamo evidenziato manualmente le candele da 5 minuti nel grafico a 1 minuto.
La seconda immagine mostra come la candela a 5 minuti non contiene tutte le informazioni relative al movimento dei prezzi in quel periodo di tempo. Dobbiamo ricordarci di questo aspetto quando in seguito descriviamo alcuni esempi di perdita in informazioni dopo l’importazione di dati a 1 minuto su un grafico di 5 minuti.
Esecuzione dello script in timeframe superiori
Dobbiamo considerare un ulteriore aspetto. Con i dati storici, lo scritp è eseguito per ogni barra/candela. Quindi, nel caso di timeframe superiori (più lenti) abbiamo un numero inferiori di barre (a parità di periodo temporale) quindi ci sono meno barre sul grafico con la conseguenza di eseguire lo script un numero minore di volte. In altre parole, otteniamo solo un’istantanea, la possibilità di effettuare calcoli ed eseguire operazioni ogni 5 minuti su un grafico con timeframe a 5 minuti. Al contrario, otteniamo 5 istantanee nello stesso periodo con un timeframe a 1 minuto. Questo concetto è mostrato nella seguente immagine.
Nota: quando lavoriamo con dati in tempo reale, i script degli indicatori sono eseguiti ad ogni tick. Anche le strategie sono eseguite ad ogni tick se è abilita un’opzione. Questo può causare il repainting quando aggiorniamo il browser.
Importazione dati nei timeframe superiori
Dato che lo script è eseguito meno frequentemente, provando ad importare dati di 1 minuto in un timeframe a 5 minuti otteniamo soltanto una piccola istantanea di 1 minuto del timeframe inferiore ogni 5 minuti. Non otteniamo tutte e 5 le barre! Abbiamo perso 4 barre di informazioni.
Nell’immagine sottostante abbiamo aggiunto una SMA a 9 periodi sia nei timeframe a 1 minuto che a 5 minuti. Tuttavia, il timeframe di 5 minuti sta importando la SMA a 9 periodi del timeframe a 1 minuto.
Osservando le linee blu orizzontali, notiamo che stiamo importando solamente un’istantanea della posizione in 1 minuto del livello della SMA durante l’ultima barra con timeframe a 1 minuto per ogni periodo di 5 minuti. Queste posizioni sono poi unite punto a punto tra le barre. Non mostra il movimento completo della SMA con timeframe a 1 minuto nel periodo di 5 minuti. Da notare la curva della SMA nel timeframe a 1 minuto rispetto alle linee diagonali nel timeframe a 5 minuti.
Analizzare i timeframe inferiori
Questi meccanismi hanno alcune sottili implicazioni che potremmo non aspettarci.
Se la strategia o indicatore genera un segnale basato sui prezzi con timeframe inferiore, potrebbe non produrre un segnale quando effettivamente avviene. Diamo un’altra occhiata all’immagine precedente. Supponiamo di voler andare short non appena il prezzo chiude al ribasso al di sotto della SMA. Il backtest durante l’ultimo periodo di 5 minuti- apre una posizione short alla fine del periodo di 5 minuti invece che sulla prima barra a 1 minuto quando il prezzo ha effettivamente chiuso sotto la SMA. L’importazione di dati a 1 minuto non ci aiuta ad entrare prima!
Inoltre, un problema meno ovvio e potenzialmente più dannoso è che abbiamo una visione distorta ed errata di cosa effettivamente è accaduto. Diamo un’altra occhiata al grafico. Possiamo vedere come il massimo sembrava aver attraversato la media mobile a 9 periodi nel timeframe inferiore. Tuttavia, se guardiamo l’effettivo movimento del prezzo, vediamo che non ha mai superato la SMA nelle barre a 1 minuto.
Abbiamo questa distorzione perché il massimo della barra è avvenuto nei primi minuti del periodo di 5 minuti ma in quel momento anche la SMA era molto più alta. Alla fine della barra, otteniamo un grafico OHLC
a 5 minuti che mostra il massimo più alto di quel periodo ma solo un’istantanea della SMA nel timeframe a 1 minuto sul grafico a 5 minuti.
Per essere chiari, questo NON è un bug! Sono semplicemente i meccanismi e i limiti del consolidamento e ricampionamento dei dati quando desideriamo visualizzare in un timeframe più elevato una “panoramica” di ciò che è accaduto in un timeframe inferiore!
Conclusione
Pertanto, sebbene sia possibile importare dati di tempi inferiori in uno script, dobbiamo considerare se è l’approccio giusto caso per caso. Spero che questo articolo aiuti a prendere questa decisione in modo più consapevole!
Codice completo
In questo articolo abbiamo descritto come analizzare i timeframe inferiori con Tradingview . Per il codice completo riportato in questo articolo, si può consultare il seguente repository di github:
https://github.com/datatrading-info/TradingView