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

Elliott indicator
fast=average[5](customclose)
slow=average[34](customclose)
EI=fast-slow
return EI as "Elliott Indicator",0 as "0"
 
Indicatore di volumi RSIvol


volup=0
for i=0 to P-1
if close>close[i+1] then
volup=volup+volume
elsif close=close[i+1] then
volup=volup+volume/2
endif
next

VOLtot = summation[P](volume)

RSIvol= volup/VOLtot*100

RSIvol1=average[2](RSIvol)
mRSIvol=average[3](RSIvol1)

return RSIvol1 COLOURED(255,0,0) AS "RSIvol1",mRSIvol COLOURED(0,255,0) AS "RSIvol2"
 
//Drena Hurst bands

p3=83
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])
return lowess as "H media", lowess1 coloured by (Segno) as "UpperBand", lowess2 coloured by (Segno) as "LowerBand"
 
by Drenaggio

Better Volume e Better volume + RSI

Il Better Volume vi aiuta nell'identificazione degli stati psicologici del mercato, i quei momenti cioè che si possono classificare come euforia/panico, disinteresse, accumulo short/Long, attesa....

Legenda:

climax High-Vol High-Range = euforia/panico
climax High-Vol Low-Range = euforia/panico fase finale
Low-Vol Low-Ramge = attesa
High-Vol Low-Range = accumulo Short/Long
Low-Vol High-Range = disinteresse

Nella versione con RSI avete anche la lettura contemporanea della forza presente sul mercato, questo tipo di RSI si adatta alla scala del volume automaticamente ma ho inserito i controlli per poterlo eventualmente regolare in altezza, è completamente configurabile:

Legenda variabili RSI con valori di default:

Oshift= 30 (è il periodo su cui si calcola la media di riferimento del volume, tale periodo riguarda solo il numero iniziale di barre del vostro grafico storico, cioè se scegliete 30 (default), si intendono le prime 30 barre, non le seguenti 30, percui se all'inizio del vostro storico il volume era particolarmente scarso basterà che aumentiate tale periodo.

Vshift= 5 (è il parametro che regola RSI in altezza sulla scala del volume

period=14 (periodo di calcolo per RSI)

RSIMinimo=20 (la soglia di ipervenduto)

RSIMassimo=80 (la soglia di ipercomprato)

applica a = chiusura (valore su cui si calcola RSI)

ed ecco i codici:

Versione Solo volumi:

/////////////////////////////////////////////
vv1=volume
vv2=range*volume
if range<>0 then
vv3=volume/range
endif
vv4=average[100](vv1)
if vv1=lowest[20](vv1) then
lowvol=vv1
else
lowvol=0
endif
if vv2=highest[20](vv2) then
climax=vv1
else
climax=0
endif
if vv3=highest[20](vv3) then
chum=vv1
else
chum=0
endif
if vv2=highest[20](vv2) and vv3=highest[20](vv3) then
chumclim=vv1
else
chumclim=0
endif
if vv3=lowest[20](vv3) then
lowchum=vv1
else
lowchum=0
endif
return vv1 coloured(0,204,204) as "volume",lowvol coloured(204,204,0) as "Low-V Low-R",climax coloured(255,0,0) as "climax High-V High-R",chum coloured(0,204,0) as "High-V Low-R",lowchum as "Low-V High-R",chumclim coloured(204,0,204) as "climax High-V Low-R",vv4 as "average"


//////////////////////////////////////////////////////////////////////

versione modificata con RSI

//////////////////////////////////////////////////////

REM Parametri: Oshift=30 Vshift=5 period=14 RSIMassimo=80 RSIMinimo=20

////////////////////////////////////////////////////
vv1=volume
vv2=range*volume
if range<>0 then
vv3=volume/range
endif
vv4=average[100](vv1)
if vv1=lowest[20](vv1) then
lowvol=vv1
else
lowvol=0
endif
if vv2=highest[20](vv2) then
climax=vv1
else
climax=0
endif
if vv3=highest[20](vv3) then
chum=vv1
else
chum=0
endif
if vv2=highest[20](vv2) and vv3=highest[20](vv3) then
chumclim=vv1
else
chumclim=0
endif
if vv3=lowest[20](vv3) then
lowchum=vv1
else
lowchum=0
endif

REM RSI

rialzo=MAX(0,Customclose-Customclose[1])
ribasso=MAX(0,Customclose[1]-Customclose)
mmRialzo=wilderaverage[period](rialzo)
mmRibasso=wilderaverage[period](ribasso)
RS=mmRialzo/mmRibasso
mioRSI=100-100/(1+RS)

avolume=average[Oshift](volume)

If Barindex<Oshift then
mioRSI2=undefined
else
avolume=avolume[1]
mioRSI2=((mioRSI/100)*Vshift)*avolume
endif

avRSI=average[period*2](mioRSI2)
mRSI=avolume*(Vshift/2)

mioMax=(RSIMassimo/100)
mioMin=(RSIMinimo/100)
RSImin=(avolume*Vshift)*mioMin
RSIMax=(avolume*Vshift)*mioMax




return vv1 coloured(0,204,204) as "volume",lowvol coloured(204,204,0) as "Low-V Low-R",climax coloured(255,0,0) as "climax High-V High-R",chum coloured(0,204,0) as "High-V Low-R",lowchum as "Low-V High-R",chumclim coloured(204,0,204) as "climax High-V Low-R",vv4 as "average", mioRSI2 as "RSI", avRSI as "Media RSI", RSImin as "Ipervenduto", mRSI as "RSI 50", RSIMax as "Ipercomprato"
 
Black oggi è SABATO

Si vede che sei in vacanza :lol: :lol: :lol:

Questo ilare intervento si auto distruggerà a breve

ciao super Tetsuo :)
volevo continuare la discussione anche su IO


se mi dai una mano mica mi offendo :D

d'altra parte tante delle formule sono state riviste o create da te !

buona domenica ... ops buon sabato a te :up:


Tetsuo, visto che tu sei ben più bravo di me a programmare, perchè non apri tu una discussione sulla programmazione prt, sarebbe utile a molti penso :)
 

Users who are viewing this thread

Back
Alto