欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    MATLAB程序设计技术分析-指标计算与绘图.docx

    • 资源ID:7016308       资源大小:160.16KB        全文页数:12页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB程序设计技术分析-指标计算与绘图.docx

    技术分析-指标计算与绘图证券市场的价格是复杂变化的,投资者在这个市场上进行投资时都要有一套方法来制定或选择投资策略进行投资。股票技术分析是以预测市场价格变化的未来趋势为目的,通过分析历史图表对市场价格的运动进行分析的一种方法。股票技术分析是证券投资市场中非常普遍应用的一种分析方法。本章节目标为使用MatIab函数计算主要技术分析指标并绘图。1理论简介股票基本分析的目的是为了判断股票现行股价的价位是否合理并描绘出它长远的发展空间,而股票技术分析主要是预测短期内股价涨跌的趋势。通过基本分析我们可以了解应购买何种股票,而技术分析则让我们把握具体购买的时机。在时间上,技术分析法注重短期分析,在预测旧趋势结束和新趋势开始方面优于基本分析法,但在预测较长期趋势方面则不如后者。大多数成功的股票投资者都是把两种分析方法结合起来加以运用。他们用基本分析法估计较长期趋势,而用技术分析法判断短期走势和确定买卖的时机。股票技术分析和基本分析都认为股价是由供求关系所决定。基本分析主要是根据对影响供需关系种种因素的分析来预测股价走势,而技术分析则是根据股价本身的变化来预测股价走势。技术分析的基本观点是:所有股票的实际供需量及其背后起引导作用的种种因素,包括股票市场上每个人对未来的希望、担心、恐惧等等,都集中反映在股票的价格和交易量上。股票技术分析的理论基础是空中楼阁理论。空中楼阁理论是美国著名经济学家凯恩斯于1936年提出的,该理论完全抛开股票的内在价值,强调心理构造出来的空中楼阁。投资者之所以要以一定的价格购买某种股票,是因为他相信有人将以更高的价格向他购买这种股票。至于股价的高低,这并不重要,重要的是存在更大的“笨蛋”愿以更高的价格向你购买。精明的投资者无须去计算股票的内在价值,他所须做的只是抢在最大“笨蛋”之前成交,即股价达到最低点之前买进股票,而在股价达到最高点之后将其卖出。2行情数据的K线图2.1数据读取技术分析的指标计算与绘图分析,以2010-2011年沪深300指数行情数据为例进行函数的编程与绘图。奥贴板G字体对齐方式ftK16J-I1ABCDEF000300.SH000300.SH000300.SH000300.SH000300.SH2沪深300沪深300沪深300沪深300沪深3003日期开盘价最高价最低价收盘价成交量42010/1/43,592.4703,597.7503,535.2303,535.2306,610,108,000.00012010/1/53,545.1903,577.5303,497.6603,564.0408,580,964,000.00062010/1/63,55S.7003,588.8303,541.1703,541.7307,847,312,800.00072010/1/73,543.1603,558.5603,452.7703,471.4608,035,004,000.00082010/1/83,456.9103,482.0803,426.7003,480.1306,079,025,200.00092010/1/113,593.1103,594.5303,465.3203,482.0508,998,017,600.000102010/1/123,477.8403,535.4103,437.6603,534.9209,374,328,000.000112010/1/133,448.2903,490.1103,415.6903,421.14011,245,790,400.000122010/1/143,433.4703,470.3203,411.8103,469.0508,335,324,800.00013I2010/1/153,472.5203,500.0703,448.6603,482.7407,254,310,400.000142010/1/183,471.7803,501.2603,458.0403,500.6808,285,430,400.000152010/1/193,506.8103,528.3903,497.0903,507.4807,488,323,200.000162010/1/203,512.2503,515.4503,387.8203,394.4309,249,514,400.000172010/1/213,397.0403,425.1803,364.7203,408.5707,059,507,200.000图1沪深300指数2010-2011年数据沪深300指数存储比Hs300.xls文件中,通过使用xlsread函数进行数据的读取。也读取数据filename='HS300.xls'num,txtrraw=xlsread(filename);=txt的第一列为日期数据Date=datenum(txt(4:length(txt),1);电num列依次为L开盘价I,最高价I,最低价I,收盘价I,成交量,;OpenPrice=num(:,1);HighPrice=num(:,2);1.owPrice=num(1,3);ClosePrice=num(:,4);Vol=num(:,5);电存储数据在HS300Data.mat文件中saveHS300DataDateOpenPriceHighPriceLowPriceClosePriceVol2.2蜡烛图(K线)在Matlab的FinancialToolbox的蜡烛图通过candle函数实现。CandIe图中,“阳线”为空心,“阴线”为实心。函数语法:candle(HighPrices,LowPrices,ClosePrices,OpenPrices,Color,Dates,Dateform)输入参数:HighPrices:最高价序列1.owPrices:最低价序列ClosePrices:收盘价序列OpenPrices:开盘价序列Color:(可选)蜡烛图颜色,默认为蓝色Dates:(可选)日期Dateform:(可选)时间格式函数输世为蜡烛(KW图,程序分CandIeTe汐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(:EdX2010),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(Idx201006),LowPrice(Idx2010_06),ClosePrice(Idx2010_06),.OpenPrice(Idx2010_06)zzDate(Idx2010_06),12);超时间格式为“月/年”title2010年6月K线,)n10Apr10JuHOOctIOJanl 1图2沪深300指数K线图201班K线4000350030002500注释:如同行情软件一样,当K线图的密度较大时候,日K线的“阳阴”难以分别,如何实现周K线、月K线,需要原数据根据新的时间周期进行处理。交区量数据可H使用bar()函数纥图candleTest2.m3读取数据loadHS300Data*画两个蜡烛图,一个是2010年的,一个2010年6月的subplot(2,1,1)%2010年的数据,根据时间数据的年份判断Idx2010=find(year(Date)=2010);candle(HighPrice(Idx2010),LowPrice(Idx2010),ClosePrice(Idx2010),.OpenPrice(Id×2010),(,Date(Idx2010),12);%时间格式为“月/年”title(,2010年K线,)%2010年交易量subplot(2,1,2)bar(Date(Idx2010),Vol(Idx2010)dateaxis(,x,12)带设置数据使得两个子图的X轴而齐axis(Date(Idx2010(1),Date(Idx2010(end),O,max(Vol(Idx2010)title(,2010年交易量,)结果图为:400035300025002010年K线20JanWAprWJu10OctIOJanll图3沪深300指数K线图与交易量图3技术指标计算3.1移动平均线移动平均线是应用最普遍的技术指标之一,它帮助交易者确认现有趋势、判断将出现的趋势、发现过度延生即将反转的趋势。移动平均线(MA)是以道琼斯的“平均成本概念”为理论基础,采用统计学中”移动平均”的原理,将一段时期内的股票价格平均值连成曲线,用来显示股价的历史波动情况,进而反映股价指数未来发展趋势的技术分析方法。它是道氏理论的形象化表述。在Matlab中计算移动平均线的函数为movavgo函数语法:画图:movavg(Asset,Lead,Lag,Alpha)返回数据不画图:Short,Long=movavg(Asset,Lead,Lag,Alpha)输入参数:Asset:资产价格序列1.ead:ShOrt移动平均线的周期,例如3天;1.ag:Long移动平均线的周期,例如20天;Alpha:平均的方法,(默认)0为算术平均值,0.5为平方根权重加权平均值,1为线性加权平均值,2为平方加权平平均值输出参数:Short:Short移动平均线1.ong:Long移动平均线例如,以艺迷300指数收盘价,Lead=3、Lag=20计算移动平均线,程序movavgTest.m:8读取数据loadHS300Data需计算移动平均值1.ead=3;lag=20;Alpha=O;Short,Long=movavg(ClosePrice,Lead,lag,Alpha);电画图plot(DaterClosePrice);holdonplot(Date(Leadzend),Short(Leadzend),r-,);plot(Date(lag:end),Long(lag:end),b.-,);dateaxis(,x,12)3标记线型legend(,ClosePrcie,'ShortMovavg','LongMovavg')%X轴名称xlabel('date,)iY轴名称ylabel('price,)3标题title(,Movavg')结果如图:图4沪深300移动平均线3.2布林带布林带由布林格(Bollinger)发明,也叫布林通道,是各种投资市场广泛运用的路径分析指标。一般价格的波动是在一定的区间内的,区间的宽度代表价格的变动幅度,越宽表示价格变动幅度越大,越窄表示价格变动幅度越小。布林带由支撑线(Lc)WER)、阻力线(UPER)和中线(MID)三者组成,当价格突破阻力线(或支撑线)时,表示卖出(或买入)时机。SD()为计算标准差中间线=20日均线UP线=20日均线÷2SD(20日收市价)Down线=20日均线-2SD(20日收市价)在Matlab中计算布林带的函数为bollinger>函数语法:mid,upprzlowr=bollinger(data,wsizezwtsznstd)输入参数:Data:时间序列数据Wsize:(可选)窗口大小(数据长度),默认为20Wts:(可选)权重因子,默认为0Nstd:(可选)上下届的标准差倍数,默认为2输出参数:mid,upprzlowr:布林带的中值、上届与下届。例如,以沪深300指数收盘价,计算布林带,程序bollingerTest.mi电读取数据loadHS300Data电计算移动平均值wsize=20;wts=0;nstd=2;mid,uppr,lowr)=bollinger(ClosePricerwsize,wts,nstd);i画图plot(DaterClosePricez,k,);holdonplot(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,r12)电标记线型legend(,ClosePrcie,mid,uppr,r,lowr,)iX轴名称xlabel('date')%Y轴名称ylabel('price')电标题title('bollinger,)计算结果为:图5沪深300布林带3.3平滑异同移动平均线MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线,MACD的意义和双移动平均线基本相同,但阅读起来更方便。当MACD从负数转向正数,是买的信号。当MACD从正数转向负数,是卖的信号。当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。D工E线(Difference)短期移动平均线和长期移动平均线的离差值;DEA线(DifferenceExponentialAverage)D工F线的M日指数平滑移动平均线;MACD线D工F线与DEA线的差。在Matlab中计算MACD的函数为macdo函数语法:macdvec,nineerma=macd(data)输入参数:data:价格序列输出参数:macdvec:MACD线nineperma:thenine-periodexponentialmovingaverage例如,竺邺300指数收盘价,计算MACD线,型序MACDTeSt.m电3电读取数据loadHS300Data¥计算MACDmacdvec,nineperma=macd(ClosePrice);画图subplot(2,1)电沪深300收盘价图plot(DaterClosePrice);legend(,ClosePrice')dateaxis(,x,12);SUbPIot(2,1,2)沿沪深300MACD指标plot(Date,macdvec,'r,);holdonplot(Date,nineperma,b-,);legend(,Macdvec,Nineperma,)dateaxis(,x,12);结果图为:4000图6沪深MACD注释:函数的演示案例以沪深300日行情为例,若使用高频数据则将数据代入函数即可。3.4其他技术指标表1其他技术指标与函数MatIab函数指标名词释义adlineAccumulationZDistributionline累积/派发线(AccumulationZDistributionLine)指标由Marc-Chaikin提出,是一种非常流行的平横交易量指标。其原理与OBV类似,但是只以当日的收盘价位来估算成交流量,用于估定一段时间内该证券累积的资金流量。adoscAccumulationZDistributionoscillator累积/派发线震荡指标bollingerTimeseriesBollingerband布林带由布林格(Bollinger)发明,也叫布林通道,是各种投资市场广泛运用的路径分析指标。一般价格的波动是在一定的区间内的,区间的宽度代表价格的变动幅度,越宽表示价格变动幅度越大,越窄表示价格变动幅度越小。布林带由支撑线(LOWER)、阻力线(UPER)和中线(MID)三者组成,当价格突破阻力线(或支撑线)时,表示卖出(或买入)时机。chaikoscChaikinoscillator蔡金摆动指标,这个指标由三个主耍部分组成。首先:如果股票或指数高于一天之内的平仓价(你可以用max+min2计算出平均值),就意味着一天的积累。越接近股票的平仓指数或最大指数,积累就越活跃。相反地,如果股票的平仓价低于一天的平均值,就意味着分布带来的位置。越接近最低值,分布就越活跃ChaikvolatChaikinvolatility蔡金波动性指标一计算最高价和最低价之间的价差。以在最大和最小之间的振幅为基础蔡金波动指标来断定波动价值。与真实范围平均数不同,蔡金波动制表在账户中没有间隔。根Chaikin的诠释,指标价值的增长直接关系到短的时间空隙,就是说价格接近他们的最小值(像当惊慌卖出),在长时间里指标波动减缓,表明价格处于繁忙状态(例如,条件成熟牛市的状态)。macdMovingverageConvergenceZDivergence(MCD)MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线,MACD的意义和双移动平均线基本相同,但阅读起来更方便。当MACD从负数转向正数,是买的信号。当MACD从正数转向负数,是卖的信号。当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。onbalvolOn-BalanceVolume(OBV)OBV的英文全称是:OnBalanceVolume.中英名称可翻译为:平衡交易量,是由美国的投资分析家JoeGranViUe所创。该指标通过统计成交量变动的趋势来推测股价趋势。OBV以“N”字型为波动单位,并且由许许多多“N”型波构成了OBV的曲线图,对一浪高于一浪的“N”型波,称其为“上升潮”(UPTIDE),至于上升潮中的下跌回落则称为“跌潮”(DOWNFIELD)pvtrendPriceandVolumeTrend(PVT)价量趋势指标(PVT),类似能量潮指标,显示增长交易成交量总和计算平仓价的改变。在OBV的情况下,如果平仓价处于高水平,我们添加当前成交量到当前指标值并且减去其余的价值。在PVT的情况下,只有部分当前成交量被添加到PVT值,你必须指出前一个柱当前价格和平仓价之间的差别rsindexRelativeStrengthIndex(RSI)分析RSI指标最为普遍的方法是:我们要寻找这样一个分离的情况,在那点上,证券的价格是创新高的,但RSl指标并未能超过它以前的那个高度。这样的分离暗示着一个迫近的相反趋势。当RSI指标那时开始反转,并且下降到它最近的那个低谷,人们称之为“失败摇摆”,“失败摇摆”被看作为是即将到来的一个相反趋势的确认。StochoscStochasticoscillator随机隽荡技术指标比较一定时段里,价格的范围同证券价格收市值的相关情况。该振荡指标以双线来显示。主线被称为K线,第二根线被称为D线,它的数值是主线K的移动平均线。K通常显示为一个固定的曲线,而D线则显示为点状曲线。willadWilliamsAccumulationZDistributionline终极摆动指标通常摆动指标是比较金融工具的平均价格和之前n周期它的价值。一次LarryWiIIiamS注意到这种指标的效率有所不同,它取决于你需要计算的单周期数。所以他创建了终极摆动指标,能够使用大强度的三个摆动指标计算不同周期。WillpctrWilliams%R威廉赋指标是一个动态技术指标,由它来决定市场是否过度买入或买进。威廉的%R曲线和随机震荡指标非常类似。唯一的区别在与%R曲线有上下运动的标尺,而随机震荡指标有振动指数有内部的舒张4动态技术指标在实际应用中,技术分析指标都根据实时行情进行计算与绘图。历史的指标计算与绘图大多用来更盘(总结经验),实时动态的技术指标作为投资决策的依据。若何使用Matlab进行实现动态指标是本节需解决的主要内容。图7多指标动态图技术分析型的投资者为提高判断的准确性,通常使用多个技术指标。如图7所示,使用Matlab实现的多指标的动态计等与绘图,里号为movieTest.m读取数据loadHS300DataK线图移动平均线布林带MACD专使用循环方式画图(也可以采用触发的方式)告画2010-2011年前IoO个交易日的动态图,将这100个数据视作TiCk数据(6秒)3从第51个数据开始绘图(一般绘图需要历史数据)i画图figurefori=51:100电价格subplot(2,2,1)plot(Date(1:i),ClosePrice(1:i),b');holdon当将图像的长度设定为100个数据点也可根据实际情况调整,3个小时若每6秒个数据,数据长度为1800plot(Date(100),ClosePrice(100);dateaxis(,x,12)title('价格')legend(,Price,)drawnow告移动平均线subplot(2,2,2)(Short,Long=movavg(ClosePrice(1:i),3,20,0);书画图plot(Date(1:i),ClosePrice(1:i);holdonplot(Date(3:i),Short(3:i),r-,);plot(Date(20:i),Long(20:i),b.-,);plot(Date(100),ClosePrice(100);dateaxis(,x,12)3将图像的长度设定为100个数据点%可根据实际情况调整,3个小时若每6秒个数据,数据长度为1800*标记线型legend('ClosePrcie,'ShortMovavg','LongMovavg')title移动平均线,)drawnow宅布林带subplot(2,2,3)wsize=20;mid,uppr,lowr=bollinger(ClosePrice(1:i),20,0,2);plot(Date(1:i),ClosePrice(1:i),k,);holdonplot(Date(wsize:i),mid(wsize:i),'b-,);plot(Date(wsize:i),uppr(wsize:i),r.,);plot(Date(wsize:i),Iowr(wsize:i),r.,);%将图像的长度设定为100个数据点*可根据实际情况调整,3个小时若每6秒一个数据,数据长度为1800plot(Date(100),ClosePrice(100);dateaxis(,',12),标记线型legend(,ClosePrcie,mid,uppr,Iowr,)title('bollinger')drawnow%MACDsubplot(2,2,4)(macdvec,nineperma)=macd(ClosePrice(1:i);plot(Date(1:i),macdvec(1:i)r,r,);holdonplot(Date(1:i),nineperma(1:i),b-,);legend(,Macdvec,Nineperma,)和将图像的长度设定为100个数据点告可根据实际情况调整,3个小时若每6秒一个数据,数据长度为1800plot(Date(100),0);dateaxis(,x,12);title(,MACD,)drawnow3暂停6Spause(6)电显示运行阶段sprintf('Nowrun%d,i)end注释:动态画图的触发机制有两种,一种是每个固定时间进行画图一次,另一种是若有新数据画图一次。对于证券市场来说,每个TiCk(交易所发送数据的间隔时间)都有新的行情数据。获取实时数据的方式有多种,例如:从API接口获取,从实时DBF文件读取等等。

    注意事项

    本文(MATLAB程序设计技术分析-指标计算与绘图.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开