1、从本地CSV文件导入数据code
文件形式以下: orm
上图是道琼斯工业指数16年到当前的数据。包括开/高/低/收盘价的数据。图片
library(PerformanceAnalytics) library(quantmod) library(xts) stockdata<-as.xts(read.zoo("C:/Users/steph/Desktop/visual/US30.csv",sep=",",,header=T)) dim(stockdata) [1] 372 4 head(stockdata,3) OPEN HIGH LOW CLOSE 2016-01-04 17436 17486 16945 17183 2016-01-05 17186 17244 17033 17159 2016-01-06 17161 17183 16811 16935 tail(stockdata,3) OPEN HIGH LOW CLOSE 2017-06-08 21170.5 21267.5 21137.0 21198.1 2017-06-09 21141.5 21302.0 21130.5 21254.3 2017-06-12 21246.0 21261.0 21225.5 21242.0
2、交易策略it
close<-stockdata$CLOSE mv5<-SMA(close,5) #计算周期为5的移动平均线 sig<-ifelse(close<mv5,1,0) #收盘价大于mv5,则买入,标记为1;不然标记为0。 sig<-Lag(sig) ##将该序列向“过去”延迟一天 roc<-ROC(type='discrete',close) ret<-roc*sig
3、画出策略收益图form
charts.PerformanceSummary(ret) # 最上面的板块是积累收益,至关于对cumprod(1+ret)的绘图; # 第二个是日收益,至关于对ret原始收益数据的绘图; # 最下面的是下跌图(又称“水下图”),将下跌成分独立绘出,有助于咱们分析亏损情况和研究弥补措施。