怎样把指标转换成EA(2)
接下来将指标EA化大致的做法是:
在EA中通过函数iCustom读取这个指标的当前K线输出值,得出当前的状态,来决定是否入场或者平仓并反向入场。
iCustom的具体用法:
指标一般都是曲线或者箭头两种。在这里我们要把曲线和箭头都看成是数组就容易理解了。
对于指标来说每一条曲线或者箭头都是写在与每个K线对应的数组中的,也就是说一条曲线对应一个数组,一个方向的箭头也是对应一个数组(有箭头的数组值是当时的价格,没箭头地方的数组值是“空”)
iCustom MT4的帮助里说的是:“计算指定的客户指标并且退回它的值”,即这个函数可以让你获取指定指标的第几个数组对应第几根K线上的计算数值。
具体如下:
double iCustom(string symbol, int timeframe, string name, iCus int mode, int shift)
计算指定的客户指标并且退回它的值。 必须在terminal_directory\experts\indicators目录内编写客户指标(*.EX4文件)。
参量:
symbol-计算指标数据上的货币对名称. NULL表示当前货币对.
timeframe - 时间周期。 可以时间周期列举任意值. 0表示当前图表的时间周期.
name - 客户指标完整的程序名称.
. - 参量设置(如果需要)。通过的参量和他们的顺序必须与desclaration命令和客户指标的外部可变物的种类对应。
mode - 索引行。 从0到7并且必须对应以其中一个使用的索引的 SetIndexBuffer 函数.
shift - 从显示缓冲采取的值的索引(转移相对当前柱特定相当数量期间前).
示例:
double val=iCustom(NULL, 0, "示例Ind",13,130);
double va2=iCustom(NULL, 0, "示例Ind",13,0,1);
例如:一个指标,画了两条曲线,则可以用iCustom取得这个指标在第4根K线上对应的第一条曲线的数值。
我们现在已经可以根据自己的想法去获得一个指定指标的任何K线上的状态数值了。那麽下一步我们就要开始EA的概念。
因为EA只针对当前价格状态下的动作进行控制。所以一般而言我们就取指定指标在当前K线下的计算数值用于EA的条件判断。
如果你认为当前K线没有结束,其数值始终在变化,有可能一会有讯号一会没讯号,那麽你可以采用取前一K线的指标数值的方式作为基础。(如果用当前K线指标数值作为条件会有不确定的结果,但如果用前一K线数值做条件则有“错过最佳入场点”的问题。这是需要程序设计者权衡的问题。)
另外的一个问题,就是怎末去判断指标输出的数值与我们肉眼看到的讯号一致起来的问题。
如果参考的指标是一种变色线,则一定是一种颜色一个数组的方式叠加起来显示的。我们在取其数值的时候只需要看看不同颜色的数组的数值比较一下就知道其结果是哪种颜色,并作为EA的条件进行动作就行了。
如果是箭头的方式,则一样是去取其数值,无箭头的K线上指标对应的数值是“空”,有箭头的地方数组对应的数值肯定不是空。用这个来判断是否发生了讯号就行了。
比如双色线,就一定是两个数组分别显示不同颜色,当指标认为应该显示其中一种颜色的时候就将这个颜色对应的数组在当前K线中的数值设成当前价。反之则设为“空”。这样循环一遍后 你肉眼看到的就是变色线了
现在我们可以轻松获得指标的当前讯号状态了!
下一步就是结合进EA中,就是把指标中的数组值拿过来
免责声明:本文仅代表作者个人观点,与凤凰网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
湖北一男子持刀拒捕捅伤多人被击毙
04/21 07:02
04/21 07:02
04/21 07:02
04/21 06:49
04/21 11:28
频道推荐
商讯
48小时点击排行
-
2052232
1杭州某楼盘一夜每平大降数千元 老业主 -
992987
2杭州某楼盘一夜每平大降数千元 老业主 -
809366
3期《中国经营报》[ -
404290
4外媒关注刘汉涉黑案:由中共高层下令展 -
287058
5山东青岛住户不满强拆挂横幅抗议 -
284796
6实拍“史上最爽职业”的一天(图) -
175136
7媒体称冀文林将石油等系统串成网 最后 -
156453
8养老保险制度如何“更加公平可持续”





















所有评论仅代表网友意见,凤凰网保持中立