常见的股票技术因子学习以及计算

最近在看《量化投资数据挖掘技术与实践(MATLAB版)》。学习了其中的常见的股票衍生变量,并且利用WIND金融数据终端的matlab借口windmatlab导出一些数据进行了一个简单的学习。特此记录。

  1. 下面是我对于书中提到的几个因子的学习总结:

A. 股票当日涨幅:相对于收盘价而言。其计算为:

股票当日涨幅=ii1i1×100%

B. 股票10日涨幅

股票当日涨幅=ii10i10×100%

C. 10日涨跌比率ADR

ADR=1010

  • 取值范围:

    一般而言,由ADR的数值大小可以把大势分为几个区域。
    (1)ADR数值在0.5——1.5之间是ADR处在正常区域内。当ADR处在正常区域内时,表明多空双方势均力敌,大盘的走势波动不大、比较平稳,股市大势属于一种盘整行情。这个区域是ADR数值经常出现的区域。
    (2)当ADR数值在0.3——0.5之间或1.5——2之间是ADR处在非正常区域内。
    当ADR处在1.5——2之间的非正常区域时,表明多头力量占据优势,大盘开始向上一路上涨,股市大势属于一种多头行情;
    而当ADR处在0.3——0.5之间的非正常区域时,表明空头力量占据优势,大盘开始一路下跌,股市大势属于一种空头行情。这两个区域是ADR数值比较少出现的区域。
    (3)当ADR值是在0.3以下或2以上时是ADR处在极不正常区域内。当ADR处在极不正常区域时,主要是突发的利多、利空消息引起股市暴涨暴跌的情况。此时,股市大势属于一种大空头或大多头行情。

  • 买卖决策:

    (1)当ADR数值小于0.5时,表示大势经过长期下跌,已经出现超卖现象,很多股票价格可能会止跌企稳并出现一轮反弹行情,投资者可以短线少量买入超跌股作反弹。
    (2)当ADR数值大于1.5时,表示大势经过长期上涨,已经出现超买现象,很多股票价格可能已经上涨过度,将会出现一轮幅度比较大的下跌行情,投资者应以及时卖出股票或持币观望为主。
    (3)当ADR数值在0.5——1.5之间时,表示大势基本处于整理行情之中,没有出现特殊的超买和超卖现象,这时投资者更重要的在于研判个股行情。
    (4)当ADR数值在0.3以下时,表示大势处在大空头市场的末期,市场上出现了严重的超卖现象,很多股票的价格已经跌无可跌,此时,投资者可以分批逢低吸纳股票,作中长线的建仓投资。
    (5)当ADR数值在2.0以上时,表示大势处在大多头市场的末期,市场上出现了严重的超买现象,很多股票的价格已经涨幅过大,将面临一轮比较大的下跌行情,此时,投资者应及时卖出持有的股票。

D. 10日相对强弱指标RSI

RSI10=1010

  • 相对强弱指数(RSI)是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力,从而作出未来市场的走势。

    更多具体的信息可以参考MBA智库:
    http://wiki.mbalib.com/wiki/%E7%9B%B8%E5%AF%B9%E5%BC%BA%E5%BC%B1%E6%8C%87%E6%A0%87

E. 当日k线值

k线=PRICEclosePRICEopenPRICEhighPRICElow

F. 10日乖离日(BIAS)

BIAS=NN

关于BIAS的具体介绍参考MBA智库百科:
http://wiki.mbalib.com/wiki/BIAS

G. RSV-未成熟随机值

RSV=999×100

RSV参考MBA智库百科
http://wiki.mbalib.com/wiki/RSV

F. OBV量比
OBV=sign()×V

其中sign为符号函数,其表达形式为:

sign(x)=

101x>0,x=0.x<0

关于OBV更多的讨论可以参考:
https://baike.baidu.com/item/%E8%83%BD%E9%87%8F%E6%BD%AE?fromtitle=OBV&fromid=3635727#2

2.matlab程序

