Metastock e Divergenza

  • ANNUNCIO: Segui le NewsLetter di Borse.it.

    Al via la Newsletter di Borse, con tutte le notizie quotidiane sui mercati finanziari. Iscriviti per rimanere aggiornato con le ultime News di settore, quotazioni e titoli del momento.
    Per iscriverti visita questo link.

Registrato
24/7/04
Messaggi
2.456
Punti reazioni
114
Buongiorno a tutti, una cortesia:
sapete come esprimere la formula nel Metastock che indichi e trovi una divergenza esempio tra prezzo e stoch.?
oppure tra prezzo e Rsi o prezzo/macd, con qualunque indicatore.

Credo ci sia ma non la trovo, e credo vada espressa indicando un arco temporale (qualche giorno)

Grazie,
contraccambio con altre formule o domande se ne avete.
 
Eccoti servito. La formula seguente individua le divergenze tra macd, rsi, dmi e momentum. Se la studi attentamente potrai facilmente capire il meccanismo e crearti divergenze personali preferite, ad esempio con lo stocastico. Ovviamente la formula non è farina del mio sacco ma opera di Josè Silva, massimo programmatore di metastock al mondo nel mio personalissimo cartellino :bow: :bow:
Visto che vorresti contraccambiare con formule hai mica qualcosa che individua gli swing temporali di brevissimo (max 3 giorni)?
Fammi sapere.
Ciao

Formula divergenze

ind:=Input("MACD=1, RSI=2, DMI=3, Mom=4",1,4,1);
pds:=Input("indicator periods",2,2520,10);
f:=Input("price field: Close=1, High/Low=2",1,2,1);
Ch:=Input("peak/trough depth minimum (0-100%)",0,100,0)/100;
shift:=Input("shift signals back to match divergences=1",0,1,0);

{y:=insert any indicator or Fml("formula name")}
y:=If(ind=1,MACD(),If(ind=2,RSI(C,pds),
If(ind=3,DMI(C),Mo(C,pds))));

xu:=If(f=1,C,H);
xd:=If(f=1,C,L);
Pkx:=xu<Ref(xu,-1) AND Ref(xu,-1)>Ref(xu,-2)
AND Ref(xu,-1)>=(xu+Ref(xu,-2))/2*(1+Ch);
Pkx1:=ValueWhen(1,Pkx,Ref(xu,-1));
Pkx2:=ValueWhen(2,Pkx,Ref(xu,-1));
Trx:=xd>Ref(xd,-1) AND Ref(xd,-1)<Ref(xd,-2)
AND Ref(xd,-1)<=(xd+Ref(xd,-2))/2*(1-Ch);
Trx1:=ValueWhen(1,Trx,Ref(xd,-1));
Trx2:=ValueWhen(2,Trx,Ref(xd,-1));

Pky:=y<Ref(y,-1) AND Ref(y,-1)>Ref(y,-2)
AND Ref(y,-1)>=(y+Ref(y,-2))/2*(1+Ch);
Pky1:=ValueWhen(1,Pky,Ref(y,-1));
Pky2:=ValueWhen(2,Pky,Ref(y,-1));
Try:=y>Ref(y,-1) AND Ref(y,-1)<Ref(y,-2)
AND Ref(y,-1)<=(y+Ref(y,-2))/2*(1-Ch);
Try1:=ValueWhen(1,Try,Ref(y,-1));
Try2:=ValueWhen(2,Try,Ref(y,-1));

0;
Ref(Trx AND Try AND Trx1<Trx2
AND Try1>Try2,shift)
-Ref((Pkx AND Pky AND Pkx1>Pkx2
AND Pky1<Pky2),shift)
 
Ciao Vyncy, molto gentile,

non riesco pero' a capire come utilizzarla,
credo vada inserito tutto cio' che mi hai scritto nelle 'formule', o no?
E poi per testarla col system tester?

So usare un poco mtsk anche se non sono espertissimo

E' vero: vorrei esattamente scrivere divergenza tra prezzo-close e lo stocastico, decidendo di volta in volta un arco temporale.
Mi daresti un aiutino a inserirla nel mtsk?

