MATLAB技术分析教程文件Word下载.docx
《MATLAB技术分析教程文件Word下载.docx》由会员分享,可在线阅读,更多相关《MATLAB技术分析教程文件Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
收盘价'
成交量'
}
OpenPrice=num(:
1);
HighPrice=num(:
2);
LowPrice=num(:
3);
ClosePrice=num(:
4);
Vol=num(:
5);
%存储数据在HS300Data.mat文件中
saveHS300DataDateOpenPriceHighPriceLowPriceClosePriceVol
14.2.2蜡烛图(K线)
在MATLAB的FinancialToolbox的蜡烛图通过candle函数实现.candle图中,阳线为空心,阴线为实心.
函数语法:
candle(HighPrices,LowPrices,ClosePrices,OpenPrices,Color,Dates,Dateform)
输入参数:
HighPrices:
最高价序列
LowPrices:
最低价序列
ClosePrices:
收盘价序列
OpenPrices:
开盘价序列
Color:
(可选)蜡烛图颜色,默认为蓝色
Dates:
(可选)日期
Dateform:
(可选)时间格式
函数输出为蜡烛(K线)图,程序为candleTest.m
loadHS300Data
%画两个蜡烛图,一个是2010年的,一个2010年6月的
subplot(2,1,1)
%2010年的数据,根据时间数据的年份判断
Idx2010=find(year(Date)==2010);
candle(HighPrice(Idx2010),LowPrice(Idx2010),ClosePrice(Idx2010),...
OpenPrice(Idx2010),[],Date(Idx2010),12);
%时间格式为月/年
title('
2010年K线'
)
%2010年6月的K线
subplot(2,1,2)
%在2010年的时间数据中选取月份为6的数据
Idx=find(month(Date(Idx2010))==6);
Idx2010_06=Idx2010(Idx);
candle(HighPrice(Idx2010_06),LowPrice(Idx2010_06),ClosePrice(Idx2010_06),OpenPrice(Idx2010_06),[],Date(Idx2010_06),12);
2010年6月K线'
注释:
如同行情软件一样,当K线图的密度较大时候,日K线的阳阴难以分别,如何实现周K线、月K线,需要原数据根据新的时间周期进行处理.
交易量数据可以使用bar()函数绘图candleTest2.m
%2010年交易量
bar(Date(Idx2010),Vol(Idx2010))
dateaxis('
x'
12)
%设置数据使得两个子图的X轴对齐
axis([Date(Idx2010
(1)),Date(Idx2010(end)),0,max(Vol(Idx2010))])
2010年交易量'
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
%%读取数据
%计算移动平均值
Lead=3;
lag=20;
Alpha=0;
[Short,Long]=movavg(ClosePrice,Lead,lag,Alpha);
%画图
plot(Date,ClosePrice);
holdon
plot(Date(Lead:
end),Short(Lead:
end),'
r--'
);
plot(Date(lag:
end),Long(lag:
b.-'
%标记线型
legend('
ClosePrcie'
ShortMovavg'
LongMovavg'
%X轴名称
xlabel('
date'
%Y轴名称
ylabel('
price'
%标题
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
wsize=20;
wts=0;
nstd=2;
[mid,uppr,lowr]=bollinger(ClosePrice,wsize,wts,nstd);
plot(Date,ClosePrice,'
k'
plot(Date(wsize:
end),mid(wsize:
b-'
end),uppr(wsize:
r.-'
end),lowr(wsize:
mid'
uppr'
lowr'
bollinger'
14.3.3平滑异同移动平均线
MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线,MACD的意义和双移动平均线基本相同,但阅读起来更方便.当MACD从负数转向正数,是买的信号.当MACD从正数转向负数,是卖的信号.当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变.
DIF线 (Difference)短期移动平均线和长期移动平均线的离差值;
DEA线 (DifferenceExponentialAverage)DIF线的M日指数平滑移动平均线;
MACD线 DIF线与DEA线的差.
在MATLAB中计算MACD的函数为macd.
[macdvec,nineperma]=macd(data)
data:
价格序列
macdvec:
MACD线
nineperma:
thenine-periodexponentialmovingaverage
例如,以沪深300指数收盘价,计算MACD线,程序MACDTest.m
%计算MACD
[macdvec,nineperma]=macd(ClosePrice);
subplot(2,1,1)%沪深300收盘价图
ClosePrice'
12);
subplot(2,1,2);
%沪深300MACD指标
plot(Date,macdvec,'
r'
plot(Date,nineperma,'
b--'
Macdvec'
Nineperma'
函数的演示案例以沪深300日行情为例,若使用高频数据则将数据代入函数即可.
14.3.4其他技术指标
表1其他技术指标与函数
MATLAB函数
指标名词
释义
adline
Accumulation/Distributionline
累积/派发线(Accumulation/DistributionLine)指标由Marc7Chaikin提出,是一种非常流行的平横交易量指标.其原理与OBV类似,但是只以当日的收盘价位来估算成交流量,用于估定一段时间内该证券累积的资金流量.
adosc
Accumulation/Distributionoscillator
累积/派发线震荡指标
bollinger
TimeseriesBollingerband
布林带由布林格(Bollinger)发明,也叫布林通道,是各种投资市场广泛运用的路径分析指标.一般价格的波动是在一定的区间内的,区间的宽度代表价格的变动幅度,越宽表示价格变动幅度越大,越窄表示价格变动幅度越小.布林带由支撑线(LOWER)、阻力线(UPER)和中线(MID)三者组成,当价格突破阻力线(或支撑线)时,表示卖出(或买入)时机.
chaikosc
Chaikinoscillator
蔡金摆动指标,这个指标由三个主要部分组成.首先:
如果股票或指数高于一天之内的平仓价(你可以用[max+min]/2计算出平均值),就意味着一天的积累.越接近股票的平仓指数或最大指数,积累就越活跃.相反地,如果股票的平仓价低于一天的平均值,就意味着分布带来的位置.越接近最低值,分布就越活跃
chaikvolat
Chaikinvolatility
蔡金波动性指标--计算最高价和最低价之间的价差.以在最大和最小之间的振幅为基础蔡金波动指标来断定波动价值.与真实范围平均数不同,蔡金波动制表在账户中没有间隔.根Chaikin的诠释,指标价值的增长直接关系到短的时间空隙,就是说价格接近他们的最小值(像当惊慌卖出),在长时间里指标波动减缓,表明价格处于繁忙状态(例如,条件成熟牛市的状态).
macd
MovingAverageConvergence/Divergence(MACD)
MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线,MACD的意义和双移动平均线基本相同,但阅读起来更方便.当MACD从负数转向正数,是买的信号.当MACD从正数转向负数,是卖的信号.当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变.
onbalvol
On-BalanceVolume(OBV)
OBV的英文全称是:
OnBalanceVolume,中英名称可翻译为:
平衡交易量,是由美国的投资分析家JoeGranville所创.该指标通过统计成交量变动的趋势来推测股价趋势.OBV以N字型为波动单位,并且由许许多多N型波构成了OBV的曲线图,对一浪高于一浪的N型波,称其为上升潮(UPTIDE),至于上升潮中的下跌回落则称为跌潮(DOWNFIELD)
pvtrend
PriceandVolumeTrend(PVT)
价量趋势指标(PVT),类似能量潮指标,显示增长交易成交量总和计算平仓价的改变.在OBV的情况下,如果平仓价处于高水平,我们添加当前成交量到当前指标值并且减去其余的价值.在PVT的情况下,只有部分当前成交量被添加到PVT值,你必须指出前一个柱当前价格和平仓价之间的差别
rsindex
RelativeStrengthIndex(RSI)
分析RSI指标最为普遍的方法是:
我们要寻找这样一个分离的情况,在那点上,证券的价格是创新高的,但RSI指标并未能超过它以前的那个高度.这样的分离暗示着一个迫近的相反趋势.当RSI指标那时开始反转,并且下降到它最近的那个低谷,人们称之为失败摇摆,失败摇摆被看作为是即将到来的一个相反趋势的确认.
stochosc
Stochasticoscillator
随机震荡技术指标比较一定时段里,价格的范围同证券价格收市值的相关情况.该振荡指标以双线来显示.主线被称为K线,第二根线被称为D线,它的数值是主线K的移动平均线.K通常显示为一个固定的曲线,而D线则显示为点状曲线.
willad
WilliamsAccumulation/Distributionline
终极摆动指标通常摆动指标是比较金融工具的平均价格和之前n周期它的价值.一次LarryWilliams注意到这种指标的效率有所不同,它取决于你需要计算的单周期数.所以他创建了终极摆动指标,能够使用大强度的三个摆动指标计算不同周期.
willpctr
Williams%R
威廉%R指标是一个动态技术指标,由它来决定市场是否过度买入或买进.威廉的%R曲线和随机震荡指标非常类似.唯一的区别在与%R曲线有上下运动的标尺,而随机震荡指标有振动指数有内部的舒张