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")




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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ymPrompt 提示组件

===============组件使用简要介绍===============1、在页面中引入ymPrompt.js。如: 2、在页面中引入对应的皮肤文件的CSS,如:3、自定义组件的默认

opencv学习笔记(1)--深度解析Mat

一、首先我们先看什么是Mat: Mat类的对象用于表示一个多维度的单通道或者多通道稠密数组,它可以用来存储:实数值或复合值向量、矩阵、灰度图或者彩色图、立体元素、矢量场、点云、张量、直方图。可见Mat...

ubuntu安装GTK2.0

1、安装gcc/g++/gdb/make 等基本编程工具 sudo apt-get install build-essential 2、安装 libgtk2.0-dev libglib2....

OpenCV-Python教程(6、Sobel算子)

本篇文章介绍如何用OpenCV-Python来使用Sobel算子。 提示: 转载请详细注明原作者及出处,谢谢! 本文介绍使用OpenCV-Python实现基本的滤波处理本文不介详细的...

Ubuntu 16.04 python和OpenCV安装

最进在做深度学习和计算机视觉的有关内容,因此要在python中用到opencv。我的电脑装的是Ubuntu 16.04,python 2.7和OpenCV 3.2.0 。按照官网的安装方法出了个问题,...
  • cyn618
  • cyn618
  • 2017-03-21 20:00
  • 2005

冒险岛外挂

1:解压冒险岛外挂下载压缩包2:运行冒险岛外挂文件里的文件3:运行游戏4:登陆你的帐号选择人物5:进入游戏 F11呼出冒险岛外挂6:冒险岛外挂会自动运行
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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