string PairName = "";
int StdDev.MA.Period = 12;
int StdDev.MA.Shift = 0;
int StdDev.MA.Method = MODE_SMA;
int StdDev.MA.Price = PRICE_CLOSE;
int MA.Fast.Period = 3;
int MA.Fast.Method = MODE_SMMA;
int MA.Fast.Shift = 0;
#define CheckOncePerBar true;
谢谢Dabbler。我已经附上了完整的EA和指标。我已经阅读了关于iCustom的声明,除了参数部分,其他都明白了。
参数 中的内容是你想用于指标中的外部变量的值......在这种情况下,这些......。
让我们再看一下帮助文件。
看一下......部分的定义。
你有9个外部 变量,因此需要9个顺序正确、类型正确的参数。
很简单。
然后你问:"还有,有没有什么方法可以实际看到哪些值被发送到EA?"
当然可以。
是的,除了Null 是个错字。
从指标开始,生成代码。
#define SFX "SFX"
#define因为它是常量。定义一次,就不会有错别字。谢谢你的答复。
ExtMapBuffer1[i+3] = lower_fractal_7b; could be used as calculated value when reversal fractal is called?
是的。所有的时间。我说的是Extern Values。我猜你说的是缓冲器。
是的,UBZEN。
我也尝试了你的建议,它确实返回了我的指标中所说的值,....
它很简单,很容易添加或使用,没有那些长的参数....,特别是有数组的那个.......。
我在编译参数时可能会迷失方向,而不是你们的............,这里的专业人士。
非常感谢....我找这个答案找了好几天了
iCustom允许你访问你的指标缓冲区,就是这么简单。
例如,您正在编写一个基于两个指标的EA,您可以将指标代码构建到EA中,这是可能的,但有点复杂,因为指标缓冲区在EA中不起作用,您必须使用数组,并以 "作为系列 "的方式处理它们 ...... 另一种方法是让指标运行并从EA中访问其缓冲区 ...... 这就是iCustom提供的便利。不需要改变指标 ......EA只是在它需要的移位值上访问它需要的缓冲区。在iCustom的调用中,它也可以传递任何需要设置指标的外部变量。
亲爱的RaptorUK(以及其他可能提供帮助的人)。
在引用的帖子中,你描述了在EA中使用自定义指标值的两种方法。第一种是使用iCustom,我已经知道了。第二种是我非常想了解的,因为我以前曾尝试过将自定义指标的代码内化到主指标的主体中,但没有成功。你看,当我把一个指标变成一个函数并让它返回它的最新值(元素0的值)时,我总是得到一个双变量的EMPTY_VALUE,而不是计算值本身。我试着使用iCustom函数,将移位设置为0,即最新的值。当我这样做时,终端开始返回0,并在专家标签中显示错误STACK OVERFLOW。在第二次勾选时,它确实返回了一个值,但在每打印几个[0]值后,它又给出了一个STACK OVERFLOW错误,这不断重复出现。因为iCustom在第一次初始化时返回值0和STACK OVERFLOW(只有在开始提供正确的值之后),我不能在我的EA中使用icustom,因为每次Start()被激活时,它都会为不同的符号调用icustom,并为之调用多个自定义指标。这导致了EA的崩溃。我不明白为什么每当我想让icustom返回最近的值[0]时,我会得到一个STACK OVERFLOW错误,但我肯定想知道。然而,我更喜欢把所有被调用的指标的代码内部化,把它们转化为主指标内的函数。你说过使用数组并以 "作为系列的方式 "处理它们。能否请你详细说明一下?
我已经添加了一个经典的ADX.mq4指标的mq4文件。在里面,ADX的值被打印了两次。一次是由Icustom打印,第二次是由ADX代码打印,该代码已经变成了ADX内部的一个函数。Icustom(ADX)返回一个值,但ADX(symbol,timeframe)却没有。它不断地返回同样的EMPTY_VALUE,即247456457457或其他什么东西,一遍又一遍。请解释为什么会发生这种情况,以及我如何在EA模板和mq4自定义指标文件中补救。
衷心的问候,提前感谢
PS:附件文件似乎不起作用。但你可以从http://www.forexfactory.com/showthre...37#post8569537(我的名字是Codix)下载CallicustomvsFunction示例指标和ADX自定义指标。
在上面的帖子(https://www.mql5.com/en/forum/138577/page3#627521 和https://www.mql5.com/en/forum/138577/page3#797401) 中,我使用了点和词的分隔符。
自2014年 2月3日(Build 600)以来,这是不允许的。 使用下划线或骆驼字母。
使用下划线或骆驼字母大小写。