forked from bertomartin/stat4701
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tests.R
44 lines (33 loc) · 1.09 KB
/
tests.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
require("ggplot2")
period <- GSPC['2009-06-01/2010-09-01']
period_closing <- Cl(period)
indicatorValuesBBands <- BBands(Cl(period), n=20, sd=2)
periodRSI <- CCI(period)
################################# strategy 1: DVI ########################
require(quantmod)
require(PerformanceAnalytics)
#step 1: Get Data
getSymbols("^GSPC")
gspc <- GSPC['2014-01-01/2015-03-16']
#step 2: create indicator
dvi <- DVI(Cl(gspc))
sig1 <- ifelse(dvi$dvi < 0.5, 1, -1)
sig <- Lag(sig1)
################## strategy 2: open/close #############
getSymbols("^GSPC", from = '2007/01/01')
retVec=Delt(Op(GSPC),Cl(GSPC))
################## experiments ###################
# https://tradingposts.wordpress.com/2013/06/page/2/
getSymbols("^GSPC", from = '2007/01/01')
vol=volatility(GSPC,n=25,N=252,calc="close")
chartSeries(vol)
########### strategy 1 ########
getSymbols("^GSPC", from = '2007/01/01')
SPY <- GSPC['2007-01-01/']
retVec=Delt(Op(SPY),Cl(SPY))
#strategy
binaryVec=lag(ifelse(Cl(SPY)>Op(SPY),1,0),1) #buy or stay out
#calculate returns.
stratVec=retVec*binaryVec
#chart returns
charts.PerformanceSummary(stratVec)