Originariamente Scritto da
maxmax68
// Sistema di tipo Stop & Reverse con Trailing Stop costituito
// da indicatore Supertrend modificato in base al valore di ADX.
// Quando il valore di REF(ADX,1) < 25 il valore del Trailing Stop non cambia.
// Quando il valore di REF(ADX,1) > 25 il valore del Trailing Stop = REF(Supertrend,1).
// Quando il Trailing Stop viene colpito dai prezzi si effettua il reverse
// con aggiornamento del valore di Trailing Stop nel seguente modo:
// Se reverse da long a short il Trailing Stop diventa il maggiore tra Trailing e Supertrend
// Se reverse da short a long il Trailing Stop diventa il minore tra Trailing e Supertrend
//
//
Inputs: ST_Period(15), ST_AtrMult(2), ST_Strength(5), Adx_Period(15);
//
var: ST(0), vADX(0), Trailing_Stop(0);
//
ST = SUPERTREND(ST_Period, ST_AtrMult, ST_Strength);
vADX = ADX(Adx_Period);
// Viene aggiornato il Trailing Stop in base a ADX
If vADX[1]>25 then begin
Trailing_Stop=ST[1];
end;
//
// Qui cominciano i problemi per beeTrader
//
// Controllo se i prezzi incrociano il Trailing Stop
// Nella strategia ci sarebbero le istruzioni di buy-sell per reverse.
// Qui nell'indicatore mi limito ad aggiornare il Trailing Stop
//
// Se Crossover allora reverse long.
If Close[1]<Trailing_Stop AND Close>Trailing_Stop then begin
// Trailing Stop diventa il minore tra Trailing e Supertrend
Trailing_Stop=minlist(Trailing_Stop,ST);
end
// Se Crossunder allora reverse short.
else If Close[1]<Trailing_Stop AND Close>Trailing_Stop then begin
// Trailing Stop diventa il maggiore tra Trailing e Supertrend
Trailing_Stop=maxlist(Trailing_Stop,ST);
end;
plot1(ST);
plot2(Trailing_Stop);
//
// Sono meno di dieci linee di codice, eliminati i commenti !!!!!
//