Ciao ragazzi,
se mi potete aiutare sono a chiedere un aiuto su un semplice codice:
A= AverageTrueRange[21](close)
Entra al prezzo di (Open di oggi + A) se il prezzo ovviamente raggiunge (Open di oggi + A).
Esci all’open del giorno dopo.
Vi ringrazio
Ciao Jim, il codice è questo
a=averagetruerange[21](close)
b=close+a
if b and not onmarket then
buy 1 shares at b stop
endif
if onmarket then
sell at market
endif
graph b
//graph segnala il close + ATR giornata precedente
Max
Grande Maximus, perfetto come sempre, ma domanda come hai fatto a dire al programma esci all’open del giorno dopo? Quale è la stringa di riferimento?
Stringhe 6-7-8, semplicemente, se sei a mercato chiude all’apertura della barra successiva (vendi a mercato nextbaropen)
ovviamente il codice che ti ho scritto lo devi usare con timeframe daily.
Max
Grazie, pensavo si dovesse specificare proprio “se sei a mercato sell next bar open” ed invece scrivendo il codice come l’hai scritto tu lo fa in automatico
Maximus, scusa se ti disturbo ancora, ho provato utilizzando il codice appena espicitato da te a sostituire nella seconda stringa open+ il valore dell’atr(21) di ieri ma non mi viene corretta l’entrata e non so come mai.
Cioè se oggi l’open è 10.000 e il valore dell’ atr21(close) di ieri è 200 vorrei entrare oggi quando il prezzo tocca 10.200 e uscire all’open dell’indomani.
Potresti aiutarmi a fare questa modifica? Ti ringrazio.
Maximus è perfetto il codice non capisco soltanto perchè se provo a sostituire l’open al close mi si sballa la somma. Perchè così come è fa la somma partendo dal close di ieri, ma se io invece voglio che la somma parta dall’open di oggi il risultato non mi torna come mai?
Ciao, credo che sia dovuto al fatto che probacktest calcola con i dati a barra conclusa per la candela successiva.
Infatti devi utilizzare la chiusura della barra precedente per l’apertura della corrente dove imposti l’ordine e se ci fai caso, l’ATR che il sistema impiega nel calcolo è quello della giornata/candela precedente.
Ho notato che graph non restituisce i valori corretti, devi scrivere:
graph (close[1]+a[1])
Max
Certo ho notato è come dici tu e quindi non è possibile fare partire il backtest dall’open di oggi diciamo?
Cioè per tradurre un semplice open(0)+ ATR(21) che formula bisogna inserire? o non si può proprio?
Il backtest lo puoi far partire da dove vuoi. Nel form di avvio del backtest indichi tu le date di inizio e fine.
Se vuoi entrare a open(0)+ ATR(21) devi scrivere
open + averagetruerange[21](close) //(0) può essere omesso
dove open fa riferimento al prezzo di apertura della barra appena chiusa. NON si può operare a candela in corso.
Si si allora era come mi aveva spiegato Max, quindi un vero backtest non si puoi fare. E’ inutile sommare ATR dall’open del giorno prima sfaserebbe tutta la strategia. Peccato, speravo ci potesse essere una soluzione. 🙁