您好,欢迎访问三七文档
基于移动平均线的交易提示设计专业:金融工程学号:12992695姓名:孙丹妮基于移动平均线的交易提示设计摘要:移动平均线是应用最普遍的技术指标之一,它帮助交易者确认现有趋势判断将出现的趋势、发现过度延生即将反转的趋势。不同的移动平均线的交叉点是交易时机的体现。时间短的均线在下方向上穿越时间长一点的均线,然后这2根均线方向均朝上,则此均线组合为“均线金叉”,反之为“均线死叉”。我们利用matlab做出均线图,并且利用if语句和for循环做出金叉死叉点,形成一个交易系统,对投资者有很好的帮助分析的作用。关键词:移动平均线交易系统金叉死叉TipDesignMovingAverageBasedTradingAbstract:themovingaveragelineisoneofthemostcommonapplicationoftechnicalindicators,ithelptradersidentifycurrenttrendstojudgetrendswillappear,foundthatexcessiveextensionofthereversedtendency.Crosspointmovingaveragedifferentisreflectedinthetransactionopportunity.Timeisshortoftheaverageforthenextdirectionthroughalongtimeofthemovingaverage,thenthe2movingdirectionisupward,theaverageportfoliofortheaveragegoldenfork,contrarytotheaveragedeathcross.Weusematlabtomaketheaveragefigure,andtheuseofifstatementsandforloopsmakeJinchaSicha,formingatradingsystem,hasaverygoodanalysistotheroleofhelpinginvestors.Keywords:movingaveragetradingsystemdeathcrossgoldenfork目录一、问题理解与步骤设计…………………………………1(一)问题理解…………………………………1(二)步骤设计…………………………………1二、算法说明(建立模型)…………………………………2三、收集数据…………………………………3四、设计程序…………………………………3五、结果讨论…………………………………7一、问题理解与步骤设计(一)问题理解对于此次论文,我所选的题目是“基于移动平均线的交易提示设计”。题目的要求是:选取一个股票,在MATLAB中为股票数据生成K线图以及移动平均线图,并设定一个金叉死叉的操作系统,在图中显示交易提示,根据每日更新的数据自动提示买点和卖点。证券市场的价格是复杂变化的,投资者在这个市场上进行投资时都要有一套方法来制定或选择投资策略进行投资.股票技术分析是以预测市场价格变化的未来趋势为目的,通过分析历史图表对市场价格的运动进行分析的一种方法.股票技术分析是证券投资市场中非常普遍应用的一种分析方法。股票技术分析和基本分析都认为股价是由供求关系所决定.基本分析主要是根据对影响供需关系种种因素的分析来预测股价走势,而技术分析则是根据股价本身的变化来预测股价走势.技术分析的基本观点是:所有股票的实际供需量及其背后起引导作用的种种因素,包括股票市场上每个人对未来的希望、担心、恐惧等等,都集中反映在股票的价格和交易量上.股票技术分析的理论基础是空中楼阁理论.空中楼阁理论是美国著名经济学家凯恩斯于1936年提出的,该理论完全抛开股票的内在价值,强调心理构造出来的空中楼阁.投资者之所以要以一定的价格购买某种股票,是因为他相信有人将以更高的价格向他购买这种股票.至于股价的高低,这并不重要,重要的是存在更大的笨蛋愿以更高的价格向你购买.精明的投资者无须去计算股票的内在价值,他所须做的只是抢在最大笨蛋之前成交,即股价达到最低点之前买进股票,而在股价达到最高点之后将其卖出.在股票交易辅助软件中我们可以很直观的根据股票每日的K线图来对股票进行技术分析,并且它自身带有MA5,MA20,MA30,M60等不同时间长短的均线。根据题目要求我们需要根据股票的数据利用MATLAB生成一个K线图,并且同时画出短均线和长均线来判断金叉死叉的位置,时间短的均线在下方向上穿越时间长一点的均线,然后这2根均线方向均朝上,则此均线组合为“均线金叉”,反之为“均线死叉”。从而确定买点卖点,形成一个交易系统。通过这个交易系统我们可以根据数据很清楚的了解的一个股票的每笔交易。同时我们可以根据我们得到的交易系统的结论总结归纳一个股票之后的走势。很多人认为股票的走势是不稳定的,但是我们在不规律中可以利用数据分析,MA均线的交叉对比来确定什么时候买入或者卖出,从而实现利益最大化。(二)步骤设计1.选取股票设计这个交易系统首先我需要选取一个股票。老师在上课提到最好不要选取一个最开始时候价格是负,那样会对我们的计算造成干扰,并且最好选取大盘股。结合多点因素,我选取了宁波联合(600051)。这只股票上市于1997.04.10,时间长,股票起伏较大,金叉死叉明显,便于我分析。2.收集数据在确定股票后,我们需要收集这个股票历年的交易和股价数据。现在很多股票交易系统都有这个功能,我就不一一赘述。具体的数据导入以及处理在后面详细叙述。3.用matlab设计程序Matlab是我们完成这个程序最重要的软件。我们编写程序,绘制K线图以及均线,并且利用循环系统标出金叉死叉点。设计程序具体内容在后面详细叙述。4.检验以及整理结果算出结果后,我们将用matlab程序算出的图中对应的金叉点以及死叉点与实际的K线图的交易点进行对比检验是否正确。以及整理数据。二、算法说明(建立模型)移动平均线是应用最普遍的技术指标之一,它帮助交易者确认现有趋势、判断将出现的趋势、发现过度延生即将反转的趋势.移动平均线(MA)是以道7琼斯的平均成本概念为理论基础,采用统计学中移动平均的原理,将一段时期内的股票价格平均值连成曲线,用来显示股价的历史波动情况,进而反映股价指数未来发展趋势的技术分析方法.它是道氏理论的形象化表述.在MATLAB中计算移动平均线的函数为movavg.函数语法:画图:movavg(Asset,Lead,Lag,Alpha)返回数据不画图:[Short,Long]=movavg(Asset,Lead,Lag,Alpha)根据这个函数语法我们可以根据我们自己的选择不同的短均线和长均线,例如5MA与30MA,10MA与60MA。不同的组合有不同的交易系统,均线间隔越大,金叉死叉则越少,反之则相反。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三、收集数据在前面提到我们已经确定研究的股票是宁波联合(600015)。接下来我们需要将这个股票自上市来的所有数据。首先我们打开股票分析软件,我所用的是通达信。利用软件自带的数据下载,将数据用excel格式下载下来。在导入matlab前,要注意文件格式。正确的文件应该是xxxx.xls型的。我从通达信中下载出来的文件是SH600051.xls,并且保存至桌面。四、设计程序完成前面几个步骤,我们就开始设计程序。首先为了我们之后处理数据方便,我们先将工作目录转换至桌面。我们可以通过在编程中输入a=1,并且把这个程序保存至桌面,改变保存路径。之后我们在看工作目录可以在桌面中找到我们之前已经保存了的excel文件。接下就是导入数据,在这个程序中,我们运用matlab自带的函数导入数据,函数语言是[data,textdate]=xlsread(filename)输入参数:Filename:目标文件地址(若文件在MATLAB当前的工作目录中,Filename为文件名,如果文件不在MATLAB当前的工作目录中,filename为文件路径\文件名)输出参数:Data:数值数据Textdate:文字数据以下就是我根据函数所编写的导入数据程序:filename='SH600051.xls';[num,txt,raw]=xlsread(filename);date=datenum(txt(3:length(txt)-1,1));openprice=num(:,1);highprice=num(:,2);lowprice=num(:,3);closeprice=num(:,4);vol=num(:,5);savedatadateopenpricehighpricelowpriceclosepricevol在上面的程序中openprice是指开盘价,highprice是指最高价,lowprice是指最低价,closeprice是指收盘价。根据这四个数据我们可以绘制出K线图。在文件导入之后,我们将工作记录中数据与这四种价格一一对应,进行保存。在做完所有数据保存之后,我们开始作移动平均线。在之前的算法说明中,我们已经介绍了移动平均线理论的函数。我选择的均线是5MA和20MA。根据函数语言,我编制的程序语言为:loaddata%导入数据lead=5;lag=20;alpha=0;[short,long]=movavg(closeprice,lead,lag,alpha);%移动平均线函数plot(closeprice);%收盘价的程序图holdonplot(short(lead:end),'r--');%5MA线的程序图plot(long(lag:end),'b.-');%20MA线的程序图holdonlegend('closeprice','shortmovavg','longmovavg')%标记xlabel('date');%x轴ylabel('price');%y轴title('SH600051K线和MA');%标题运行这个程序出来的图为:细节图为:在平时的股票分析中,我们知道时间短的均线在下方向上穿越时间长一点的均线,然后这2根均线方向均朝上,则此均线组合为“均线金叉”,反之为“均线死叉”。根据这个定理,我们可以用for循环以及if语句编写程序,算出金叉死叉点。我们假设金叉输出的结果为1,死叉输出的结果为-1.在第一天的时候短线的比长线的数值小,并且在后一天的时候短线的值大于长线的时候,我们就输出值为1;反之,在第一天的时候长线的数值小于短线,并且之后一天长线的值大于短线,我们就输出值为-1.但是我们要注意在前20天是会出现有交叉的,因为20MA还没有生成,因此我们利用数据时,从20天的数据开始算。因此根据上面的叙述,我们编写出的程序语句为:fori=20:4131if(short(i)=long(i))&&(short(i+1)long(i+1))%表明金叉点p(i,1)=1;%金叉点用数据表示输出的值为1endif(short(i)=long(i))&&(short(i+1)long(i+1))%表明死叉点
本文标题:期末论文-
链接地址:https://www.777doc.com/doc-6420021 .html