Ciao a tutti, volevo postare il codice per traslare all'indietro i grafici. Non so se il problema sia gia' stato affrontato o risolto da qualcuno, spero possa essere di interesse.
Il risultato sara' qualcosa di questo tipo
Questo e' il grafico del fut eurostoxx 50, compressione 15 minuti, traslato all'indietro di un giorno.
Ecco il codice (scusate ma non riesco ad indentarlo)
REM traslazione
if (barindex <= numbarre - indietro) and (barindex > indietro) then
if indietro = 0 then
ind = close
elsif indietro = 1 then
ind = -DPO[1](close)+close
elsif indietro = 2 then
ind = 2*(-DPO[2](close)+close) - (-DPO[1](close)+close)
else
ind = (2*indietro-2)*(-DPO[2*indietro-2](close)+close) - (2*indietro-4)*(-DPO[2*indietro-4](close)+close)-close[indietro-3]
endif
ind1 = round(ind)
else
if barindex<= indietro then
ind1 = undefined
else
ind1 =ind1[1]
endif
endif
return ind1 as "traslazione"
Le variabili sono indietro e numbarre.
Un paio di spiegazioni e osservazioni:
- la variabile indietro rappresenta di quante barre vogliamo traslare indietro il grafico. Per grafici intraday consiglio di usare un multiplo intero del numero di barre presenti in un giorno di contrattazione nella compressione prescelta in modo da ritrovarsi con le ore-minuti. Ad esempio nel grafico sopra indietro vale 56, che e' esattamente il numero di barre a 15min in una giornata di contrattazione del future eurostoxx. Per grafici giornalieri non importa invece il valore che si sceglie, ovviamente i giorni risulteranno sballati
- la variabile numbarre rappresenta il numero di barre sul grafico. Per sapere quante sono consiglio di scrivere un indicatore di appoggio con la sola riga
return barindex
e' questo indicatore che si vede nel grafico sopra nell'ultima piccola finestra. Il suo ultimo valore rappresenta il numero di barre sul grafico ed e' quindi quello da inserire come valore per la variabile numbarre
- i prezzi a destra della traslazione vengono posti tutti uguali all'ultimo prezzo (spieghero' dopo il perche'), ovviamente e' possibile fare scelte diverse
- i prezzi della traslazione vengono ricostruiti partendo da delle medie, e in questa trasformazione possono sorgere dei decimali che non ci sono. Il codice qua sopra e' stato fatto per l'eurostoxx, dove i prezzi sono interi, questa e' la ragione di quel round(ind). Per altri strumenti bisognera' o togliere questa riga o studiare un'altra soluzione tramite approssimazione per far tornare esattamente i valori, onestamente non ho affrontato il problema ma credo non sia troppo difficile risolverlo con qualche prova (magari invece e' difficile, non so a dire il vero).
- per l'utilizzo intraday questo codice ha una grossa mancanza che sarebbe bello risolvere (Tetsuo?

): in pratica la traslazione non si aggiorna in real-time ma solo ogni volta che vengono inseriti i valori delle variabili. Per quello a volte faccio "su e giu'" con le variabili nella finestra delle proprieta' per far ricaricare l'ultimo valore dei prezzi. Non ci ho pensato molto tempo ma la soluzione non mi sembra immediata ... almeno per me ...
Nei prossimi post mettero' due applicazioni della traslazione: le medie mobili centrate e indicatori ciclici costruiti con esse e la proiezione nel futuro di indicatori. Sono cose che solitamente vengono fatte con excel ma grazie alla traslazione diventano possibili anche in PRT.