Вы находитесь на странице: 1из 6

1.


Q261821669,

July 31, 2017


Chapter 1

1.1 Deep Learning


R(Deep Learning)

deepnet
(Hierarchical Learning)
Bayesian
features()

features<-function(price,p = 14){

temp <- subset(price[,5:8])


Med <- (Hi(price) + Lo(price))/2
price <- cbind(temp, Med)

adx<-ADX(price, n = p)
ar<-aroon(price[ ,c(High, Low)], n=p)[ ,oscillator]
cci<-CCI(price[ ,2:4], n = p)
chv<-chaikinVolatility(price[ ,2:4], n = p)

1
cmo<-CMO(price[ ,Med], n = p)
macd<-MACD(price[ ,Med], 12, 26, 9)[ ,macd]
osma<-macd - MACD(price[ ,Med],12, 26, 9)[ ,signal]
rsi<-RSI(price[ ,Med], n = p)
stoh<-stoch(price[ ,2:4],14, 3, 3)
vol<-volatility(price[ ,1:4],n = p,calc="yang.zhang", N=96)
xavg<-EMA(price[,4],n=p)
trend<-price[,4]-xavg;
atr5<-ATR(HLC(price),5)
atr5<-atr5[,2]

Input<-cbind(adx, ar, cci, chv, cmo, macd, osma, rsi, stoh,vol,


xavg,trend,atr5)
return(Input)
}

1.2 Zigzag
Zigzag(pullback)
changedollarpercentpercent=T
ch=500*sd(na.omit(ROC(Cl(price)))) zigzag
10
trend<-function(price){
ch=500*sd(na.omit(ROC(Cl(price))))

zz<-ZigZag(Cl(price), change = ch, percent = T,


retrace = F, lastExtreme = T)
ts.plot(zz)
for(i in 1:length(zz)) { if(is.na(zz[i])) zz[i] = zz[i-1]}

dz<-c(diff(zz), NA)
sig<-ifelse(dz>0, 1, ifelse(dz<0, 0, NA))
return(sig)
}

2
1.3 DNN SAE
2011-2014xom12015-2016xom2xom1
xom2xom1featuresXxom2
features valiYxom1zigzag XY
SAEvaliSAE15-16
xom2r1.1

library(caret)
library(deepnet)
library(quantmod)
library(PerformanceAnalytics)

set.seed(1)
setwd("C:/Users/User/Dropbox/Writting Outlines/Deep Learning/")
xom1<-read.csv("XOM_110101_141231.csv",header=TRUE)
xom2<-read.csv("XOM_150101_161231.csv",header=TRUE)

training <- na.omit(cbind(features(xom1),trend(xom1)))


validation <- na.omit(features(xom2))

preProc<- preProcess(training[,-ncol(training)],
method = "spatialSign")
X <- predict(preProc, training[,-ncol(training)])
Y <- training[,ncol(training)]
vali <- predict(preProc, validation)

SAE<-sae.dnn.train(x= X, y=Y, hidden=c(50,50,50),


activationfun = "tanh", learningrate = 0.6,
momentum = 0.5, learningrate_scale = 1.0,
output = "sigm", sae_output = "linear",
numepochs = 10, batchsize = 100,
hidden_dropout = 0, visible_dropout = 0)

predict.vali <-round(nn.predict(SAE, vali))


vali.date <-as.Date(as.character(xom2$Date),format="%Y%m%d")

3
Figure 1.1:

r <-ROC(Cl(xom2))

m <- length(r)-length(predict.vali)
r <- tail(r,-m)
vali.date <- tail(vali.date,-m)
profit<-predict.vali*r
profit<-xts(profit,vali.date)
charts.PerformanceSummary(profit)

4
1.4
R
1. 2017

2. R2016

3. R

4. R

5. R

6. R

7. R

8. R

9. R

10. R

Вам также может понравиться