Questo è il mio ultimo codice, con alcune variazioni in modo che funzioni anche con i timeframe intraday (purché sul grafico ci sia un numeri di unità sufficienti a fare i calcoli del settimanale). Io l’ho provato sia sul Daily che su 4 ore, 1 ora e 15 minuti (quest’ultimo necessita di circa 10K unità per funzionare).
Una delle variazioni che ho fatto è stata quella di togliere il numero dei decimali per gli arrotondamenti:
defparam drawonlastbaronly = true
timeframe(Weekly,UpdateOnClose)
atr=ROUND((AverageTrueRange[14](close)[1]))
Timeframe(default)
upperlvl = floor(low+atr,1)
lowerlvl = floor(high-atr,1)
drawsegment(barindex+1,upperlvl,barindex+4,upperlvl) style(line,3) COLOURED(255,0,255,255)
drawsegment(barindex+1,lowerlvl,barindex+4,lowerlvl) style(line,3) COLOURED(255,0,255,255)
return
Quanto al tuo ultimo codice, mettendo 24h al posto di Daily, con l’aggiunta di updateonclose, si ottiene un valore che diifferisce di solo qualche decimale:
defparam drawonlastbaronly = true
TIMEFRAME(24h,updateonclose)
ATRD = AverageTrueRange[14](close)[1]
Timeframe(default)
upperlvl = (Dlow(0)+ ATRD)
lowerlvl = (Dhigh(0)-ATRD)
drawsegment(barindex+1,upperlvl,barindex+4,upperlvl) style(line,2) COLOURED(255,0,255,255)
drawsegment(barindex+1,lowerlvl,barindex+4,lowerlvl) style(line,3) COLOURED(255,0,255,255)
DRAWTEXT("ATR =#ATRD#" ,barindex+8,Dlow(0),SansSerif,Bold,12)
return
non conosco il motivo di tali differenze, anche se lievi e del perché non funzioni con DAILY, credo sia opportuno che tu chieda all’assistenza PRT, premendo Ctrl+M dalla piattaforma o telefonandogli.