Per lo swing non saprei, pero' ti giro sito dove trovo mote formule, e io cerchero' notizie o siti di SIlva come hai scritto tu.

http://trader.online.pl/MSZ/!-MSZ-index-pl.html

Ok ringraziandoti, provo a rivedere la formula e attendo tue news, non riesco a capire come copiarla.
ciao
 
Ok ringraziandoti, provo a rivedere la formula e attendo tue news, non riesco a capire come copiarla.
ciao[/QUOTE]

Ovviamente questa è una formula da copiare nell'indicator builder dove, una volta plottata all'interno di una finestra, restituisce un valore di +1 o -1 quando si verifica la divergenza. Per inserirla all'interno del system tester il discorso si complica molto di più perchè lì devi creare una strategia. Quindi devi prima scegliere la divergenza che vuoi usare, crearti l'indicatore apposito e poi inserire le formule nel system tester.
 
certo, mi spiego meglio:

ho fatto copia incolla della tua fornula nell indicator builder,
ma va in errore quando do OK.

ho altre formule te ne giro una (ma le sto verificando un po' tutte) per cercare la migl. divergenza, questa è tra clos e stoch :

Correl(((Sum(Cum(1)*(Stoch(14,3)),100))-(Sum(Cum(1),100)*
Sum((Stoch(14,3)),100)/100))/((Sum(Power(Cum(1),2),100))
-(Power(Sum(Cum(1),100),2)/100)),
((Sum(Cum(1)*C,100))-(Sum(Cum(1),100)*Sum(C,100)/100)) / ((Sum(Power(Cum(1),2),100))-(Power(Sum(Cum(1),100),2)/100)),12,0)

e funziona (nel senso che la accetta l'indicator builder),
ma la tua no: dice 'the variable or expression must contain only constant data'

Forse l'hai scritta male in qualche riga?
provala per favore

grazie
 
stefano, la funzione delmeta standard per il riconoscimento delle divergenze è

DIVERGENCE


questo riga ad esempio ti segnala con una candela(se inserita nella sezione HIGHLIGHTS dell EXPERT ADVISOR) che cè una divrgenza PREZZO / STACASTICO settato a 10.3 del 3%

Divergence(Stoch(10, 3), (CLOSE),3);

OK!
 
certo, grazie
quella la conosco.

Piu' difficile, e non so come esprimerla, è dire al metastock
di individuare divergenze NON solo nella candela odierna, ma in qualcosa di piu' lungo periodo, la formula scritta sopra la trova SOLO riferito al prezzo di oggi,

visivamente io noto divergenze tra indicatori e prezzo tracciando rette sui picchi nell'arco di una dozzina di candele ad esempio.
Esprimere questo in automatico credo sia dura, no?
Si potrebbe tentare con la stessa formula mettendo Mov(Indicatore(parametro),periodo) , Mov (CLose,periodo,S) , %)

cioè stessa formula ma con le medie !

Mah...non so' se si riesca in questo modo, cosa ne dite?
ciao e grazie
 
stefano3 ha scritto:
certo, grazie
quella la conosco.

Piu' difficile, e non so come esprimerla, è dire al metastock
di individuare divergenze NON solo nella candela odierna, ma in qualcosa di piu' lungo periodo, la formula scritta sopra la trova SOLO riferito al prezzo di oggi,

visivamente io noto divergenze tra indicatori e prezzo tracciando rette sui picchi nell'arco di una dozzina di candele ad esempio.
Esprimere questo in automatico credo sia dura, no?
Si potrebbe tentare con la stessa formula mettendo Mov(Indicatore(parametro),periodo) , Mov (CLose,periodo,S) , %)

cioè stessa formula ma con le medie !

Mah...non so' se si riesca in questo modo, cosa ne dite?
ciao e grazie


intendo benissimo il tuo quesito e credo che per risolverlo sia necessario usare la funzione PEAK per stabilire appunti i punti estremi tra funzione indicatore e funzione prezzo.

come vedi nel listato postati sopra da vincy si leggono benissimo le funzioni di cui ti parlo sopra OK!
 
Ultima modifica:
Indietro