MT4实例荟萃(入门者整理)..docVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MT4实例荟萃(入门者整理).

MT4实例荟萃 实例一、画一条指标线 2 实例二、MT4的报警 6 实例三、MT4编程实例:会变色的均线 9 实例四、顶底判断(2011-04-04 03:52:29) 15 实例五、 Pivot Point指标源码.mq4 18 实例六、双色MACD指标MACD_Colored_v102.mq4 22 实例七、Zigzag在Mt4中的代码 27 实例一、画一条指标线 要画指标线,只要在程序中写明以下几点就可以了: 第一、明确指标线所在窗口,是主图还是副图 第二、要建立数组,用以保存指标线在各个位置的值。 第三、要建立指标线与数组的对应关系,哪个数组对应哪条指标线 第四、要明确指标线的线型,是曲线还是柱线或者是箭头 第五、如果指标线是箭头,还要说明是哪种箭头 第六、给数组赋值 其中: 第一、二条写在文件头部中, 第三、四、五条写在init()函数中(init函数仅在指标加载时运行一次) 第六条写在start()函数中(start函数在数据发动变动时运行,变动一次运行一次) 下面以MACD为例说明 我们知道,MACD指标由二条曲线和一组红绿柱线组成。(下图一) 其中: 白线是二根均线的差; 紫线是白线的移动平均线; 红绿柱线则是白线和紫线的差,白线上穿紫线,出现红柱,下穿则出现绿柱。 我们从简单入手,先去除紫线和红绿柱线,仅保留其中的那根白线,来看白线是怎样画出来的。 下面是全部语句: #property indicator_separate_window #property indicator_color1 White #property indicator_level1 0 extern int FMA=12; extern int SMA=26; double buf[]; int init() { SetIndexBuffer(0,buf); SetIndexStyle(0,DRAW_LINE); return(0); } int start() { int limit=Bars-IndicatorCounted(); for(int i=0; ilt;limit; i++) { buf= iMA(NULL,0,FMA,0,1,0,i) -iMA(NULL,0,SMA,0,1,0,i); } return(0); } 说明如下: ============================================== ============================================== 以下为上述语句的简要说明 #property indicator_separate_window 指标放在副图 #property indicator_color1 White 第一条指标线为白色 #property indicator_level1 0 在副图中零值位置上画一条水平横线, extern int FMA=12; extern int SMA=26; 设立二个整数型变量,默认值为12和26,允许外部修改值 double buf[]; 设立一个数组 int init() 初始化函数。该函数在指标加载时只运行一次。init是系统默认的函数名,但使用时仍需要进行创设,所以要加定义符int { SetIndexBuffer(0,buf); 设置数组buf为第一条指标线 SetIndexStyle(0,DRAW_LINE); 设置第一条指标线线型为连续曲线 return(0); 函数结束语句 } int start() 指标触发函数。与init函数不同,该函数在有数据变化时被触发,如果数据被不断更新,则该函数将不断执行。start也是系统默认的函数名,但使用时也仍然需要进行创设,所以也要加定义符int { int limit=Bars-IndicatorCounted(); 自定义一个变量limit,并赋值 Bars是图表中的柱数 IndicatorCounted()缓存中的柱数,就是已经计算过的有值的柱数 这样limit的值就是未经计算的柱数,这样就可以起到优化程序的作用。 for(int i=0; ilt;limit; i++) 循环语句。 循环从i=0开始,每循环一次i值增加1,一直循环到ilt;limit不满足时结束循环 由于循环变量i为一个新变量,所以要先定义,加上整型变量定义符int 下面大括中为循环体,此例中只一条语句 { buf= iMA(NULL,0,FMA,0,1,0,i) -iMA(NULL,0,SMA,0,1,0,i); } 给数组buf赋值,其值分别为相应位置上两条均线的差 i是水平位置序号值

文档评论(0)

bhzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档