Ho costruito un indicatore che per ogni candela riporta la variazione del close rispetto all’open dell’anno passato nella corrispondente candela dell’anno in corso (esempio il 3/3/23 ho un valore pari alla variazione % del close dal 3/3/22 a inizi 22 (in realtà è il numero della candela progressiva dell’anno che fa testo). Ho poi plottato con la stessa logica i punti successivi alla data odierna. E’ possibile congiungerli con un comando grafico. Allego anche il cofdice
DEFPARAM DRAWONLASTBARONLY=TRUE
//
// SETTAGGIO S&p500 INDEX
//
once a2022=251
once a2021=252
once a2020=253
once a2019=252
once a2018=251
once a2017=251
once a2016=252
once a2015=252
once a2014=252
once a2013=252
once a2012=250
once a2011=252
once a2010=252
once a2009=252
once a2008=254
once a2007=251
once a2006=251
once a2005=252
once a2004=252
once a2003=252
//
ONCE Conto = 0
IF OpenYear <> OpenYear[1] THEN
Conto = 0
ENDIF
Conto = Conto + 1
if conto=1 then
annoprec=close[1]
endif
varpercanno=(close-annoprec)/annoprec*100
Closemedia1=varpercanno[A2022]
// "PROIEZIONE ANNO"
for i=1 to 50
k=a2022-i
valore=varpercanno[k]
DRAWPOINT(barindex+i, valore, 1) coloured (0,0,0)
//DRAWTEXT("Valore = #valore#", barindex+60, valore)coloured (0,0,0) TEST PER DEBUG VALORE
next
DRAWTEXT("Valore progressiva % anno prec.", barindex+80, valore)coloured (0,0,0)
//
RETURN Closemedia1 AS "1 anno"
Eccolo:
DEFPARAM DRAWONLASTBARONLY=TRUE
//
// SETTAGGIO S&p500 INDEX
//
once a2022=251
once a2021=252
once a2020=253
once a2019=252
once a2018=251
once a2017=251
once a2016=252
once a2015=252
once a2014=252
once a2013=252
once a2012=250
once a2011=252
once a2010=252
once a2009=252
once a2008=254
once a2007=251
once a2006=251
once a2005=252
once a2004=252
once a2003=252
//
ONCE Conto = 0
IF OpenYear <> OpenYear[1] THEN
Conto = 0
ENDIF
Conto = Conto + 1
if conto=1 then
annoprec=close[1]
endif
varpercanno=(close-annoprec)/annoprec*100
Closemedia1=varpercanno[A2022]
// "PROIEZIONE ANNO"
for i=1 to 50
k=a2022-i
valore=varpercanno[k]
//DRAWPOINT(barindex+i, valore, 1) coloured (0,0,0)
IF i = 1 THEN
DrawSegment(barindex, Closemedia1, BarIndex+i,valore) coloured (0,0,0)
ELSIF i > 1 THEN
DrawSegment(barindex+i-1, Prec, BarIndex+i,valore) coloured (0,0,0)
ENDIF
Prec = valore
//DRAWTEXT("Valore = #valore#", barindex+60, valore)coloured (0,0,0) TEST PER DEBUG VALORE
next
DRAWTEXT("Valore progressiva % anno prec.", barindex+80, valore)coloured (0,0,0)
Grazie, perfetto! Se volessi mantenere comunque i punti o usare un diverso spessore per differenziare il passato dal futuro sarebbe possibile farlo?
Se vuoi anche i punti basta che togli i commenti dalla riga 42.
Mi sono accorto adesso che avevo tagliato l’ultima riga, credo tu l’abbia capito e l’abbia ricopiata esattamente com’era, quella non cambia.
Ecco come stampare il segmento aggiungendo STYLE per lo spessore (può andare da 1 a 5, comunque vedi https://www.prorealcode.com/documentation/style/):
DrawSegment(barindex+i-1, Prec, BarIndex+i,valore) style(Line,1) coloured (0,0,0)
ovviamente anche sull’altra riga basta che metti style(Line,1) nella stessa posizione.
Si mi ero accorto, grazie. Tutto chiarissimo perfetto