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原始收益數據的繪圖; # 最下面的是下跌圖(又稱「水下圖」),將下跌成分獨立繪出,有助於咱們分析虧損情況和研究彌補措施。