Salve a tutti.
Innanzitutto un ringraziamento per il thread, in particolare a SURCONTRE e a CREN.
Mi sto avvicinando a R e sto utilizzando questo trhread a scopi didattici.
Ho creato un piccolo listato (cannibalizzando un listato di ender85) per vedere, con esempi concreti, di impratichirmi su R.
require(quantmod)
require(PerformanceAnalytics)
#scarico i dati da oanda
getSymbols("EUR/USD",src="oanda",from="2013-01-01")
forex13 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2012-01-01",to="2012-12-31")
forex12 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2011-01-01",to="2011-12-31")
forex11 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2010-01-01",to="2010-12-31")
forex10 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2009-01-01",to="2009-12-31")
forex09 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2008-01-01",to="2008-12-31")
forex08 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2007-01-01",to="2007-12-31")
forex07 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2006-01-01",to="2006-12-31")
forex06 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2005-01-01",to="2005-12-31")
forex05 <- EURUSD
getSymbols("EUR/USD",src="oanda",from="2004-01-01",to="2004-12-31")
forex04 <- EURUSD
#li unisco
forex<-rbind(forex04,forex05,forex06,forex07,forex08,
forex09,forex10,forex11,forex12,forex13)
#estrapolo chiusure
chiusura<- forex$EUR.USD
sd20<- runSD( chiusura,20 ) #calcolo SD a 20 periodi
media20<- runMean( chiusura, 20 ) #calcolo SD a 20 periodi
segnale<- ifelse(((chiusura-media20)/sd20) > 1 ,1,0) #valuto se prezzo > 1 dev st. se si entro long, se no flat
ritorni<- ROC(chiusura)*Lag(segnale,1) #calcolo rendimento barra successiva al segnale (lag 1 )
equity <- cumsum(na.omit(ritorni)) #calcolo equity e tabelle dd
plot(equity)
table.Drawdowns(ritorni, top=10)
charts.PerformanceSummary(ritorni)
Vorrei sapere:
è corretta la logica ? (il mio timore sono le corrispondenze prezzo/Mean/SD ..) e il lag nel calcolo del rendimento....
Se volessi andare anche short dovrei nidificare l'IF ?? O avete qualche suggerimento più "elegante" ?
Grazie.
m67