snp<- span="" style="color: #9cdcfe;">getSymbols->
ret<- span="" style="color: #9cdcfe;">snp->
[,4]-snp[,1])/snp[,1]
ret = ret['2007-01-01/2017-04-28']
y=ret
y[y>0.000]=1
y[y<=0.000]=0
x = Lag(y, k=1)
for(i in 2:5)
{
x = cbind(x,Lag(y,k=i))
}
data = cbind(y, x,ret)
data<- span="" style="color: #dcdcaa;">na.omit->
(data))
inputs <- span="" style="color: #9cdcfe;">data->
[,2:5]
outputs <- span="" style="color: #9cdcfe;">data->
[,c(1,7)]
datacnt = length(outputs[,1])
outsvm = c()
n_train = 30
for(i in n_train : (datacnt-1))
{
train = c((i-n_train+1):i)
fitsvm<- span="" style="color: #9cdcfe;">svm->
(inputs[train,],outputs[train,1], kernel='linear')
predsvm <- span="" style="color: #dcdcaa;">predict->
(fitsvm, inputs[i+1,])
actual <- span="" style="color: #9cdcfe;">outputs->
[i+1,2]
outsvm = rbind(outsvm, c(date=rownames(as.data.frame(inputs)[i+1,]),pred=predsvm,act=actual))
print(paste(sep="", as.character((i-n_train+1)/(datacnt-n_train-1)*100),"% done"))
}
simData=as.matrix(outsvm,ncol=3)
simData[,2][as.double(simData[,2])>=0.5]=1
simData[,2][as.double(simData[,2])<0.5]=0
simData[,3] = as.double(simData[,3])
ret = as.numeric(simData[,2])*as.numeric(simData[,3])
ret = as.data.frame(ret)
rownames(ret) = simData[,1]
portCumRet = exp(cumsum(ret))
chartSeries(portCumRet)
simData=as.matrix(outsvm,ncol=3)
simData[,2][as.double(simData[,2])<0.5]=-1
simData[,2][as.double(simData[,2])>=0.5]=0
simData[,3] = as.double(simData[,3])
ret = as.numeric(simData[,2])*as.numeric(simData[,3])
ret = as.data.frame(ret)
rownames(ret) = simData[,1]
portCumRet = exp(cumsum(ret))
chartSeries(portCumRet)
A graph of the second strategy looks really horrible.
Wish you guys have a beautiful one.
Sorted
-reference-
http://blog.naver.com/htk1019/220911828081
Thx, Geetha.
ReplyDeleteUnfortunately, I would not manage machine learning related investment now.
Currently, I have been upgrading KOSPI index forecast model.
However, I appreciate your kindness.
Sincerely
ForecastJ