编码帮助 - 页 175

 

你好mladen。

1.你提到的第二种形式,即从旧条到新条,你是说这种风格:for (i=limit;i>=0;i--)?

我怕弄混了,所以想问清楚一点。

2.请问,这两种风格(如果不考虑重绘或不重绘)是否基本上给出相同的信号或数值?

3.一个指标可以包含两种风格的循环方向吗?比如核心指标部分是第二形式,但mtf部分是第一形式的风格? 这里有什么矛盾吗?或者仍然可以顺利运行?

4.缺少一些return(0)句子,(return(0)句子是必须或必要的吗?)这是否会造成指标停顿或导致重复的问题? 谢谢

 
kenwa:
嗨,mladen。

1.你提到的第二种形式,即从旧条到新条,你是说这种风格:for (i=limit;i>=0;i--)?

我怕弄混了,所以想问清楚一点。

2.请问,这两种风格(如果不考虑重绘或不重绘)是否基本上给出相同的信号或数值?

3.一个指标是否可以包含循环方向的两种风格?比如核心指标部分是第二种形式,但MTF部分是第一种形式的风格? 这里有什么矛盾吗?或者仍然可以顺利地运行?

4.缺少一些return(0)句子,(return(0)句子是必须或必要的吗?)这对停止指标或引起重绘会有问题吗? 谢谢

1.是的

2.取决于在循环中进行的计算--有些计算不能以 "从新到旧 "的形式进行,而所有计算都可以以 "从旧到新 "的形式进行。

3.可以,但见第2点--第一种形式更安全

4.return(0)不能导致或阻止重绘--它与重绘没有任何共同之处。

 
mladen:
1.是的

2.取决于在循环中进行的计算--有些计算不能以 "从新到旧 "的形式进行,而所有计算都可以以 "从旧到新 "的形式进行。

3.可以,但见第2点--第一种形式更安全

return(0)不能导致或阻止重绘--它与重绘没有任何共同之处。

我想问:i)如果第二种形式可以完成所有类型的计算,为什么不是第二种形式更安全? 我有点困惑。

另外,我看到你修改的代码,我之前的指标使用的是(i=limit;i>=0;i--)第二种形式,而我一开始使用的是第一种形式,使用第二种形式有什么特别的原因吗? 谢谢。

 
kenwa:
我想问的是:i)如果第二种形式可以完成所有类型的计算,为什么不是第二种形式更安全?

我想说的是来自第1点的形式。使用该表格,你将消除因计算方向错误而可能产生的错误。

 
mladen:
我想说的是第1点中的形式。使用该表格,你将消除因计算方向错误而可能产生的错误。

嗨,Mladen。

如果我没有理解错的话,你的意思是第二种形式可以适应所有类型的计算,但更安全的是第一种形式,可以防止一些错误的计算方向?

那么,如果我的核心指标部分使用第二种形式,而我的mtf部分使用第一种形式,这样可以吗?(第一种形式更好??)

哪种形式?第一种还是第二种形式更好,可以消除重绘的可能性? 谢谢你耐心地回答我的问题。

 
kenwa:
嗨,Mladen。

如果我没有理解错的话,你的意思是第二种形式可以适应所有类型的计算,但更安全的是第一种形式,可以防止一些错误的计算方向?

那么,如果我的核心指标部分使用第二种形式,而我的mtf部分使用第一种形式,这可以吗?还是两者都使用同一形式更好?(第一种形式更好??)

哪种形式?第一种还是第二种形式更好,可以消除重画的可能性? 谢谢你耐心回答我的问题。

kenwa

澄清一下:这是更好的形式

(i=limit;i>=0;i--)

 

好的,非常感谢--在我回来之前,我将会把一些结果整理出来。

杰夫

 

帮助我解决这个关于fantail vma的问题

你好。

在过去的几个月里,我一直在努力学习mql。我试图创建一个基于Fisher指标的EA。但是,我们知道Fisher会重绘,这让我很难创建该EA。这就是为什么我变得无精打采,开始忙于学习。现在我正试图创建另一个基于FANTAIL的EA。但我面临的问题是如何将指标的数值带到EA中。我使用了iCustom 函数来做到这一点。这个指标在图表中画了50条线。我需要这些线中的一些数值。

你能告诉我在EA中获取这些数值的方法吗?请先谢谢你。如果我问了一个愚蠢的问题,请原谅。

该指标。

附加的文件:
 

嗨,mladen,你能帮我在这个指标中加入超级趋势吗?(当然,超级趋势是在ExtMapBuffer1上计算的)。

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

extern double Beta1 = 1.0;

extern string Symbol2 = "GBPUSD";

extern double Beta2 = 1.4;

//--- buffers

double ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

IndicatorShortName(Symbol() + " " + Beta1 + " " + Symbol2 + " " + Beta2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(Bars<1) return(0);

int i = Bars-counted_bars -1;

while(i >=0) {

int iShift2 = iBarShift(Symbol2, 0, Time, false);

ExtMapBuffer1 = Close * Beta1 - iClose(Symbol2, NULL, iShift2) * Beta2;

i--;

}

return(0);

}

 
k3rn3l:
你好mladen,你能帮我在这个指标中加入超级趋势吗?(当然,超级趋势是在ExtMapBuffer1上计算的)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

extern double Beta1 = 1.0;

extern string Symbol2 = "GBPUSD";

extern double Beta2 = 1.4;

//--- buffers

double ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

IndicatorShortName(Symbol() + " " + Beta1 + " " + Symbol2 + " " + Beta2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(Bars<1) return(0);

int i = Bars-counted_bars -1;

while(i >=0) {

int iShift2 = iBarShift(Symbol2, 0, Time, false);

ExtMapBuffer1 = Close * Beta1 - iClose(Symbol2, NULL, iShift2) * Beta2;

i--;

}

return(0);

}

到底是哪一个(因为需要传递给iCustom()函数 的参数)?

原因: