Come postato in precedenza dopo che treno in un
intervento aveva postato le regole del SEQUENTIAL DEMARK mi sono incuriosito ed ho provato a creare un indicatore per PRT.
Voglio subito specificare un paio di cose, non sono riuscito a trovare in rete spiegazioni più esaurienti di quelle che ha passato treno, leggendo qua è la', come già detto, mi sembra che ognuno abbia una visione diverse delle stesse e dovendo scegliere......
Non ho potuto fare dei raffronti perchè nn ho trovato versioni libere di questo indicatore per altri programmi, ed a dire il vero non ho trovato neanche tante immagini su Google per vedere se i segnali corrispondevano.
Quindi l'intenzione di questo post non è quella di fornire un indicatore funzionante ma di richiesta aiuto per ragionare insieme e finirlo (o rifinirlo)
Per il momento l'indicatore segnala solo i BUY DAY se lavora bene facciamo anche il SELL DAY
Bene detto questo passiamo ai listati...
1)
///////////////////////////////////////////////
///////////////
DEMARK SETUP /////////////
/////////////
scritto da TETSUO/////////////
/////////////////////////////////////////////
rem BUY SETUP
rem condizione 1): controlla se la chiusura è inferiore alla chiusura di 4 giorni prima
rem se vero inizia a contare
if close<close[4] then
giornibuy=giornibuy+1
rem condizione 2): se la conta è arivata a 8 o più in su allora controlla che il massimo
rem sia maggiore o uguale ad almeno uno tre tre minimi precedenti se si manda il segnale
if giornibuy>=8 and (High>=Low[3] or High>=low[2] or High>=low[1]) then
segnale=1
else
segnale=0
endif
else
giornibuy=0
endif
rem se la conta è maggiore o uguale a 9 e se il segnale è presente scatta il buy signal e si
rem azzera la conta
if giornibuy=>9 and segnale=1 then
buysignal=buysignal+1
giornibuy=0
endif
rem questa parte è scritta male ma svolge bene il suo lavoro
if buysignal>buysignal[1] then
buysetup=1
else
buysetup=0
endif
rem se scatta il setup trova il massimo che si è avuto durante i giorni della conta che serve
rem come interrupt nella conta per il buy day
if buysetup=1 then
mass=highest[9](high)
endif
rem SELL SETUP
rem praticamente lo stesso di sopra ma a termini invertiti
if close>close[4] then
giornisell=giornisell+1
if giornisell>=8 and (low>=high[3] or low>=high[2] or low>=high[1]) then
segnalesell=1
else
segnalesell=0
endif
else
giornisell=0
endif
if giornisell=>9 and segnalesell=1 then
sellsignal=sellsignal+1
giornisell=0
endif
if sellsignal>sellsignal[1] then
sellsetup=1
else
sellsetup=0
endif
if sellsetup=1 then
mini=lowest[9](low)
endif
return buysetup as "BUY SETUP", sellsetup as "SELL SETUP", mass, mini
//////////////////////////////////////////////////////
2)
//////////////////////////////////////////////////////////////////
///////////////
DEMARK BUY COUNTDOWN /////////////
///////////////
scritto da TETSUO//////////////////////
/////////////////////////////////////////////////////////////////
rem DEMARK BUY DAY
rem richiamo la funzione demark conta e assegno le tre variabili che uso
rem escludo la quarta che non si usa
buysignal , sellsignal, mass, ignored= CALL "demark conta"
rem se scattano le condizioni di interruzione il countdown va a -1
if sellsignal=1 or close>mass or countdown=13 then
countdown=-1
rem altrimenti se scatta il buy setup va a 0
elsif buysignal=1 then
countdown=0
endif
rem uso 2 passaggi per la conta, uno per il primo passo l'altro per i restanti passi
if countdown[1]=0 then
if close<low[2] then
countdown=countdown+1
endif
endif
if countdown>0 then
if close<low[2] then
countdown=countdown+1
endif
endif
rem se la conta arriva a 13 scatta il buyday
if countdown=13 then
buyday=1
else
buyday=0
endif
return countdown as "COUNTDOWN", buyday as "BUY DAY"
///////////////////////////////////////////////////////////////
3)
///////////////////////////////////////////////////////////////////
///////////////
DEMARK SELL COUNTDOWN /////////////
///////////////////
scritto da TETSUO///////////////////
//////////////////////////////////////////////////////////////////
rem SELL DAY: stessa cosa del buyday
buysignal , sellsignal, ignored, mini= CALL "demark conta"
if buysignal=1 or sellsignal=1 or close<mini or countdown=13 then
countdown=-1
endif
if sellsignal=1 then
countdown=0
endif
if countdown[1]=0 then
if close>high[2] then
countdown=countdown+1
endif
endif
if countdown>0 then
if close>high[2] then
countdown=countdown+1
endif
endif
if countdown=13 then
sellday=1
else
sellday=0
endif
return countdown as "COUNTDOWN", sellday as "SELL DAY"
///////////////////////////////////////////////////////////////
questo il risultato visivo