clc
clear
close all
% w=windmatlab;
% [w_wsd_data,w_wsd_codes,w_wsd_fields,w_wsd_times,w_wsd_errorid,w_wsd_reqid]=...
%     w.wsd('000001.SZ','open,high,low,close,volume','2011-01-01','2013-12-30');
% price(:,1)=w_wsd_times;
% price(:,2:6)=w_wsd_data;
% price=sortrows(price,-1);
price=xlsread('sz000001.xls');
sr=size(price,1);
cp=30;%衍生变量计算日期区间最大跨度。
sampleValue=zeros(sr-cp,11);
for i=1:sr-cp%dv1:当日涨幅 100%*(第i天的收盘价-第i-1天的收盘价)/第i-1天的收盘价dv1=100*(price(i,5)-price(i+1,5))/price(i+1,5);%dv2:十日涨幅 100%*(第i天的收盘价-第i-10天的收盘价)/第i-10天的收盘价dv2=100*(price(i,5)-price(i+10,5))/price(i+10,5);riseNumber=0;decreaseNumber=0;%以10为周期,比较10天内的涨的天数和跌的天数for j=1:10if price(i+j-1,5)-price(i+j,5)>0riseNumber=riseNumber+1;elsedecreaseNumber=decreaseNumber+1;endend%dv3:10日涨跌比率ADR,10日内涨的天数/10日内跌的天数dv3=riseNumber/decreaseNumber;%dv4:10日相对强弱指标 10日内涨的天数/10;dv4=riseNumber/10;%dv5:当日k线值%dv6:6日k线值kLineValue=zeros(1,6);for j=1:6kLineValue(1,j)=(price(i+j-1,5)-price(i+j-1,2))/(price(i+j-1,3)-price(i+j-1,4));enddv5=kLineValue(1);dv6=sum(kLineValue(1,1:6))/6;%dv7:10日乖离率(BIAS)BIAS=(当日收盘价-N日内移动平均收盘价)/N日内移动平均收盘价dv7=(price(i,5)-sum(price(i:i+9,5)/10))/sum(price(i:i+9,5))/10;%dv8:9日未成熟随机值 rsv =(收盘价 – 9日内最低收盘价)/(9日内最高收盘价 – 9日内最低收盘价)×100dv8=(price(i,5)-min(price(i:i+8,5)))/(max(price(i:i+8,5))-min(price(i:i+8,5)));%dv9:30日未成熟随机值 rsv =(收盘价 – 30日内最低收盘价)/(30日内最高收盘价 – 30日内最低收盘价)×100dv9=(price(i,5)-min(price(i:i+29,5)))/(max(price(i:i+29,5))-min(price(i:i+29,5)));%dv10:OBV能量潮量比dv10=sign(price(i,5)-price(i+1,5))*price(i,6)/(sum(price(i:i+4,6))/5);% dv11:变动率指标 ROC=(今天的收盘价-N日前的收盘价)/N日前的收盘价*100dv11=100*(price(i,5)-price(i+11,5))/price(i+11,5);sampleValue(i,:)=[dv1,dv2,dv3,dv4,dv5,dv6,dv7,dv8,dv9,dv10,dv11];
end

3.几个因子的时间变化趋势

这里写图片描述
这里写图片描述
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java – HashMap详细说明

HashMap基于哈希算法工作&#xff0c;根据Java文档HashMap具有以下四个构造函数&#xff0c; 建设者 描述 HashMap ​() 构造一个空的 具有默认初始容量&#xff08;16&#xff09;和默认加载因子&#xff08;0.75&#xff09;的HashMap 。 HashMap ​(int initialCapaci…

Python实现石头-剪刀-布小游戏

近日在学习Python的一些基础知识&#xff0c;觉得还是很有趣的一个一门语言&#xff01;就目前的学习的一些知识&#xff0c;编写了一些一个简单的石头剪刀布的游戏。主要是熟悉一些Python的一些控制语句。 import random while 1:sint(random.randint(1,3))print(s)print()if…

Python:递归输出斐波那契数列

今天学习Python的时候做一道练习题&#xff0c;题目是这样的&#xff1a; 题目 导入 问题 有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子总对数为多…

排序算法二:快速排序算法原理以及MATLAB与Python实现

今天继续学习排序算法。今天的主角是快速排序算法。 1. 快速排序基本原理 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略&#xff0c;通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是&#xff1a; 1&#xff0e;先从数列…

排序算法三:堆排序基本原理以及Python实现

1. 基本原理 堆排序就是利用堆的特性进行一个无序序列的排序工作。 堆的特点 堆分为最大堆和最小堆&#xff0c;其实就是完全二叉树。 最大堆要求节点的元素都要不小于其孩子最小堆要求节点元素都不大于其左右孩子。 两者对左右孩子的大小关系不做任何要求&#xff0c;其实…

spring jms 消息_Spring JMS,消息自动转换,JMS模板

spring jms 消息在我的一个项目中&#xff0c;我应该创建一个消息路由器&#xff0c;就像所有路由器一样&#xff0c;它应该从一个主题获取JMS消息并将其放入另一个主题。 该消息本身是JMS文本消息&#xff0c;实际上包含XML消息。 收到消息后&#xff0c;我还应该添加一些其他…

排序算法四:归并排序基本原理以及Python实现

1. 基本原理 归并排序建立在归并操作上的一种算法。该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。归并排序是将两 个已经有序的序列合成一个有序的序列的过程。 因此&#xff0c;对于一个待排序的序列来说&#xff0c;首先要将其进行…

