Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (3 lettori)

cammello

Forumer storico
Anche se non riuscissi grazie per la disponibilità
lo avevo da qualche parte sul pc, lo sheet LR è la base di quello che cerchi.

L'esempio si basa su:
- dati minifib scaricati da yahoo (nel primo sheet c'è la web query)
- ZeroLag function di Ehlers (specificata pedestremente nel secondo sheet, ma se googli trovi molto)
- In Today hai la web query che legge i dati "odierni" da yahoo e li mette nella data "odierna" dello sheet LR (per i dati passati, primo sheet)
- Time Series forecast che chiamo LR, come somma di Coeff e Intercetta, applicati allo Zero Lag. I valori sono gli stessi che si otterrebbero con Prorealtime.

Basta modificare il riferimento della array formula per farlo calcolare su quello che vuoi, per esempio la chiusura. Analogamente per la durata, che nel tuo caso vuoi a 12 e 26 periodi.

La formula
=LINEST(G2:G6;;;1)
è una funzione di array, se la vuoi modificare ricorda di immettere con CTRL-SHIFT-INVIO. Se non sei pratica, guarda sull'help on line di xls stesso, è ben spiegato.

Quando apri il file ti chederà di abilitare connessioni web e macro
 

Allegati

  • LR-mini.xls
    107,5 KB · Visite: 591

edvige

Il Meglio di Noi non andrà Mai perduto
lo avevo da qualche parte sul pc, lo sheet LR è la base di quello che cerchi.

L'esempio si basa su:
- dati minifib scaricati da yahoo (nel primo sheet c'è la web query)
- ZeroLag function di Ehlers (specificata pedestremente nel secondo sheet, ma se googli trovi molto)
- In Today hai la web query che legge i dati "odierni" da yahoo e li mette nella data "odierna" dello sheet LR (per i dati passati, primo sheet)
- Time Series forecast che chiamo LR, come somma di Coeff e Intercetta, applicati allo Zero Lag. I valori sono gli stessi che si otterrebbero con Prorealtime.

Basta modificare il riferimento della array formula per farlo calcolare su quello che vuoi, per esempio la chiusura. Analogamente per la durata, che nel tuo caso vuoi a 12 e 26 periodi.

La formula
=LINEST(G2:G6;;;1)
è una funzione di array, se la vuoi modificare ricorda di immettere con CTRL-SHIFT-INVIO. Se non sei pratica, guarda sull'help on line di xls stesso, è ben spiegato.

Quando apri il file ti chederà di abilitare connessioni web e macro

Grazie infinite! Ieri ho avuto problemi con il pc ma oggi faccio tutto.
 

echelon

Nuovo forumer
come posso creare un trailing stop riducendo la lunghezza della media mobile di una unità per ogni giorno in più da quando sono entrato? paro con un madia a 60gg e a 10gg dall'entrata la lunghezza dell MM è 50gg a 20 gg dall'entrata la lunghezza MM è 40
 

jxmassimo33

Forumer storico
Ciao,

se possibile vi chiedo se sapete come addolcire (smooth) la curva di un indicatore, come ad es williams% oppure un indicatore di velocita':
mcorta=Average[n,a](close)
mlunga=Average[m,a](close)
picchio=mcorta-mlunga

vel=picchio-picchio[1]
mvel=Average[l,a](vel)
miavel=zero+(vel*moltiplicatore)
miamvel=zero+(mvel*moltiplicatore)
return miavel,miamvel

su time frame a partire dai 60 minuti in giu' la curva e' molto dolce mentre sul daily e' spigolosa, ho cercato in rete ma non ho trovato nulla.

grazie e scusate il disturbo.

Ciao

Massimo
 

superrudy

Beyond good and evil
Qualcosa che guarda al futuro è questo indicatore, chiamato Lowess filter (l'ho trovato online).
E' bello ma ovviamente il problema è che ad ogni nuova candela la curva viene ricalcolata completamente.
Chiedo un favore... C'è qualcuno dei guru qui che saprebbe tradurlo in linguaggio Metatrader?

P3 input è il periodo da 21 a 51 (io preferisco 21..)

_____________________________________________
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
tra=tra+1
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 tra[p]=0 then
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
else
a=0
b=0
e=0
for i=1 to p3-tra[p]
z=barindex-i+1
a=a+w[z]
b=b+w[z]*(i)
e=e+(i)*(i)*w[z]
next
c=0
d=0
for i=1 to p3-tra[p]
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
return lowess
 

f4f

翠鸟科
Ciao,

se possibile vi chiedo se sapete come addolcire (smooth) la curva di un indicatore, come ad es williams% oppure un indicatore di velocita':
mcorta=Average[n,a](close)
mlunga=Average[m,a](close)
picchio=mcorta-mlunga

vel=picchio-picchio[1]
mvel=Average[l,a](vel)
miavel=zero+(vel*moltiplicatore)
miamvel=zero+(mvel*moltiplicatore)
return miavel,miamvel

su time frame a partire dai 60 minuti in giu' la curva e' molto dolce mentre sul daily e' spigolosa, ho cercato in rete ma non ho trovato nulla.

grazie e scusate il disturbo.

Ciao

Massimo


non so se ho capito cosa ti serve
prova a vedere se questa è utile

fisher transform

Fisher transformation - Wikipedia, the free encyclopedia

http://www.tradingsystemlab.com/files/The Inverse Fisher Transform.pdf



Fisher transformation - Wikipedia, the free encyclopedia
 

Dama di pietra

Nuovo forumer
esiste soluzione al fatto che gli indicatori ,che in entrata accettano solo numeri di tipo intero positivo, possano usare un numero che deriva da un arrotondamento? Prorealtime pare non gradire questa procedura. Grazie.
 
Qualcosa che guarda al futuro è questo indicatore, chiamato Lowess filter (l'ho trovato online).
E' bello ma ovviamente il problema è che ad ogni nuova candela la curva viene ricalcolata completamente.
Chiedo un favore... C'è qualcuno dei guru qui che saprebbe tradurlo in linguaggio Metatrader?

P3 input è il periodo da 21 a 51 (io preferisco 21..)

_____________________________________________
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
tra=tra+1
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 tra[p]=0 then
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
else
a=0
b=0
e=0
for i=1 to p3-tra[p]
z=barindex-i+1
a=a+w[z]
b=b+w[z]*(i)
e=e+(i)*(i)*w[z]
next
c=0
d=0
for i=1 to p3-tra[p]
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
return lowess


Ciao superrudy....sai perchè il codice una volta compilato mi da questo avviso che vedi nel file allegato? ciao Grazie " il parametro di tipo intero positivo è atteso conDPO"
 

Allegati

  • Immagine.png
    Immagine.png
    271,5 KB · Visite: 283

superrudy

Beyond good and evil
Gioport, l'errore sta sicuramente nella linea "de48=DPO[k*2](close)"
Se l'indicatore DPO è a posto allora l'unia spiegazione è che non hai definito la variabile di ingresso come intero. Prova a togliere la variabile e mettere direttamente nel codice alla priam linea K = 21 e vedi se ti da ancora errore.
 
Ultima modifica:

Users who are viewing this thread

Alto