Un saluto a tutti e ancora scusate ma il tempo è ancora poco
Ciao Cristian
non posso aiutarti molto perché con lucchetto aperto e chiuso non sono mai riuscito a fare niente
(ho anche sospettato che fosse possibile solo per chi ha il real time, cosa che non ho) ma mi sembra che nei piani di lavoro puoi salvare solo cose come colori e stile del grafico, indicatori ecc. ma non gli oggetti che disegni sul grafico (frecce, trendline ...). Insomma non penso che si possa risolvere il tuo problema ... ma invece di fare tutto a mano perché non scrivi un codice per il tuo ts usando il ProBackTest di PRT che tra l'altro ti permette di salvare i ts e riapplicarli quando vuoi?
Lo so, non basta per l'amarone, vedrò di impegnarmi di più
Ciao Clic, visto che calcoli xopen facendo riferimento al valore di xopen nella barra precedente devi dare un valore iniziale altrimenti il calcolo non partirà mai, ed infatti non ti disegna niente e anzi si pianta ...
Fai una cosa così
Codice:
if barindex = 0 then
xopen = valoreiniziale
else
xopen=(xopen[1]+close[1])/2
endif
RETURN xopen
Dove
valoreiniziale può essere o una variabile o qualcosa di calcolato sui parametri della prima barra (non so, (open + close)/2 ad esempio), vedi tu visto che non so cosa vuoi ottenere.
Con te sono in debito della traslazione del SAR, come dicevo giorni addietro avrei prima di tutto dovuto scrivere il codice per esteso del SAR. Credo di avercela fatta (a meno magari dei valori prima del primo/secondo cambio di verso, PRT li calcola in modo curioso ...). Ecco il codice, buttato giù un po' di fretta ...
Codice:
REM Codice esplicito SAR
if barindex = 0 then
ww = low
elsif barindex = 1 then
if low >= low[1] then
ww = ww[1]
ep = Max(high,high[1])
else
ww = high[1]
ep = low
colore = -1
af = valiniziale
endif
elsif barindex = 2 and ww[1] = ww[2] then
af = valiniziale
if low >= ww[1] then
ww = ww[1]
ep = Max(high,ep[1])
colore = 1
else
ww = ep[1]
ep = low
colore = -1
endif
else
ww = ww[1] + af[1]*(ep - ww[1])
if colore = 1 then
if ww > low[1]or ww > low[2] then
ww = Min(low[1],low[2])
endif
if low < ww then
ww = ep
ep = low
af = valiniziale
colore = -1
elsif high > ep then
ep = high
af = Min (af[1]+step,valmax)
endif
else
if ww < high[1]or ww < high[2] then
ww = Max(high[1],high[2])
endif
if high > ww then
ww = ep
ep = high
af = valiniziale
colore = 1
elsif low < ep then
ep = low
af = Min (af[1]+step,valmax)
endif
endif
endif
return ww
Varibili da inserire valiniziale, step, valmax che sono rispettivamente il valore iniziale dell'accelerazione, lo step con cui viene aumentata l'accelerazione, il valore massimo dell'accelerazione. I valori classici sono rispettivamente 0,02 0,02 0,2
Ecco un grafico con il Parabolic SAR di PRT con i puntini e il risultato del codice, coincidono
Per traslare il sar bisognerà mettere al posto di high e low gli high e low traslati (o almeno credo e spero) ... ma per quello ci risentiamo domani