常见的股票技术因子学习以及计算
最近在看《量化投資數據挖掘技術與實踐(MATLAB版)》。學習了其中的常見的股票衍生變量,并且利用WIND金融數據終端的matlab借口windmatlab導出一些數據進行了一個簡單的學習。特此記錄。
A. 股票當日漲幅:相對于收盤價而言。其計算為:
股票當日漲幅=(第i天的收盤價?第i?1天的收盤價)第i?1天的收盤價×100%
B. 股票10日漲幅
股票當日漲幅=(第i天的收盤價?第i?10天的收盤價)第i?10天的收盤價×100%
C. 10日漲跌比率ADR
ADR=10日內股票漲的天數10日內股票跌的天數
取值范圍:
一般而言,由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=10日內漲的天數10
相對強弱指數(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線值=PRICEclose?PRICEopenPRICEhigh?PRICElow
F. 10日乖離日(BIAS)
BIAS=當日收盤價?N日內移動平均收盤價N日內移動平均收盤價
關于BIAS的具體介紹參考MBA智庫百科:
http://wiki.mbalib.com/wiki/BIAS
G. RSV-未成熟隨機值
RSV=當日收盤價–9日內最低收盤價9日內最高收盤價–9日內最低收盤價×100
RSV參考MBA智庫百科
http://wiki.mbalib.com/wiki/RSV
F. OBV量比
OBV=sign(當日股票收盤價?前日股票收盤價)×當日成交量V
其中sign為符號函數,其表達形式為:
sign(x)=
關于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]; end3.幾個因子的時間變化趨勢
總結
以上是生活随笔為你收集整理的常见的股票技术因子学习以及计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux考证方向(linux考证)
- 下一篇: 算法题:输入一个表示整数的字符串,把该字