R:历史数据回测(一)

一、从本地CSV文件导入数据

文件形式如下: 输入图片说明

上图是道琼斯工业指数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

二、交易策略

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

三、画出策略收益图

charts.PerformanceSummary(ret)

# 最上面的板块是积累收益,相当于对cumprod(1+ret)的绘图;
# 第二个是日收益,相当于对ret原始收益数据的绘图;
# 最下面的是下跌图(又称“水下图”),将下跌成分独立绘出,有助于我们分析亏损状况和研究弥补措施。

输入图片说明

转载于:https://my.oschina.net/u/3093769/blog/919526

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值