R语言动量交易策略分析

原创 2016年05月31日 21:41:33

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<-1
library(quantmod)
getSymbols("GOOG",src="yahoo",from="2016-01-01", to='2016-05-30') 
#显示一下数据看看
#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-1))-1
#na.pad表示是否包含NA,默认是值TRUE。

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

n<-1
library(quantmod)
getSymbols("GOOG",src="yahoo",from="2016-01-01", to='2016-05-30') 
#显示一下数据看看
#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-30') 
chartSeries(GOOG,theme = 'white',name='谷歌',up.col = 'red',dn.col = 'green')
#显示一下数据看看
#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")




通常情况下,动量指标的值大于零意味着股票持续上涨,是买入信号;动量指标的值小于零意味着股票持续下跌,是卖出信号。

当然需要跟其他信号结合来进行买入卖出点的评测,从谷歌的动量变化率看不出来明显的买卖点判断。

利用R语言编写量化投资策略

选取一股票,利用R语言进行分析,同时构建通道突破,双均线交叉和MACD策略,进行回测。 library(xts) library(xtsExtra) library(quantmod) ...
  • newusb
  • newusb
  • 2015年10月27日 10:39
  • 2581

R语言 柱状图与折线图 趋势图 highcharter (hc_yAxis_multiples)图

首先,本人无任何编程经验,纯自学R语言,所以文章有不足之处还请指出。 1.用到几个包:library(RJDBC);library(highcharter) 2.最近领导对可视化方面有所要求...
  • happy_quanquanj
  • happy_quanquanj
  • 2016年11月04日 09:50
  • 1812

利用R语言编写量化投资策略

选取一股票,利用R语言进行分析,同时构建通道突破,双均线交叉和MACD策略,进行回测。 library(xts) library(xtsExtra) library(quantmod) lib...
  • SunnyGabriella
  • SunnyGabriella
  • 2017年04月26日 20:49
  • 288

R语言绘制布林带通道

使用R语言绘制布林带通道。
  • superdont
  • superdont
  • 2016年06月09日 12:21
  • 10407

R-xts()时间序列

xts() 1. 所属包:xts > install.packages("xts") > library(xts) 载入需要的程辑包:zoo 载入程辑包:‘zoo’ 下列对象被屏蔽...
  • u012543538
  • u012543538
  • 2013年12月02日 22:45
  • 4966

R语言学习之<xts时间序列>

可扩展的时间序列xts R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。 R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发...
  • bgk083
  • bgk083
  • 2015年12月02日 11:41
  • 4827

量化交易 Alpha Algo 1. 简单的双均线策略

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def init(context):     context.st...
  • wzb19940510
  • wzb19940510
  • 2017年04月22日 12:36
  • 681

R语言对高频交易订单流进行建模分析 4

一、实验介绍--订单流模型拟合 1.1 实验知识点 指数核 hawkes 过程拟合正反馈强度分析订单量影响分析 1.2 实验环境 R 3.4.1Rstudio 二、订单流模型拟合 ...
  • oxuzhenyi
  • oxuzhenyi
  • 2017年08月25日 20:05
  • 571

海龟交易系统R代码

著名的商品投机家理查德丹尼斯想弄清楚伟大的交易员是天生造就的还是后天培养的。为此,在1983年他招募了13个人,教授给他们期货交易的基本概念,以及他自己的交易方法和原则。 学员们被称为海龟(丹尼斯先生...
  • u014032673
  • u014032673
  • 2015年04月12日 10:58
  • 1055
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:R语言动量交易策略分析
举报原因:
原因补充:

(最多只允许输入30个字)