如何为Build 600+升级指标? - 页 4

 
qjol:
你在开玩笑,当然,它工作了


是的,它现在工作了。

我使用了最新版本的所有10个参数,现在已经工作了。

谢谢。

BTW,我还是不明白为什么有7个参数的旧版没有工作!我想知道为什么。

如上图所示,该指标有8个外部参数。这里'TimeFrame'在字符串 "xpMA "之前被定义为'0'。

然后我声明了其余的7个参数,如下所示。

double  signal = iCustom(NULL,0,"xpMA",MA_Period,MA_Type,MA_Applied ,T3MA_VolumeFactor,JMA_Phase,Step_Period,DebugMode,3,0); 

所以,我哪里做错了,请指出。

谢谢

 
deysmacro:

他必须从常见的错误中学习。

谢谢你的支持和理解。)
 
Arav007:


BTW,我仍然不明白为什么有7个参数的旧版本不能工作

如上图所示,该指标有8个外部参数。这里'TimeFrame'在字符串 "xpMA "之前被定义为'0'。

然后我声明了其余的7个参数,如下所示。

所以,我哪里做错了,请指出。


让我再说一遍,通过使用iCustom ,你必须传递与声明顺序相对应的 参数


传递的参数和它们的顺序必须与自定义指标的声明顺序和外部变量的类型一致。如果没有指定输入参数的值,将使用默认值。

不能 跳过一个参数

例如,如果一个自定义指标有5个参数,你可以 像这样使用它。

double x = iCustom (Symbol(), Period(), "Name", Param1, Param2, Param3, mode, shift);

但你不能 像这样使用它。

double x = iCustom (Symbol(), Period(), "Name", Param2, Param3, Param4, mode, shift);
 
qjol:


让我再说一遍,通过使用iCustom ,你必须传递与声明顺序相应的 参数。

不能 跳过一个参数

例如,如果一个自定义指标有5个参数,你可以 像这样使用它。

但你不能 像这样使用它。



这是我做错的事,无法确定。

好的,这里是我如何分配参数的。

Param1=MA_Period

Param2=MA_Type

Param3=MA_Applied

参数4=T3MA_VolumeFactor

Param5=JMA_Phase

Param6=Step_Period(周期)

Param7=DebugMode

现在哪一个是错的?

解释一下

 

你跳过了第一个 "时间框架"。



 
qjol:


你跳过了第一个 "时间框架"。




哦,那就是这种情况了。

如果我错过了任何一个外部参数,它就不会工作。

但我有意识地跳过了它,因为它应该在开始时定义的当前时间 框架下工作。

iCustom(Null,0, Param1,...)

这就是为什么我认为没有必要再把它定义为 "TimeFrame"。

谢谢你的纠正。

 
Arav007:


哦,那就是这种情况了。

如果我错过了任何一个外部参数,它就不会工作。

不,你可以 错过,但你不能 跳过,例如,如果有5个参数,你留下最后 两个,就没有问题。

但你不能跳过1而使用2 3 4 5

但我有意识地跳过了它,因为它应该与当前的时间框架一起工作,这是在开始时定义的。

iCustom(Null,0, Param1,...)

是的,但是终端不知道这个参数包含什么,它可以包含任何东西 (不一定是时间框架)

这就是为什么我认为没有必要再把它定义为'TimeFrame'。

不要想,要做!;-)

谢谢你的纠正。