riccardo69
Forumer attivo
A grande richiesta ecco il codice del Supertrend!
Pensavo che la formula del Supertrend fosse segreta e non riuscivo a trovarla, poi mi hanno fatto vedere che Robom1 aveva già fatto tutto in Visual Trader.
Io ho solo dato un colpo di colore e rinominato un paio di variabili.
Ringraziate tutti Robom1!
Codice:{****************************************************************************** * SUPERTREND by ender85 * Codice di Robom1 preso dal Fol e modificato in minima parte * solo per renderlo simile alla versione di Prorealtime * Ringraziamenti: Robom1, Damien e Ronzy ******************************************************************************} Var: volatilita(0), prezzomediano(0), bandaup(0), bandadn(0), trend(0), supertrend(0), colore(0), inizio(0); input: Moltiplicatore(3), Nm_periodi(100); //****************************************************************************** //CALCOLO DELLA VOLATILITA' //La volatilità è calcolata sull'ATR di 100 periodi volatilita = ATR(C, Nm_periodi); //****************************************************************************** //CALCOLO DEL PREZZO MEDIANO //Il prezzo mediano è rappresentato da massimo + minimo diviso due prezzomediano = (H + L) / 2; //****************************************************************************** //CALCOLO DELLE BANDE //la banda up è corrispondente al prezzomediano + moltiplicatore x atr //la banda down è corrispondente al prezzo mediano - moltiplicatore x atr //Nota il moltiplicatore standard è solitamente impostato a 3 bandaup = prezzomediano + (moltiplicatore * volatilita); bandadn = prezzomediano - (moltiplicatore * volatilita); //****************************************************************************** //INIZIALIZZAZIONE TREND A 1 CON ESAME PRIMA BARRA (non necessario se iniz. la var. 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 C < bandadn[1] then trend = -1; bandaup = prezzomediano + (moltiplicatore * volatilita); supertrend = 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 C >= bandadn[1] and bandadn < bandadn[1] then bandadn = bandadn[1]; supertrend = bandadn; endif; //****************************************************************************** //CASO 3 //Se il trend = 1 e il close è maggiore o uguale della banda down e la banddown //è 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 C >= bandadn[1] and bandadn >= bandadn[1] then supertrend = 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 - (moltiplicatore * volatilita); supertrend = 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]; supertrend = 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 supertrend = bandaup; endif; //****************************************************************************** //Colora il Supertrend a seconda che il trend sia positivo (1) o negativo (-1) if trend = 1 then colore= green; else colore= red; endif; //****************************************************************************** //Disegno il Supertrend PlotChart(supertrend, 0, colore, solid, 3);
ciao ander, grazie del lavoro svolto
non so se è successo anche ad altri ma copiando questo codice e incollandolo sulla visual trader mi da un errore "Verifica Formula ... Errore
Errore di Sintassi in Riga n° 58: La Variabile "_F2" non è stata assegnata." mi puoi aiutare a risolverlo?