//************************************************** ***************************
//* Algoritmo SuperTrend
//************************************************** ***************************
Once Volatilita=0
Once Prezzomediano=0
Once Bandaup=0
Once Bandadn=0
Once trend=0
Once ST=0
Once Inizio=0
Once Coefficiente=3.5
//************************************************** ****************************
//CALCOLO DELLA VOLATILITA'
//La volatilità è calcolata sull'ATR tra 10 e 15 periodi
volatilita = AverageTrueRange[15]
//************************************************** ****************************
//CALCOLO DEL PREZZO MEDIANO
//Il prezzo mediano è rappresentato da massimo + minimo diviso due
Prezzomediano = (High + Low) / 2
//************************************************** ****************************
//CALCOLO DELLE BANDE
//la banda up è corrispondente al prezzomediano + coefficiente x atr
//la banda down è corrispondente al prezzo mediano - coefficiente x atr
//Nota il coefficiente standard è solitamente tra 3 e 4
Bandaup = Prezzomediano + (Coefficiente * Volatilita)
Bandadn = Prezzomediano - (Coefficiente * Volatilita)
//************************************************** ****************************
//INIZIALIZZAZIONE TREND A 1 CON ESAME PRIMA BARRA
if inizio = 0 then
Trend = 1
Inizio = 1
endif
//************************************************** ****************************
//CASO 1
//Se il trend = 1 e il close è inferiore alla banda down allora il trend
//diventa negativo, il calcolo della banda diventa quello standard e la
//supertrend assume l'aspetto della banda superiore in quanto il trend
//è diventato negativo.
if Trend = 1 and Close < bandadn[1] then
Trend = -1
bandaup = prezzomediano + (coefficiente * volatilita)
ST = Bandaup
endif
//************************************************** ****************************
//CASO 2
//Se il trend = 1 e il close è maggiore o uguale della banda down e la bandadown
//è inferiore alla bandadown precedente, il trend rimane sempre positivo ma
//la bandadown rimane sempre allo stesso livello e non scende.
//Il concetto principale è che nel caso in cui il trend è positivo una volta
//determinata la prima volta la bandadown, quest'ultima puo' solo salire ad
//inseguimento (in una sorta di trailing stop).
if Trend = 1 and Close >= Bandadn[1] and Bandadn < Bandadn[1] then
bandadn = bandadn[1]
ST = bandadn
endif
//************************************************** ****************************
//CASO 3
//Se il trend = 1 e il close è maggiore o uguale della banda down e la bandadown
//è maggiore della bandadown precedente, il trend rimane sempre positivo ma
//la supertrend assume lo stesso livello della bandadown in maniera che il
//limite della banda inferiore si alza ad inseguimento
if trend = 1 and Close >= Bandadn[1] and Bandadn >= Bandadn[1] then
ST = Bandadn
endif
//************************************************** ****************************
//CASO 4
//Se il trend è negativo e il close risulta maggiore della bandaup allora il
//trend diventa positivo, il calcolo della banda diventa quello standard e la
//supertrend assume l'aspetto della banda inferiore in quanto il trend è
//diventato positivo
if Trend =-1 and close > Bandaup[1] then
Trend = 1
Bandadn = Prezzomediano - (Coefficiente * Volatilita)
ST = Bandadn
endif
//**************************************** **************************************
//CASO 5
//Se il trend è negativo e il close risulta inferiore uguale alla bandaup e la
//bandaup risulta maggiore della bandaup precedente allora il trend rimane
//sempre negativo e la bandaup rimane sempre allo stesso livello.
//Il concetto è che se il trend è negativo la banda superiore, una volta fissata
//puo' solo scendere ad inseguimento come in una sorta di trailing stop.
if Trend =-1 and Close <= Bandaup and Bandaup > Bandaup[1] then
Bandaup = bandaup[1]
ST = bandaup
endif
//**************************************** **************************************
//CASO 6
//Se il trend è negativo e il close risulta inferiore uguale alla bandaup e la
//bandaup risulta inferiore della banda precedente allora la supertrend assume
//il nuovo valore della bandaup
if Trend =-1 and Close <= Bandaup and Bandaup <= Bandaup[1] then
ST = Bandaup
endif
//**************************************** **************************************
//Colora le barre a seconda che il trend sia positivo (1) o negativo (-1)
A= close - ST
//**************************************** **************************************
//Disegno il SuperTrend
Return ST coloured by A