如何将JAR添加到Jetbrains MPS项目

Jetbrains MPS是创建DSL的绝佳工具。 我们喜欢它&#xff0c;并在我们的咨询工作中定期使用它。 因此&#xff0c;我们之前已经写过关于Jetbrains MPS的文章 。 作为投影编辑器&#xff0c;您可以轻松创建可通过图形界面或数学公式之类使用的DSL。 尽管所有这些功能都需要做一…

Python 3实现k-邻近算法以及 iris 数据集分类应用

前言 这个周基本在琢磨这个算法以及自己利用Python3 实现自主编程实现该算法。持续时间比较长&#xff0c;主要是Pyhton可能还不是很熟练&#xff0c;走了很多路&#xff0c;基本是一边写一边学。不过&#xff0c;总算是基本搞出来了。不多说&#xff0c;进入正题。 1. K-邻近…

UART原理

UART原理 通用异步收发传输器&#xff08;Universal Asynchronous Receiver / Transmitter)&#xff0c;通常称作UART&#xff0c;是一种异步收发传输器&#xff0c;是电脑硬件的一部分。将资料由串行通信与并行通信间作传输转换&#xff0c;作为并行输入成为串行输出的芯片&am…

AttributeError: module 'tensorflow' has no attribute 'placeholder'等一系列tensorflow版本导致的问题

新人tensorflow2.1版本导致程序我无法运行最简单的办法 法1 tensorflow.compat.v1 import tensorflow.compat..v1 as tf tf.disable_v2_behavior() 亲测不好用 法2 卸载2.1&#xff0c;安装老版本 在Terminal界面输入 pip uninstall tensorflow接着输入Y确定卸载。 安装t…

word中一直提示校对错误,如何关闭当前文档校对功能

关闭当前文档校对功能 文件>选项>校对>例外项&#xff0c;选中两个&#xff0c;如图 对比效果&#xff1a;

将测微仪与Spring Boot 2一起使用

这是快速入门&#xff0c;介绍了如何使用出色的Micrometer库来检测基于Spring Boot 2的应用程序并在Prometheus中记录指标 介绍 Micrometer在各种监视工具提供的客户端库上提供了基于Java的外观。 以Prometheus为例&#xff0c;如果我要将Java应用程序与Prometheus集成&#…

与Maven的集成测试

用Maven实施单元测试是很普通的事情&#xff0c;我们大多数人都熟悉项目结构以及单元测试所在的位置。 但是&#xff0c;集成测试是一种不同的情况&#xff0c;大多数情况下它们具有完全不同的要求。 例如&#xff0c;可以让您的单元测试在内存数据库中的h2上运行&#xff0c;…

通信原理-通信系统的组成

第一章 通信系统的组成 1、通信系统一般模型 发送设备&#xff1a;将信源产生的原始电信号变换成适合在信道中传输的形式。变换方式有调制、放大、滤波、编码、多路复用等。 信道&#xff1a;传输信号的通道.即传输媒质。在给子信号通道的同时&#xff0c;信道也会对信号产生损…

使用log4j2免费分配日志记录

介绍 最近&#xff0c;我正在为一个客户端工作&#xff0c;试图为大型精心制作的Java系统消除一些GC暂停。 经过分析后&#xff0c;我意识到大部分垃圾都是通过日志记录产生的&#xff01; 是否有一种简单的方法来删除所有分配&#xff1f; 原来有:) 我应该使用哪个框架进行GC…

Verilog中fork...join 的用法

特点 中间的语句并行执行&#xff1b;&#xff08;延时不累加&#xff09; 不能用于综合&#xff1b; 代码 module signal_gen; reg wave; parameter cycle 5; initial beginforkwave 0;#(cycle) wave 1;#(2*cycle) wave 0;#(3*cycle) wave 1;#(4*cycle…

使用JWT的Cloud Native应用程序

本机云应用程序是为云计算环境开发的应用程序。 对于“ 什么是云原生应用程序 ”这个问题没有具体答案&#xff0c;但是必须满足不同的概念。 在我看来&#xff0c;最重要的功能之一就是能够快速缩放 。 这意味着我们的应用程序在每台服务器上都无法具有任何状态&#xff0c;…

开源项目GoodView点赞效果

点赞1效果&#xff1a; GoodView方法&#xff1a; 使用GoodView的Demo: public class MainActivity extends Activity { Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main)final Good…

开源RefreshListView下拉刷新效果

1、AnimationDrawable java.lang.Object ↳android.graphics.drawable.Drawable ↳android.graphics.drawable.DrawableContainer ↳android.graphics.drawable.AnimationDrawable 文档概述&#xff1a;An object used to create frame-by-frame animations, defined …