MQL4自定义指标编写相关函数(二)

阅读 :
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com

本组函数用于设计和编写自定义指标。

这些函数不能用在智能交易和脚本中。

  • IndicatorBuffers() – 指标数据缓冲区
  • IndicatorCounted() – 指标计数
  • IndicatorDigits() – 设置指标精度
  • IndicatorShortName() – 设置指标简称
  • SetIndexArrow() – 设置指标箭头符号
  • SetIndexBuffer() – 设置指标缓冲区位置
  • SetIndexDrawBegin() – 设置指标线起始位置
  • SetIndexEmptyValue() – 设置图表画线空值
  • SetIndexLabel() – 设置指标线标签
  • SetIndexShift() – 设置指标线偏移值
  • SetIndexStyle() – 设置指标线样式
  • SetLevelStyle() – 设置水平线样式
  • SetLevelValue() – 设置水平线值

 

SetIndexDrawBegin() – 设置指标线起始位置

void SetIndexDrawBegin(int index, int begin)

设置开始绘制指标线的柱体(指标线从什么位置开始绘制)。指标线从左边绘制到右边,已给出的柱子左边的数组值不会显示在图表或数据窗口中。设置0作为默认值,所有数据将被绘出。

参数:

index - 指标线。必须在0至7之间。 begin - 开始绘制指标线的柱体编号。 

示例:

