buongiorno
vorrei sapere se è possibile trascrivere il seguente indicatore da linguaggio Metastock a linguaggio ProRealtime :
{*******************************}
fwPds:=15;
proj:=2;
pds:=1;
ma:=Mov(C,pds,S);
{ Automatic period-centering }
center:=LastValue(If(fwPds<0,Int(pds/2),fwPds));
{ Forward-referenced MovAvg }
fwd:=Ref(ma,center);
{ Last valid MovAvg plot point }
valid:=Cum(IsDefined(fwd))
=LastValue(Cum(IsDefined(fwd)));
valid:=valid AND Alert(valid=0,2);
{ Extend last MovAvg plot to future null zone }
xtend:=LastValue(fwd+PREV-PREV);
{ Restrict invalid initial MovAvg plot }
movAvg:=Ref(Ref(xtend,pds-1),-pds+1);
{ Last MA known direction & future projection }
init:=Cum(IsDefined(movAvg))=1;
direction:=movAvg+
If(IsUndefined(fwd),
ValueWhen(1,init OR valid,movAvg)-
ValueWhen(1,init OR valid,Ref(movAvg,-1)),0)
*BarsSince(init OR valid);
{ Choose Centered MovAvg type }
GRAFICO:=If(proj=1,direction,movAvg);
Mov(GRAFICO,30,S);
{****************************************************}
Cordiali saluti
rogerc
Nicolas si occupa delle conversioni, ma adesso non può farle, se tra una decina di giorni non hai avuto una risposta fai un post di sollecito (sempre qui) per rammentarglielo.
Grazie.
Ciao, hai uno screenshot di come dovrebbe apparire questo indicatore per favore? Perché penso che tracci nel futuro ..
buongiorno Nicolas
allego un’ immagine dell’ indicatore in questione , che è colorato in blu.
Ho aggiunto delle bande di volatilità che sono colorate in rosso.
Mov(GRAFICO,30,S)+2.5*ATR(30);
Mov(GRAFICO,30,S)-2.5*ATR(30);
Mov(GRAFICO,30,S)+1.25*ATR(30);
Mov(GRAFICO,30,S)-1.25*ATR(30);
Come si vede , con un buon settaggio , le bande esterne sfiorano sempre i massimi e i minimi.
Sarebbe interessante poterlo plottre sui grafici di ProRealtime.
Ti ringrazio per la risposta.
Saluti
rogerc
Ecco il codice tradotto e con le bande ATR come richiesto:
fwPds=15
pds=1
ma=average[pds](close)
//{ Automatic period-centring }
If(fwPds<0) then
centr=round(pds/2)
else
centr=fwPds
endif
if barindex>centr then
fwd=average[centr](ma)
xtend=fwd+xtend[1]-xtend[1]
movAvg=(xtend[pds-1])[-pds+1]
c = average[30](movavg)
endif
atr=AverageTrueRange[30]
u1=c+atr*2.5
d1=c-atr*2.5
u2=c+atr*1.25
d2=c-atr*1.25
return c,u1,u2,d1,d2
buongiorno Nicolas
Ti ringrazio per la risposta.
Allego due immagini relative al titolo di esempio LEG di SP500
Ho caricato il tuo lavoro e ho riscontrato significative differenze fra le due immagini allegate.
La linea blu in ProR sembra più una media normalissima e non una centrata rispetto alla chiusura (linea nera in ProR) .
Le bande non si comportano come in MS :
la chiusura(linea nera in ProR) deborda abbondantemente oltre la banda superiore o inferiore e il timing di sforamento non è il medesimo di MS.
Grazie comunque
rogerc
allego immagine del titolo LEG in Metstock che non era stata accettata nel mex precedente
saluti
rogerc
Sì, questo è quello che ho detto in uno dei miei primi messaggi, sembra estremamente accurato nel tuo altro software perché "ridimensiona", il codice conosce già il futuro, quindi le curve sanno esattamente dove sarà il prezzo futuro e quindi accontenteranno i loro calcoli . Con ProRealTime, non è possibile conoscere in anticipo il futuro del prezzo. Guarderei il mio codice per sapere se non ho commesso errori.