程序员人生 网站导航

R语言动量交易策略分析

栏目:综合技术时间:2016-06-14 09:54:22

1.动量函数  momentum()


#动量交易策略   Momentum Trading Strategy。
#简单讲就是今天比昨天涨了多少或是低了多少;
#该理论相信,涨了还会涨,跌了继续跌。
#动量计算:p(t)-p(t-n)
#式中,p(t)是第t期的价格。
#p(t-n)是第t-m期的价格
#n是时间间隔
#计算n天的动量

#动量函数  momentum()

函数情势:momentum(x,n=1,na.pad=TRUE)

式中:
x-表示要计算的量,可以是价格或是成交量。

n-时间跨度参数,默许值是1。

na.pad-计算结果是不是包括NA,默许值是TRUE。

以谷歌在2016年至今的股票为例。

n<⑴ library(quantmod) getSymbols("GOOG",src="yahoo",from="2016-01-01", to='2016-05⑶0') #显示1下数据看看 #head(GOOG$GOOG.Close) Close<-GOOG$GOOG.Close names(Close)<-"show" tail(Close) GoogleM<-momentum(Close,n,na.pad = TRUE) tail(GoogleM)


2.动量变化率函数  ROC()


#动量计算:p(t)-p(t-n)
#动量变化率计算:  (p(t)-p(t-n))/p(t-n)
#式中,p(t)是第t期的价格。
#p(t-n)是第t-m期的价格
#n是时间间隔
#计算n天的动量变化率
#ROC(x, n=1,type=c("continuous","discrete"),na.pad=TRUE)
#x,表示价格
#n表示时间跨度
#type有两个可能值。
#type="continuous",计算:ln(p(t)/p(t-n))
#type="discrete",计算:(p(t)-p(t⑴))⑴
#na.pad表示是不是包括NA,默许是值TRUE。

设定n=1,计算1期的股价变化率,编写程序以下:

n<⑴ library(quantmod) getSymbols("GOOG",src="yahoo",from="2016-01-01", to='2016-05⑶0') #显示1下数据看看 #head(GOOG$GOOG.Close) Close<-GOOG$GOOG.Close names(Close)<-"show" tail(Close) GoogleM<-ROC(Close,n,type="continuous",na.pad = TRUE) tail(GoogleM)



3.在K线图下方显示动量变化率

这里以n=5,即5期的股价动量变化为例进行展现。

library(quantmod) getSymbols("GOOG",src="yahoo",from="2016-01-01", to='2016-05⑶0') chartSeries(GOOG,theme = 'white',name='谷歌',up.col = 'red',dn.col = 'green') #显示1下数据看看 #head(GOOG$GOOG.Close) Close<-GOOG$GOOG.Close names(Close)<-"show" tail(Cl(GOOG)) addTA(Cl(GOOG),on=1,col="black",type="l") addTA(Cl(GOOG),col="black",type="l") addTA(ROC(Cl(GOOG),n=5,type="discrete",na.pad=TRUE),col=4,type="l")


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