在mt中编写指标或EA时,iCustom()是一个非常有用的函数,它的功能是调用客户自己编写的的指标,并输出相应的指标值。
它的函数原型是这样的:
double iCustom(string symbol, int timeframe, string name, …, int mode, int shift)
symbol: 计算指标数据上的货币对名称. NULL表示当前货币对。
timeframe:时间周期。 可以时间周期列举任意值. 0表示当前图表的时间周期。
name: 客户指标完成程序名称,也就是你的自定义指标的名称了。
…: 参量设置(如果需要)。通过的参量和他们的顺序必须与自定义指标声明的外部变量对应。
mode: 索引行。 从0到7并且必须对应以其中一个使用的索引的 SetIndexBuffer 函数。
shift: 从显示缓存采取的值的索引(转移相对当前柱特定相当数量期间前)。
这里要注意的是,自己的指标名一定要用双引号引起来,因为name参数是sting型。
有了这个功能,我们可以先编一个指标做基础,然后再需要时进行调用,并可以用不同方式,不用时间周期来输出。
实例:
比如我自己先编了一个名叫“my_Ichimoku”的指标,这个指标mt4中有,较热门的“眼镜蛇”交易系统中也用到它,其中的云图有人把它看得很神,其实没什么。另外,它的线条太多,反而看不清,所以。自己编个只带云图的。上图就是它的效果。
现在,我们又编了一个名叫my_Ichimoku_2“的指标,目的是为了可以跨时间周期来查看云图。比如第一幅图是在15分钟线上用的,而如果我想在15分钟图上查看5分钟或1小时图上的云图。除了改编my_Ichimoku之外,也可以再编一个my_Ichimoku_2,在其中调用第一个指标。假如我们想看小时图上的情况,可以用这样的句子来完成。
……
sa1Buffer = iCustom(NULL, PERIOD_H1, “my_ichimoku”, myTK, myKi, mySk, 0, iBarShift(NULL, PERIOD_H1, iTime(NULL, 0, i)));
sb1Buffer = iCustom(NULL, PERIOD_H1, “my_ichimoku”, myTK, myKi, mySk, 1, iBarShift(NULL, PERIOD_H1, iTime(NULL, 0, i)));
//—(其中时间偏移用了函数iBarShift())
从上面可以看出,有了iCustom()函数,自定义指标的调用就非常方便,在希望以自定义指标为基础来编写EA时非常有用。
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!