Mercuzio
ex Drenaggio
Hurst
In risposta ad alcune richieste posto qui il codice e la spiegazione del software da me adattato su PRT per le medie di HURST.
Ricordo a tutti che, come più volte discusso in passato, le medie di Hurst incorporano una parte "fittizia", nel senso che tali medie, visto che vengono spostate indietro nel tempo lasciano un Lag informativo che viene riempito con dati fittizi prendendo a riferimento il Last Close, pertanto l'ultima parte della media (la parte previsionale) risulta del tutto inaffidabile dipendendo direttamente dalla variazione del Last Close per "n" barre indietro nel tempo.
Per rendere ben visibile la dimensione del problema, ho programmato un pezzo di codice che mostra opportunamente la parte previsionale in un diverso colore, nell'esempio qui sotto è la parte di media rossa.
Per essere chiari: TUTTA LA PARTE ROSSA DELLA MEDIA DIPENDE DA UN SOLO DATO, L'ULTIMO CLOSE (CIOE' IL CLOSE CORRENTE), CIO' FA' SI CHE TUTTA LA PARTE ROSSA SI MODIFICHERA' NEL TEMPO IN BASE ALLE VARIAZIONI DEL LAST CLOSE.
Questa è l'essenza del perchè tale media è inaffidabile, in pratica se la calcolate alla chiusura di oggi, TUTTA LA PARTE ROSSA ha un certo andamento, se la calcolate domani al close successivo TUTTA LA PARTE ROSSA potrebbe avere un andamento diverso.
La parte rossa rappresenta cioè la parte incerta della media.
La parte blu invece non varierà nel tempo.
Inoltre, chiarisco che la VERA media di Hurst prevederebbe anche una parte previsionale che si estende OLTRE il Last Close, quella parte previsionale non è possibile ottenerla con PRT, si riesce al massimo ad arrivare alla parte previsionale FINO al Last Close.
Per far funzionare l'indicatore è necessario creare una variabile "p3" (intero > 0)
CODICE:
xx=exponentialaverage[5]((AverageTrueRange[14](close))*3)
k=p3
de48=DPO[k*2](close)
if de48=de48[1] and de48[1]=de48[2] and de48[2]<>de48[3] then
flag=1
endif
n=(k*2)-4
p=(n/2)-1
d100=DPO[n](close)
moy100=close-d100
co=(moy100-moy100[1]+(close[p])/n)*n
if flag[1]=1 and flag[2]=0 then
hh=co[1]
endif
if flag[1]=1 then
co=hh
endif
n=p3 mod 2
p=(p3-n)/2
p3=(2*p)+1
once x=0
w=abs((p-x)/p)
w=w*w*w
w=(1-w)
w=w*w*w
x=x+1
if barindex=p3 then
a=0
b=0
e=0
for i=1 to p3
z=barindex-i+1
a=a+w[z]
b=b+w[z]*(i)
e=e+(i)*(i)*w[z]
next
endif
if barindex>p3 then
c=0
d=0
for i=1 to p3
z=barindex-i+1
c=c+co[p3+p-i]*w[z]
d=d+co[p3+p-i]*w[z]*(i)
next
endif
alpha=(a*d-b*c)/(a*e-b*b)
beta=(c*e-b*d)/(a*e-b*b)
lowess=alpha*(p+1)+beta
if barindex<p3*2 then
lowess=undefined
endif
lowess1=lowess+xx
lowess2=lowess-xx
Segno=SGN(lowess-lowess[1])
MyDPOa=DPO[k](close)
If MyDPOa=MyDPOa[1] and MyDPOa[1]=MyDPOa[2] then
flagx=1
else
flagx=-1
endif
return lowess coloured by (flagx) as "H media", lowess1 coloured by (Segno) as "UpperBand", lowess2 coloured by (Segno) as "LowerBand"
Saluti e Buon Divertimento
In risposta ad alcune richieste posto qui il codice e la spiegazione del software da me adattato su PRT per le medie di HURST.
Ricordo a tutti che, come più volte discusso in passato, le medie di Hurst incorporano una parte "fittizia", nel senso che tali medie, visto che vengono spostate indietro nel tempo lasciano un Lag informativo che viene riempito con dati fittizi prendendo a riferimento il Last Close, pertanto l'ultima parte della media (la parte previsionale) risulta del tutto inaffidabile dipendendo direttamente dalla variazione del Last Close per "n" barre indietro nel tempo.
Per rendere ben visibile la dimensione del problema, ho programmato un pezzo di codice che mostra opportunamente la parte previsionale in un diverso colore, nell'esempio qui sotto è la parte di media rossa.
Per essere chiari: TUTTA LA PARTE ROSSA DELLA MEDIA DIPENDE DA UN SOLO DATO, L'ULTIMO CLOSE (CIOE' IL CLOSE CORRENTE), CIO' FA' SI CHE TUTTA LA PARTE ROSSA SI MODIFICHERA' NEL TEMPO IN BASE ALLE VARIAZIONI DEL LAST CLOSE.
Questa è l'essenza del perchè tale media è inaffidabile, in pratica se la calcolate alla chiusura di oggi, TUTTA LA PARTE ROSSA ha un certo andamento, se la calcolate domani al close successivo TUTTA LA PARTE ROSSA potrebbe avere un andamento diverso.
La parte rossa rappresenta cioè la parte incerta della media.
La parte blu invece non varierà nel tempo.
Inoltre, chiarisco che la VERA media di Hurst prevederebbe anche una parte previsionale che si estende OLTRE il Last Close, quella parte previsionale non è possibile ottenerla con PRT, si riesce al massimo ad arrivare alla parte previsionale FINO al Last Close.
Per far funzionare l'indicatore è necessario creare una variabile "p3" (intero > 0)
CODICE:
xx=exponentialaverage[5]((AverageTrueRange[14](close))*3)
k=p3
de48=DPO[k*2](close)
if de48=de48[1] and de48[1]=de48[2] and de48[2]<>de48[3] then
flag=1
endif
n=(k*2)-4
p=(n/2)-1
d100=DPO[n](close)
moy100=close-d100
co=(moy100-moy100[1]+(close[p])/n)*n
if flag[1]=1 and flag[2]=0 then
hh=co[1]
endif
if flag[1]=1 then
co=hh
endif
n=p3 mod 2
p=(p3-n)/2
p3=(2*p)+1
once x=0
w=abs((p-x)/p)
w=w*w*w
w=(1-w)
w=w*w*w
x=x+1
if barindex=p3 then
a=0
b=0
e=0
for i=1 to p3
z=barindex-i+1
a=a+w[z]
b=b+w[z]*(i)
e=e+(i)*(i)*w[z]
next
endif
if barindex>p3 then
c=0
d=0
for i=1 to p3
z=barindex-i+1
c=c+co[p3+p-i]*w[z]
d=d+co[p3+p-i]*w[z]*(i)
next
endif
alpha=(a*d-b*c)/(a*e-b*b)
beta=(c*e-b*d)/(a*e-b*b)
lowess=alpha*(p+1)+beta
if barindex<p3*2 then
lowess=undefined
endif
lowess1=lowess+xx
lowess2=lowess-xx
Segno=SGN(lowess-lowess[1])
MyDPOa=DPO[k](close)
If MyDPOa=MyDPOa[1] and MyDPOa[1]=MyDPOa[2] then
flagx=1
else
flagx=-1
endif
return lowess coloured by (flagx) as "H media", lowess1 coloured by (Segno) as "UpperBand", lowess2 coloured by (Segno) as "LowerBand"
Saluti e Buon Divertimento
Ultima modifica:
, ma intanto...come si fa ?