《MATLAB程序设计技术分析-指标计算与绘图.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计技术分析-指标计算与绘图.docx(12页珍藏版)》请在第壹文秘上搜索。
1、技术分析-指标计算与绘图证券市场的价格是复杂变化的,投资者在这个市场上进行投资时都要有一套方法来制定或选择投资策略进行投资。股票技术分析是以预测市场价格变化的未来趋势为目的,通过分析历史图表对市场价格的运动进行分析的一种方法。股票技术分析是证券投资市场中非常普遍应用的一种分析方法。本章节目标为使用MatIab函数计算主要技术分析指标并绘图。1理论简介股票基本分析的目的是为了判断股票现行股价的价位是否合理并描绘出它长远的发展空间,而股票技术分析主要是预测短期内股价涨跌的趋势。通过基本分析我们可以了解应购买何种股票,而技术分析则让我们把握具体购买的时机。在时间上,技术分析法注重短期分析,在预测旧趋
2、势结束和新趋势开始方面优于基本分析法,但在预测较长期趋势方面则不如后者。大多数成功的股票投资者都是把两种分析方法结合起来加以运用。他们用基本分析法估计较长期趋势,而用技术分析法判断短期走势和确定买卖的时机。股票技术分析和基本分析都认为股价是由供求关系所决定。基本分析主要是根据对影响供需关系种种因素的分析来预测股价走势,而技术分析则是根据股价本身的变化来预测股价走势。技术分析的基本观点是:所有股票的实际供需量及其背后起引导作用的种种因素,包括股票市场上每个人对未来的希望、担心、恐惧等等,都集中反映在股票的价格和交易量上。股票技术分析的理论基础是空中楼阁理论。空中楼阁理论是美国著名经济学家凯恩斯于
3、1936年提出的,该理论完全抛开股票的内在价值,强调心理构造出来的空中楼阁。投资者之所以要以一定的价格购买某种股票,是因为他相信有人将以更高的价格向他购买这种股票。至于股价的高低,这并不重要,重要的是存在更大的“笨蛋”愿以更高的价格向你购买。精明的投资者无须去计算股票的内在价值,他所须做的只是抢在最大“笨蛋”之前成交,即股价达到最低点之前买进股票,而在股价达到最高点之后将其卖出。2行情数据的K线图2.1数据读取技术分析的指标计算与绘图分析,以2010-2011年沪深300指数行情数据为例进行函数的编程与绘图。奥贴板G字体对齐方式ftK16J-I1ABCDEF000300.SH000300.SH
4、000300.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.4
5、608,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.3
6、203,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
7、/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.ow
8、Price=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:最高价序列
9、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),.
10、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);超时间格式为“月/年”title2
11、010年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
12、),LowPrice(Idx2010),ClosePrice(Idx2010),.OpenPrice(Id2010),(,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线20JanWAprW
13、Ju10OctIOJanll图3沪深300指数K线图与交易量图3技术指标计算3.1移动平均线移动平均线是应用最普遍的技术指标之一,它帮助交易者确认现有趋势、判断将出现的趋势、发现过度延生即将反转的趋势。移动平均线(MA)是以道琼斯的“平均成本概念”为理论基础,采用统计学中”移动平均”的原理,将一段时期内的股票价格平均值连成曲线,用来显示股价的历史波动情况,进而反映股价指数未来发展趋势的技术分析方法。它是道氏理论的形象化表述。在Matlab中计算移动平均线的函数为movavgo函数语法:画图:movavg(Asset,Lead,Lag,Alpha)返回数据不画图:Short,Long=movav
14、g(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,)