Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ...

Indicatore ciclico basato sugli stocastici:

Lo spunto originale è http://hk-lisse.daily-bourse.fr/inde...de_prorealtime

STPMT=(4.1*(Stochastic[5,3](close))+2.5*(Stochastic[14,3](close))+Stochastic[45,14](close)+4*(Stochastic[75,20](close)))/11.6
CN=STPMT - average[9](STPMT)
return cn


Come segnalato da Cammello

"Questa è già disponibile in PRT come "Ciclo" con la seguente definizione:


Cycle - Ciclo
Definizione :
Per costruire l'indicatore ciclo, si comincia a costruire l'indicatore seguente:
I=[4.1*Stocastico%K(5,3)+2.5*Stocastico%K(1 4,3)+
Stocastico%K(45,14)+4*Stocastico%K(75,20 ) ] / 11.6
Poi si calcola la media mobile semplice da I a 9 barre.
mm = Average[9](I) Infine l'indicatore Ciclo é la differenza tra queste due grandezze: Cycle=I - mm
 
// Swing di GANN
// dedicato a Katia
// creato da Luca De Florio (luca@deflorio.it) per ProRealTime

if barindex=0 then
lasthigh=high
lastlow=low
oldrv=high
endif

// calcola le barre che hanno massimo e minimo piu' alto della precedente
if (high > lasthigh) AND (low > lastlow) then
rv = High[0]
lasthigh=rv
lastlow=low
lastrv=1
// Poi calcola le barre che hanno massimo e minimo piu' basso della precedente
elsif (high < lasthigh) AND (low < lastlow) then
rv = low[0]
lastlow=rv
lasthigh=high
lastrv=2
else

// nel caso di inside o outside, controlla la barra precedente,
// se era High prende il valore high, se era Low prende il valore Low

if lastrv=1 and high>lasthigh then
rv=high
lasthigh=high
lastlow= low
elsif lastrv=2 and low<lastlow then
rv=low
lasthigh=high
lastlow= low
else
rv=oldrv
endif

endif

// Solo nel caso della prima barra, si parte dall'High del giorno
oldrv=rv
return rv as "Swing"
 
Supertrend
L'indicatore supertrend di Oliver Seban (link)

Bisogna introdurre le varibabili aa (3) e bb (10). Tra parentesi i valori di default.

avola=averagetruerange[bb](close)
avg=medianprice
up=avg+aa*avola
dn=avg-aa*avola
once trend=1
if close>up[1] then
trend=1
elsif close<dn[1] then
trend=-1
endif
if trend<0 and trend[1]>0 then
flag=1
else
flag=0
endif
if trend>0 and trend[1]<0 then
flagh=1
else
flagh=0
endif
if trend>0 and dn<dn[1] then
dn=dn[1]
endif
if trend<0 and up>up[1] then
up=up[1]
endif
if flag=1 then
up=avg+aa*avola
endif
if flagh=1 then
dn=avg-aa*avola
endif
if trend=1 then
super=dn
else
super=up
endif
return super
 
Doppio stocastico
Molto interessante questo oscillatore

Doppio stocastico (http://hk-lisse.daily-bourse.fr/inde...ble_stochastic) di Walter Bressert, oscillatore noto anche come DBS 10

slw=3
pds=7

ratio=ExponentialAverage[3](close)/ExponentialAverage[7](close)
divi=highest[pds](ratio)-lowest[pds](ratio)
a=exponentialaverage[slw]((ratio-lowest[pds](ratio))/divi)*100
divi2=highest[pds](a)-lowest[pds](a)
dss=exponentialaverage[slw]((a-lowest[pds](a))/divi2)*100
return dss,10,90

Si possono assegnare valori diversi a slw e pds e ottenere risultati interessanti.




Trading With Time Fractals to Reduce Risk and Improve Profit Potential

Workbook sui cicli
 
Grazie al blog hklisse possiamo provare a costruire delle bands di hurst

occorrono le variabili p3 (83) valore default e
un xx che è un valore che va aggiunto o sottratto per ottenere le bands
Per il momento vado a naso
smile.gif

Un esempio con il nostro spmib. Ho aggiunto 125 punti alla media centrale. Il risultato non è malaccio ... Questo numero andrebbe programmato in funzione anche della volatilità ... almeno credo
smile.gif


Tetsuo, ho corretto sulla base delle tue indicazioni nel messaggio più in basso.. Mi ero accorto dopo che x era già usata
smile.gif

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

return lowess, lowess1, lowess2
 

Users who are viewing this thread

Back
Alto