Sono un neofita dei codici e non riesco a sviluppare il codice per un sistema concettualmente molto semplice.
È un piano di accumulo che penso possa sfruttare meglio il bias rialzista dell’azionario americano.
Vorrei fare questo:
– se il prezzo, durante l’anno, scende sotto x% (che decido io) rispetto alla open del primo giorno dell’anno compra a mercato
– fai questo ogni mese o settimana (lo decido io)
– vendi tutto all’apertura dell’ultimo giorno dell’anno
Fattibile?
Grazie mille
Ciao
Giuseppe
Come TF di verifica per l’entrata ho messo il settimanale (Weekly), ma puoi cambiarlo in mensile (Monthly) o giornaliero (Daily).
Per uscire l’ultimo giorno devi dare l’ordine il penultimo, Siccome non si può sapere quand’è in automatico, devi metterlo te, ogni anno, msnualmente nel TF giornaliero.
(non l’ho provato):
Defparam CumulateOrders = false
Timeframe(Daily,UpdateOnClose)
Once OpenAnno = open
Once PerCent = 10 //10% discesa
Once Entrata = OpenAnno * (100 - PerCent) / 100
If OpenYear <> OpenYear[1] then
OpenAnno = open
Entrata = OpenAnno * (100 - PerCent)
/ 100
//
Timeframe(Weekly,UpdateOnClose)
If close <= Entrata and not OnMarket then
Buy 1 contracts at Market
Endif
//
Timeframe(Daily,UpdateOnClose)
If OpenDate = 20211229 Then
Sell at Market
Endif
Scusami, l’avevo scritto senza accumulo (inoltre mancava un ENDIF).
Eccolo la versione corretta (e provata), con alcune modifiche:
Defparam CumulateOrders = true
Timeframe(Daily,UpdateOnClose)
Once OpenAnno = open
Once PerCent = 10 //10% discesa
Once Entrata = OpenAnno * (100 - PerCent) / 100
If OpenYear <> OpenYear[1] then
OpenAnno = open
Entrata = OpenAnno * (100 - PerCent) / 100
Endif
//
Timeframe(Weekly,UpdateOnClose) //oppure Daily o Monthly
Segnale = (close <= Entrata)
If Segnale then
Buy 1 contracts at Market
Segnale = 0
Endif
//
Timeframe(Daily,UpdateOnClose)
If OpenMonth = 12 AND OpenDay > 26 Then
Sell at Market
Entrata = 0
Endif
//graph CountOfPosition
//graph PositionPerf
//graphonprice PositionPrice coloured(0,0,255,255)
Ottimo! Grazie Roberto
Si riesce a fargli fare il backtest pluriennale? L’ha eseguito nel 2020 e mi piacerebbe vedere l’equity curve di lungo periodo. Non riesco a capire se devo intervenire su qualche comando o se la cosa non sia proprio fattibile.
Grazie mille comunque
ciao
giuseppe
Aumenta le unità di tempo sul grafico, scegli 100K o più.