资源描述
14. 技术分析-指标计算与绘图
证券市场价格是复杂变化,投资者在这个市场上进行投资时都要有一套办法来制定或选取投资方略进行投资.股票技术分析是以预测市场价格变化将来趋势为目,通过度析历史图表对市场价格运动进行分析一种办法.股票技术分析是证券投资市场中非常普遍应用一种分析办法.本章节目的为使用MATLAB函数计算重要技术分析指标并绘图.
14.1理论简介
股票基本分析目是为了判断股票现行股价价位与否合理并描绘出它长远发展空间,而股票技术分析重要是预测短期内股价涨跌趋势.通过基本分析咱们可以理解应购买何种股票,而技术分析则让咱们把握详细购买时机.在时间上,技术分析法注重短期分析,在预测旧趋势结束和新趋势开始方面优于基本分析法,但在预测较长期趋势方面则不如后者.大多数成功股票投资者都是把两种分析办法结合起来加以运用.她们用基本分析法预计较长期趋势,而用技术分析法判断短期走势和拟定买卖时机.
股票技术分析和基本分析都以为股价是由供求关系所决定.基本分析重要是依照对影响供需关系种种因素分析来预测股价走势,而技术分析则是依照股价自身变化来预测股价走势.技术分析基本观点是:所有股票实际供需量及其背后起引导作用种种因素,涉及股票市场上每个人对将来但愿、紧张、恐惊等等,都集中反映在股票价格和交易量上.
股票技术分析理论基本是空中楼阁理论.空中楼阁理论是美国知名经济学家凯恩斯于1936年提出,该理论完全抛开股票内在价值,强调心理构造出来空中楼阁.投资者之因此要以一定价格购买某种股票,是由于她相信有人将以更高价格向她购买这种股票.至于股价高低,这并不重要,重要是存在更大笨蛋愿以更高价格向你购买.精明投资者不必去计算股票内在价值,她所须做只是抢在最大笨蛋之前成交,即股价达到最低点之前买进股票,而在股价达到最高点之后将其卖出.
14.2行情数据K线图
14.2.1数据读取
技术分析指标计算与绘图分析,以-沪深300指数行情数据为例进行函数编程与绘图.
沪深300指数存储在Hs300.xls文献中,通过使用xlsread函数进行数据读取.
%读取数据
filename='HS300.xls';
[num,txt,raw] = xlsread(filename);
%txt第一列为日期数据
Date=datenum(txt(4:length(txt),1));
%num列依次为{'开盘价','最高价','最低价','收盘价','成交量';}
OpenPrice=num(:,1);
HighPrice=num(:,2);
LowPrice=num(:,3);
ClosePrice=num(:,4);
Vol=num(:,5);
%存储数据在HS300Data.mat文献中
save HS300Data Date OpenPrice HighPrice LowPrice ClosePrice Vol
14.2.2蜡烛图(K线)
在MATLABFinancial Toolbox蜡烛图通过candle函数实现.candle图中,阳线为空心,阴线为实心.
函数语法:
candle(HighPrices,LowPrices,ClosePrices,OpenPrices,Color,Dates,Dateform)
输入参数:
HighPrices:最高价序列
LowPrices:最低价序列
ClosePrices:收盘价序列
OpenPrices:开盘价序列
Color:(可选)蜡烛图颜色,默以为蓝色
Dates:(可选)日期
Dateform:(可选)时间格式
函数输出为蜡烛(K线)图,程序为candleTest.m
%读取数据
load HS300Data
%画两个蜡烛图,一种是,一种6月
subplot(2,1,1)
%数据,依照时间数据年份判断
Idx=find(year(Date)==);
candle(HighPrice(Idx),LowPrice(Idx),ClosePrice(Idx),...
OpenPrice(Idx),[],Date(Idx),12);%时间格式为 月/年
title('K线')
%6月K线
subplot(2,1,2)
%在时间数据中选用月份为6数据
Idx=find(month(Date(Idx))==6);
Idx_06=Idx(Idx);
candle(HighPrice(Idx_06),LowPrice(Idx_06) ,ClosePrice(Idx_06),OpenPrice(Idx_06),[],Date(Idx_06),12);%时间格式为 月/年
title('6月K线')
注释:犹如行情软件同样,当K线图密度较大时候,日K线阳阴难以分别,如何实现周K线、月K线,需要原数据依照新时间周期进行解决.
交易量数据可以使用bar()函数绘图candleTest2.m
%读取数据
load HS300Data
%画两个蜡烛图,一种是,一种6月
subplot(2,1,1)
%数据,依照时间数据年份判断
Idx=find(year(Date)==);
candle(HighPrice(Idx),LowPrice(Idx),ClosePrice(Idx),...
OpenPrice(Idx),[],Date(Idx),12);%时间格式为 月/年
title('K线')
%交易量
subplot(2,1,2)
bar(Date(Idx),Vol(Idx))
dateaxis('x',12)
%设立数据使得两个子图X轴对齐
axis([Date(Idx(1)),Date(Idx(end)),0,max(Vol(Idx))])
title('交易量')
14.3技术指标计算
14.3.1移动平均线
移动平均线是应用最普遍技术指标之一,它协助交易者确认既有趋势、判断将浮现趋势、发现过度延生即将反转趋势.移动平均线(MA)是以道琼斯平均成本概念为理论基本,采用记录学中"移动平均"原理,将一段时期内股票价格平均值连成曲线,用来显示股价历史波动状况,进而反映股价指数将来发展趋势技术分析办法.它是道氏理论形象化表述.
在MATLAB中计算移动平均线函数为movavg.
函数语法:
画图:movavg(Asset,Lead,Lag,Alpha)
返回数据不画图:[Short,Long] = movavg(Asset,Lead,Lag,Alpha)
输入参数:
Asset:资产价格序列
Lead:Short移动平均线周期,例如3天;
Lag: Long移动平均线周期,例如20天;
Alpha:平均办法,(默认)0为算术平均值,0.5为平方根权重加权平均值,1为线性加权平均值,2为平方加权平平均值
输出参数:
Short:Short移动平均线
Long:Long移动平均线
例如,以沪深300指数收盘价,Lead=3、Lag=20计算移动平均线,程序movavgTest.m
%%读取数据
load HS300Data
%计算移动平均值
Lead=3;
lag=20;
Alpha=0;
[Short,Long] = movavg(ClosePrice,Lead,lag,Alpha);
%画图
plot(Date,ClosePrice);
hold on
plot(Date(Lead:end),Short(Lead:end),'r--');
plot(Date(lag:end),Long(lag:end),'b.-');
dateaxis('x',12)
%标记线型
legend('ClosePrcie','ShortMovavg','LongMovavg')
%X轴名称
xlabel('date')
%Y轴名称
ylabel('price')
%标题
title('Movavg')
成果如图:
14.3.2布林带
布林带由布林格 (Bollinger) 创造,也叫布林通道,是各种投资市场广泛运用途径分析指标.普通价格波动是在一定区间内,区间宽度代表价格变动幅度,越宽表达价格变动幅度越大,越窄表达价格变动幅度越小.布林带由支撑线(LOWER)、阻力线(UPER) 和中线(MID) 三者构成,当价格突破阻力线(或支撑线)时,表达卖出(或买入)时机. SD()为计算原则差
中间线 = 20 日均线
Up 线 = 20 日均线 + 2SD(20 日收巿价 )
Down 线 =20 日均线 - 2SD(20 日收巿价 )
在MATLAB中计算布林带函数为bollinger.
函数语法:
[mid,uppr,lowr] = bollinger(data,wsize,wts,nstd)
输入参数:
Data:时间序列数据
Wsize:(可选)窗口大小(数据长度),默以为20
Wts:(可选)权重因子,默以为0
Nstd:(可选)上下届原则差倍数,默以为2
输出参数:
mid,uppr,lowr:布林带中值、上界与下界.
例如,以沪深300指数收盘价,计算布林带,程序bollingerTest.m
%%读取数据
load HS300Data
%计算移动平均值
wsize=20;
wts=0;
nstd=2;
[mid,uppr,lowr] = bollinger(ClosePrice,wsize,wts,nstd);
%画图
plot(Date,ClosePrice,'k');
hold on
plot(Date(wsize:end),mid(wsize:end),'b-');
plot(Date(wsize:end),uppr(wsize:end),'r.-');
plot(Date(wsize:end),lowr(wsize:end),'r.-');
dateaxis('x',12)
%标记线型
legend('ClosePrcie','mid','uppr','lowr')
%X轴名称
xlabel('date')
%Y轴名称
ylabel('price')
%标题
title('bollinger')
成果如图:
14.3.3平滑异同移动平均线
MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来,由快移动平均线减去慢移动平均线,MACD意义和双移动平均线基本相似,但阅读起来更以便.当MACD从负数转向正数,是买信号.当MACD从正数转向负数,是卖信号.当MACD以大角度变化,表达快移动平均线和慢移动平均线差距非常迅速拉开,代表了一种市场大趋势转变.
DIF线 (Difference)短期移动平均线和长期移动平均线离差值;
DEA线 (Difference Exponential Average)DIF线M日指数平滑移动平均线 ;
MACD线 DIF线与DEA线差.
在MATLAB中计算MACD函数为macd.
函数语法:
[macdvec,nineperma] = macd(data)
输入参数:
data:价格序列
输出参数:
macdvec:MACD线
nineperma:the nine-period exponential moving average
例如,以沪深300指数收盘价,计算MACD线,程序MACDTest.m
%读取数据
load HS300Data
%计算MACD
[macdvec,nineperma] = macd(ClosePrice);
%画图
subplot(2,1,1) %沪深300收盘价图
plot(Date,ClosePrice);
legend('ClosePrice')
dateaxis('x',12);
subplot(2,1,2);%沪深300MACD指标
plot(Date,macdvec,'r');
hold on
plot(Date,nineperma,'b--');
legend('Macdvec','Nineperma')
dateaxis('x',12);
成果如图:
注释:函数演示案例以沪深300日行情为例,若使用高频数据则将数据代入函数即可.
14.3.4其她技术指标
表1 其她技术指标与函数
MATLAB函数
指标名词
释义
adline
Accumulation/Distribution line
累积/派发线(Accumulation/Distribution Line)指标由Marc7Chaikin提出,是一种非常流行平横交易量指标.其原理与OBV类似,但是只以当天收盘价位来估算成交流量,用于估定一段时间内该证券累积资金流量.
adosc
Accumulation/Distribution oscillator
累积/派发线震荡指标
bollinger
Time series Bollinger band
布林带由布林格 (Bollinger) 创造,也叫布林通道,是各种投资市场广泛运用途径分析指标.普通价格波动是在一定区间内,区间宽度代表价格变动幅度,越宽表达价格变动幅度越大,越窄表达价格变动幅度越小.布林带由支撑线(LOWER)、阻力线(UPER) 和中线(MID) 三者构成,当价格突破阻力线(或支撑线)时,表达卖出(或买入)时机.
chaikosc
Chaikin oscillator
蔡金摆动指标,这个指标由三个重要某些构成.一方面:如果股票或指数高于一天之内平仓价(你可以用[max+min]/2计算出平均值),就意味着一天积累.越接近股票平仓指数或最大指数,积累就越活跃.相反地,如果股票平仓价低于一天平均值,就意味着分布带来位置.越接近最低值,分布就越活跃
chaikvolat
Chaikin volatility
蔡金波动性指标-- 计算最高价和最低价之间价差.以在最大和最小之间振幅为基本蔡金波动指标来断定波动价值.与真实范畴平均数不同,蔡金波动制表在账户中没有间隔.根Chaikin诠释 ,指标价值增长直接关系到短时间空隙,就是说价格接近她们最小值(像当惊慌卖出),在长时间里指标波动减缓,表白价格处在繁忙状态(例如,条件成熟牛市状态).
macd
MovingAverage Convergence/Divergence (MACD)
MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来,由快移动平均线减去慢移动平均线,MACD意义和双移动平均线基本相似,但阅读起来更以便.当MACD从负数转向正数,是买信号.当MACD从正数转向负数,是卖信号.当MACD以大角度变化,表达快移动平均线和慢移动平均线差距非常迅速拉开,代表了一种市场大趋势转变.
onbalvol
On-Balance Volume (OBV)
OBV英文全称是:On Balance Volume,中英名称可翻译为:平衡交易量,是由美国投资分析家Joe Granville所创.该指标通过记录成交量变动趋势来推测股价趋势.OBV以N字型为波动单位,并且由许许多多N型波构成了OBV曲线图,对一浪高于一浪N型波,称其为上升潮(UP TIDE),至于上升潮中下跌回落则称为跌潮(DOWN FIELD)
pvtrend
Price and Volume Trend (PVT)
价量趋势指标 (PVT),类似能量潮指标,显示增长交易成交量总和计算平仓价变化. 在OBV状况下,如果平仓价处在高水平,咱们添加当前成交量到当前指标值并且减去别的价值.在 PVT状况下,只有某些当前成交量被添加到PVT值,你必要指出前一种柱当前价格和平仓价之间差别
rsindex
Relative Strength Index (RSI)
分析RSI指标最为普遍办法是:咱们要寻找这样一种分离状况,在那点上,证券价格是创新高,但RSI指标并未能超过它此前那个高度.这样分离暗示着一种逼近相反趋势.当RSI指标那时开始反转,并且下降到它近来那个低谷,人们称之为失败摇晃,失败摇晃被看作为是即将到来一种相反趋势确认.
stochosc
Stochastic oscillator
随机震荡技术指标比较一定期段里,价格范畴同证券价格收市值有关状况.该振荡指标以双线来显示.主线被称为K线,第二根线被称为D线,它数值是主线K移动平均线.K普通显示为一种固定曲线,而D线则显示为点状曲线.
willad
Williams Accumulation/Distribution line
终极摆动指标 普通摆动指标是比较金融工具平均价格和之前n 周期它价值. 一次Larry Williams 注意到这种指标效率有所不同,它取决于你需要计算单周期数.因此她创立了终极摆动指标,可以使用大强度三个摆动指标计算不同周期.
willpctr
Williams %R
威廉%R指标是一种动态技术指标,由它来决定市场与否过度买入或买进.威廉%R曲线和随机震荡指标非常类似.唯一区别在与%R曲线有上下运动标尺,而随机震荡指标有振动指数有内部舒张
展开阅读全文