欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Zigzag指标算法.docx

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

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

    Zigzag指标算法.docx

    1、Zigzag指标算法Zigzag指标算法如官方所述:Zigzag指标是连接一系列价格点的趋势线。所以Zigzag主要用途是来标识过去价格中的相对高低点,并以这些点之间的连线来表示这段价格变动的趋势。文章来自:股票自动机-AI Invest:专注于自动交易系统研究和开发的博客1.Zigzag的3个参数Zigzag在识别高低点的过程中,主要设置了以下三个参数:ExtDepth, DextDeviation以及ExtBackstep。程序中的表示:extern int ExtDepth=12;extern int ExtDeviation=5;extern int ExtBackstep=3;说明:

    2、ExtDepth:用于设置高低点是相对与过去多少个Bars(价格图形中的一个柱子)而言。Mt4中默认是12。ExtDeviation:用于设置重新计算高低点时,与前一高低点的相对点差。默认值是5, 也就是说如果A)当前高点上个高点 5 ,或者B)当前低点12)。Bar-14Bar-4Bar-1Bar-Current高(3.1)低(1.5)高(2.1) X对于Bar-Current,即当前的价格X,CaseI.如果 X =2.1ExtDeviation,则根据Zigzag的定义,这将是一个新的高点。假设这里X=2.3,那么我们绘制指标的时候应该成为:Bar-14Bar-4Bar-Current高

    3、(3.1)低(1.5)高(2.3)CaseII.如果 1.5- ExtDeviationX=X,则这是一个新的低点。假设这里X=1.3,则我们绘制指标的时候应该成为:Bar-14Bar-Current高(3.1) 低(1.3)这个时候,之前的Bar-4因为在我们定义的ExtBackstep之内(1-4),所以他的最低值会被清空,根据算法第三步的定义,我们会一直寻找低点直到发现Bar-Current,这时候已经遍历过Bar-1,所以Bar-1定义的高点也不再成为拐点。这也就是所谓的重绘部分,也因此诟病为“未来函数”因为所看见的当前最后的高低点可能在下个时间段里面被抹去。3Zigzag源码及解释:

    4、Mt4的Zigzag源码里面的注释特别稀罕,估计是感觉实现比较简单,所以一概略去恩,极坏的编程习惯。下面简要说明一下,中文部分都是追加的解释:/ /|Zigzag.mq4 |/|Copyright ?2005-2007, MetaQuotes Software Corp. |/| |/ #property copyright “Copyright ?2007, MetaQuotes SoftwareCorp.”#propertylink“/Mt4特有的指标属性设置#propertyindicator_chart_window/主窗口进行指标显示#property indicator_buffe

    5、rs1/指标运用到数值的个数#property indicator_color1Red/指标显示颜色/- indicator parameters/Zigzag的三个参数extern int ExtDepth=12;extern int ExtDeviation=5;extern int ExtBackstep=3;/- indicator buffers/指标的数值存储变量doubleZigzagBuffer;/拐点doubleHighMapBuffer;/高点的临时变量数组doubleLowMapBuffer;/低点的临时变量数组int level=3; / recountings dep

    6、th/最近已知的三个拐点bool downloadhistory=false; /是否第一次计算/ /| Custom indicator initializationfunction|/ /Init函数是Mt4指标第一次载入之后运行的初期化函数int init() IndicatorBuffers(3);/对于缓冲储存器分配记忆应用自定义指标计算,用F1可以看到该函数的帮助和解释/- drawing settingsSetIndexStyle(0,DRAW_SECTION);/划线的风格/- indicator buffers mappingSetIndexBuffer(0,ZigzagBu

    7、ffer);SetIndexBuffer(1,HighMapBuffer);SetIndexBuffer(2,LowMapBuffer);SetIndexEmptyValue(0,0.0);/- indicator short name IndicatorShortName(”ZigZag(”ExtDepth ”,” ExtDeviation ”,” ExtBackstep”)”);/设置指标的简称。/- initialization done return(0); / /|/ /start函数是Mt4的主函数,当每次价格变动之后都会触发该函数的执行int start() /变量定义 /i:临

    8、时变量; /counted_bars :用于标识已经计算过的Bar数 int i, counted_bars =IndicatorCounted(); /limit:算法中所谓的开始计算位置; /counterZ:临时变量 /whatlookfor:用于标识当前计算的是高点或者低点 intlimit,counterZ,whatlookfor; /以下都是临时变量,具体设值时解释intshift,back,lasthighpos,lastlowpos; double val,res; doublecurlow,curhigh,lasthigh,lastlow; if (counted_bars=

    9、0& downloadhistory) / history wasdownloaded/指标载入时counted_bars为0,而downloadhistory为false,将在下一次价格变化时进行ArrayInitialize(ZigzagBuffer,0.0);ArrayInitialize(HighMapBuffer,0.0);ArrayInitialize(LowMapBuffer,0.0); if (counted_bars=0) /初期化,第一次运行时limit为除去ExtDepth个图形最初的部分。(算法1.1)limit=Bars-ExtDepth;downloadhistor

    10、y=true; if(counted_bars0)/如果之前已经计算过,找到最近已知的三个拐点(高点或低点),将计算位置设置为倒数第三个拐点。(算法1.2)while (counterZlevel& i=0;i)/清空第三个拐点后的数值,准备重新计算最后的拐点ZigzagBufferi=0.0;LowMapBufferi=0.0;HighMapBufferi=0.0;/算法Step2部分:计算高低点 for(shift=limit;shift=0; shift)/2.1计算ExtDepth区间内的低点val=LowiLowest(NULL,0,MODE_LOW,ExtDepth,shift);

    11、if(val=lastlow) val=0.0;else/如果该低点是当前低点,lastlow=val;if(Lowshift-val)(ExtDeviation*Point)val=0.0;/是否比上个低点还低ExtDeviation,不是的话则不进行回归处理else/找到一个新的低点for(back=1; backval)LowMapBuffershift back=0.0;/将新的低点进行记录if (Lowshift=val) LowMapBuffershift=val; elseLowMapBuffershift=0.0;/ highval=HighiHighest(NULL,0,MO

    12、DE_HIGH,ExtDepth,shift);if(val=lasthigh) val=0.0;elselasthigh=val;if(val-Highshift)(ExtDeviation*Point)val=0.0;elsefor(back=1; back=ExtBackstep; back )res=HighMapBuffershift back;if(res!=0)&(res=0;shift)res=0.0;switch(whatlookfor)/初期化的情况下,尝试找第一个高点或者是地点case 0: / look for peak or lawnif (lastlow=0 &la

    13、sthigh=0)/lastlow,lasthigh之前已经初始化,再次判断以保证正确性?if (HighMapBuffershift!=0)/发现高点lasthigh=Highshift;lasthighpos=shift;whatlookfor=-1;/下个寻找目标是低点ZigzagBuffershift=lasthigh;res=1;if (LowMapBuffershift!=0)/发现低点lastlow=Lowshift;lastlowpos=shift;whatlookfor=1;/下个寻找目标是高点ZigzagBuffershift=lastlow;res=1;break;cas

    14、e 1: / look forpeak/寻找高点if (LowMapBuffershift!=0.0 &LowMapBuffershiftlasthigh& LowMapBuffershift=0.0)ZigzagBufferlasthighpos=0.0;lasthighpos=shift;lasthigh=HighMapBuffershift;ZigzagBuffershift=lasthigh;if (LowMapBuffershift!=0.0 &HighMapBuffershift=0.0)lastlow=LowMapBuffershift;lastlowpos=shift;ZigzagBuffershift=lastlow;whatlookfor=1;break;default: return; return(0); / 4.总结以上就是对Zigzag算法和实现的分析。希望能够对大家编写指标和EA有所帮助。


    注意事项

    本文(Zigzag指标算法.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开