int init()  {//----使用2个额外的缓冲区用于计算。   IndicatorBuffers(3);//----画线设置   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);   SetIndexDrawBegin(0,SignalSMA);   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);//---- 设置 3 个指标缓冲区位置   SetIndexBuffer(0,ind_buffer1);   SetIndexBuffer(1,ind_buffer2);   SetIndexBuffer(2,ind_buffer3);//---- DataWindow 和自定义子窗口标签名称   IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");//---- 初始化完成   return(0);  }

SetIndexEmptyValue() – 设置图表画线空值

void SetIndexEmptyValue(int index, double value)

设置图表画线空值。设置的值不绘出或不显示在数据窗口。默认值为 EMPTY VALUE。

参数:

index - 指标线。必须在0至7之间。 value - 设置的"空值"。 

示例:

int init()  {//----设置 2 个指标缓冲区位置    SetIndexBuffer(0,ExtUppperBuffer);    SetIndexBuffer(1,ExtLowerBuffer);//---- 画出参数设置    SetIndexStyle(0,DRAW_ARROW);    SetIndexArrow(0,217);    SetIndexStyle(1,DRAW_ARROW);    SetIndexArrow(1,218);//---- 值为 0 不显示    SetIndexEmptyValue(0,0.0);    SetIndexEmptyValue(1,0.0);//----     SetIndexLabel(0,"Fractal Up");    SetIndexLabel(1,"Fractal Down");//---- 初始化完成   return(0);  }

    SetIndexLabel() – 设置指标线标签

    void SetIndexLabel(int index, string text)

    设置在数据窗口和快速提示中显示的指标线说明。

    参数:

    index - 指标线。必须在0至7之间。 text - 标签文本。NULL表示指标值在数据窗口中不显示。 

    示例:

    //+------------------------------------------------------------------+//| Ichimoku Kinko Hyo initialization function                       |//+------------------------------------------------------------------+int init()  {//----   SetIndexStyle(0,DRAW_LINE);   SetIndexBuffer(0,Tenkan_Buffer);   SetIndexDrawBegin(0,Tenkan-1);   SetIndexLabel(0,"Tenkan Sen");//----   SetIndexStyle(1,DRAW_LINE);   SetIndexBuffer(1,Kijun_Buffer);   SetIndexDrawBegin(1,Kijun-1);   SetIndexLabel(1,"Kijun Sen");//----   a_begin=Kijun; if(a_begin<Tenkan) a_begin=Tenkan;   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_DOT);   SetIndexBuffer(2,SpanA_Buffer);   SetIndexDrawBegin(2,Kijun+a_begin-1);   SetIndexShift(2,Kijun);//---- 在DataWindow窗口 Up Kumo 线不显示   SetIndexLabel(2,NULL);   SetIndexStyle(5,DRAW_LINE,STYLE_DOT);   SetIndexBuffer(5,SpanA2_Buffer);   SetIndexDrawBegin(5,Kijun+a_begin-1);   SetIndexShift(5,Kijun);   SetIndexLabel(5,"Senkou Span A");//----   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_DOT);   SetIndexBuffer(3,SpanB_Buffer);   SetIndexDrawBegin(3,Kijun+Senkou-1);   SetIndexShift(3,Kijun);//---- 在DataWindow窗口上 Down Kumo 线不显示   SetIndexLabel(3,NULL);//----   SetIndexStyle(6,DRAW_LINE,STYLE_DOT);   SetIndexBuffer(6,SpanB2_Buffer);   SetIndexDrawBegin(6,Kijun+Senkou-1);   SetIndexShift(6,Kijun);   SetIndexLabel(6,"Senkou Span B");//----   SetIndexStyle(4,DRAW_LINE);   SetIndexBuffer(4,Chinkou_Buffer);   SetIndexShift(4,-Kijun);   SetIndexLabel(4,"Chinkou Span");//----   return(0);  }

    SetIndexShift() – 设置指标线偏移值

    void SetIndexShift(int index, int shift)

    设置在数据窗口和快速提示中显示的指标线说明。

    参数:

    index - 指标线。必须在0至7之间。 shift - 柱体(K线)偏移值。 

    示例:

    //+------------------------------------------------------------------+//| Alligator initialization function                                |//+------------------------------------------------------------------+int init()  {//----当画线时指标线的偏移   SetIndexShift(0,JawsShift);   SetIndexShift(1,TeethShift);   SetIndexShift(2,LipsShift);//---- 当画线时指标线跳过的位置   SetIndexDrawBegin(0,JawsShift+JawsPeriod);   SetIndexDrawBegin(1,TeethShift+TeethPeriod);   SetIndexDrawBegin(2,LipsShift+LipsPeriod);//---- 设置 3 个指标缓冲区位置   SetIndexBuffer(0,ExtBlueBuffer);   SetIndexBuffer(1,ExtRedBuffer);   SetIndexBuffer(2,ExtLimeBuffer);//---- 画出设置   SetIndexStyle(0,DRAW_LINE);   SetIndexStyle(1,DRAW_LINE);   SetIndexStyle(2,DRAW_LINE);//---- 指标线标签文本   SetIndexLabel(0,"Gator Jaws");   SetIndexLabel(1,"Gator Teeth");   SetIndexLabel(2,"Gator Lips");//---- 初始化完成   return(0);  }

    SetIndexStyle() – 设置指标线样式

    void SetIndexStyle(int index, int type, void style, void width, void clr)

    为指定的指标线设置新类型、样式、宽度和颜色。

    参数:

    index - 指标线。必须在0至7之间。 type - 形状样式,可以是 划线形状样式列表 中任意一个。 style - 线型。可以应用一个像素的粗线,可以是 划线形状样式列表 其中一个。EMPTY值表示线型不变。width - 线宽。有效值是1,2,3,4,5。EMPTY值表示线宽不变。clr - 线的颜色。省略本参数表示颜色将保持不变

    示例:

      SetIndexStyle(3, DRAW_LINE, EMPTY, 2, Red);

    SetLevelStyle() – 设置水平线样式

    void SetLevelStyle(int draw_style, int line_width, void clr)

    本函数设置输出到独立窗口的指标水平线的样式、宽度和颜色。

    参数:

    draw_style - 形状样式,可以是 划线形状样式列表 中任意一个。 line_width - 线宽。有效值是1,2,3,4,5。EMPTY值表示线宽不变。clr - 线的颜色。空值CLR_NONE表示颜色不变。

    示例:

      //---- 红色单线显示水平   SetLevelStyle(STYLE_SOLID,2,Red)

    SetLevelValue() – 设置水平线值

    void SetLevelValue(int level, double value)

    本函数设置在独立窗口输出的水平指标线的值。

    参数:

    level - 水平线编号,0到31。 value - 给出的水平线值。clr - 线的颜色。空值CLR_NONE表示颜色不变。

    示例:

      SetLevelValue(1,3.14);
    欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
    本文标题:MQL4自定义指标编写相关函数(二) - MT4平台MQL4编程学习
    本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/49044.html

    相关文章

    • MT4教程是炒汇新手最实用的教程

      市场运动规律的最直接体现,就是趋势。正确的对待趋势的唯一做法,就是顺应趋势而操作。这是在投机市场里赚钱乃至长期生存的第一大法宝。美国一位著名的投资高手斯坦利&middot;克罗曾经说过:“最赚钱和最令我安心的操...

      MQL4编程学习
    • MQL4客户端全局变量

      这里的 客户端全局变量 不要与MQL4程序中定义的 全局变量 混淆。最后访问的 "客户端全局变量" 可以在客户端内保存4个星期,然后将自动删除。对于 "客户端全局变量" 的访问不仅仅是新值的设定,也可以对其进行...

      MQL4编程学习
    • 外汇智能EA交易示例
      外汇智能EA交易示例

      交易原理:Long (BUY) entry &ndash; MACD指标在零以下, 从下至上并且穿过低端的信号线。 Short (SELL) entry &ndash; MACD 指标在零以上,从上至下并且穿过顶端的信号线赢利上限的执行,追踪止损的执行或当穿过 MA...

      MQL4编程学习
    • 大数据时代的EA

      传统的统计都是基于取样方法的,也就是说因为数据量太大了,无法全面分析,而创造的一种方法,大多数情况下,最多抽取10%的典型数据进行统计分析,这个取样或多或少都受个人偏好的影响,就连美国在房地产股票预测上都出现了重大偏差,他们为了预测未来的房地产行情,取了20年所有的数据,研究结果表明房价不会上涨,这明显是个错误结论,如果他们用过去200年数据来分析,就不会有这个结论。...

      MQL4编程学习
    • 外汇EA是什么?以及EA的工作原理

      EA 即 Expert Advisors 的英文缩写,中文意思专家顾问,俗称智能交易系统,就是由电脑模拟交易员的下单操作进行机器自动交易的过程。...

      MQL4编程学习
    你可能感兴趣