In questo articolo descriviamo come effettuare un’approssimazione al tick più vicino con Tradingview tramite Pinescript per il trading algoritmico. Questo è utile quando si usa il sistema di alert di Tradingview per inviare un ordine reale. L’arrotondamento al tick più vicino assicura che gli ordini siano inviati con livelli validi e quindi non rifiutati dal broker.
Approssimazione al tick più vicino con Tradingview
Vediamo subito il codice. Le seguenti funzioni possono essere copiate e incollate in qualsiasi script. Ci sono due funzioni. Una funzione arrotonda per eccesso al tick più vicino e una funzione che arrotonda per difetto. Le funzioni hanno gli stessi input (chiamati argomenti):
x
, una serie, ad esempio un livello di stop loss.mintick
, un float o un numero intero che dobbiamo arrotondare al valore più vicino.
// round(x*4)/4)
round_up_to_tick(x, mintick)=>
mult = 1 / mintick
value = ceil(x*mult)/mult
round_down_to_tick(x, mintick)=>
mult = 1 / mintick
value = floor(x*mult)/mult
Per maggiori dettagli sul funzionamento del codice precedente è possibile leggere l’articolo relattivo alla creazione di funzioni con Tradingview.
Esempio completo
Il seguente esempio prevede un paio di semplici input in modo da poter facilmente testare ogni funzione. In realtà, non inseriamo manualmente il valore mintick
ma usiamo la variabile incorporata syminfo.mintick
.
//@version=4
study("Rounders", overlay=false)
val = input(12.05, step=0.01, title='Value to round')
mtick = input(0.1, step=0.01, title='Minimum tick to Simulate')
dir = input("Up", options=["Up","Down"], title="Round")
// NOTA
// ========================================================
// Non dimenticarsi di replicare mtick con syminfo.mintick
// --------------------------------------------------------
round_up_to_tick(x, mintick)=>
mult = 1 / mintick
value = ceil(x*mult)/mult
round_down_to_tick(x, mintick)=>
mult = 1 / mintick
value = floor(x*mult)/mult
rounded =
dir == "Up" ? round_up_to_tick(val, mtick) :
round_down_to_tick(val, mtick)
plot(rounded, title='Rounded Value')
Il grafico
Posizionando il codice precedente su un grafico, otteniamo quanto segue:
Usare una semplice singola linea permette facilmente di verificare se l’arrotondamento funziona correttamente. Possiamo provare valori diversi e verificare il risultato!
Codice completo
In questo articolo abbiamo descritto come effettuare un’approssimazione al tick più vicino con Tradingview tramite Pinescript per il trading algoritmico. Per il codice completo riportato in questo articolo, si può consultare il seguente repository di github:
https://github.com/datatrading-info/TradingView