好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MT4编程实例:箭头符号.doc

5页
  • 卖家[上传人]:cl****1
  • 文档编号:561360858
  • 上传时间:2023-11-19
  • 文档格式:DOC
  • 文档大小:40.51KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • MT4编程实例:箭头符号(2008-07-05 21:37:14) 转载符号是一种断断续续的指标线在指标线有值区域,指标线显示;在指标线无值区域,指标线隐藏例如下图:当价格上穿、下穿均线时,均线上出现一个标记符号   原理也很简单:在上图中,存在二条指标线,一条是均线,另一条是笑脸符号线均线在任何位置都有值,所以均线是一条连续的曲线;当价格上、下穿均线时,符号线被赋予了均线值;而在其他位置上,符号线被赋了空值所以只是在价格上、下穿均线的位置上,符号线才有值,才能出现笑脸符号因为符号线只是个别位置有值,所以符号线仅在个别位置显现符号也正好落在均线上,因为符号线值=均线值如果符号线被赋了别的值,例如(符号线=均线+10点),那么符号水平坐标不变,垂直坐标将是均线上方的10点位置源码如下://======================================================#property  indicator_chart_window#property  indicator_buffers 1           #property  indicator_color1 Yellowextern int  均线=10;double mk[];double temp0,temp1;int init()  {    IndicatorBuffers(1);      SetIndexBuffer(0,mk);    SetIndexStyle(0,DRAW_ARROW);    SetIndexArrow(0,204);    IndicatorDigits(Digits);   return(0);  }int start()  {   int limit;   int counted_bars=IndicatorCounted();   if(counted_bars>0) counted_bars--;   limit=Bars-counted_bars-均线;   for(int i=0; itemp0  && Close[i+1]temp1)  mk[i]=temp0;      }  return(0);  }//源码到此已结束=============================================语句简要解释如下:=============================================#property  indicator_chart_window指标放在主图#property  indicator_buffers 1           设置指标线数为1条#property  indicator_color1 Yellow设置第一条指标线颜色为黄色extern int  均线=10;设立一个自定义变量,允许外部值修改,整数形,变量名为"均线",默认值10double mk[];设立一个自定义数组,双精度型double temp0,temp1;设立二个自定义变量,双精度型,变量名为temp0、temp1int init()设立初始化函数init。

      init为系统规定函数名,函数内容自定义该函数在指标被加载时仅运行一次  {    IndicatorBuffers(1);    指标线数量为1条      SetIndexBuffer(0,mk);    第一条指标线的数组为mk    SetIndexStyle(0,DRAW_ARROW);    第一条指标线的线型为箭头符号    SetIndexArrow(0,204);    第一条指标线的箭头符号为第204种符号,如果换一个编号,那出现的就是另一种符号箭头符号的编码详见《MT4编程参考》    IndicatorDigits(Digits);    设置指标线的小数位数    Digits=当前汇率的小数位数,如日元叉盘Digits=2,其他币对Digits==4   return(0);   函数结束,返回零值  }int start()设立触发函数startstart为系统规定函数名,函数内容自定义当数据变动时,start函数被触发  {   int limit;   设立整数型自定义变量limit   int counted_bars=IndicatorCounted();   设立整数型自定义变量counted_bars,并将IndicatorCounted()的值赋给counted_bars   IndicatorCounted()为缓存数量,即已经计算过值的烛柱数   if(counted_bars>0) counted_bars--;   如果counted_bars大于零,则将counted_bars的值减掉1   这是为了配合下一句,以避免limit相差1而发生出错   limit=Bars-counted_bars-均线;   这是给limit赋值   Bars为图表中的柱数   counted_bars为已经赋值的柱数   这样limit的结果就是未赋值的烛柱数   再减去“均线”是因为图表最右边段均线无意义   for(int i=0; i

         i++相当于i=i+1,即i值在原有数值上增加1      {       temp0=iMA(NULL,0,均线,0,0,0,i);       把均线在i位置上的值赋给temp0       iMA:均线取值函数       temp1=iMA(NULL,0,均线,0,0,0,i+1);       把均线在(i+1)位置上的值赋给temp1       mk[i]=EMPTY_VALUE;       给数组mk在i位置上赋空值       EMPTY_VALUE就是空值       if(Close[i]>temp0  && Close[i+1]temp1)  mk[i]=temp0;       与上一句相似      }  return(0);  start函数结束语句。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.