什么时候在指标中保留部分机器人代码才有意义? - 页 22

 
Integer:


也有这种情况。与鬼怪和天花板上滴水的说法完全一样。

如果你不介意重复(你可以复制-粘贴)我错过的东西。否则,我根本就不知道我们在谈论什么。如果你觉得我的代码不适合于REAL。请具体说明原因,以便不仅是特别聪明的人能够理解。你可以清楚地表达你的想法。
 
hrenfx:
如果你不介意重复(你可以复制-粘贴)我所遗漏的内容。否则,我根本不知道我在说什么。如果你觉得我的代码不适合REAL。请说明原因,这样不仅是特别聪明的人可以理解。你可以阐明你的想法。

德雅武!你可以从第19页的开头开始阅读。绝对的重复。不要忘记中断 或返回操作符,或事先决定循环的数量。
 
我读过了,还是不明白为什么你认定我的EA不适合REAL。你可以继续说 "都写好了,重读吧",或者你可以具体地说(我在这个话题中多次呼吁),并论证你的观点。到目前为止,由于我不明白的原因,它只是水。
 
hrenfx:
我读过了,还是不明白为什么你认定我的EA不适合REAL。你可以继续说 "都写好了,重读吧",或者你可以具体地说(我在这个话题中多次呼吁),并论证你的观点。到目前为止,由于我不明白的原因,它只是水。

有这样一个问题,我回答说,我不会!我不会。也有对原因的解释。那么,让我们翻到第19页& while(true)...
 
hrenfx:
如果我看了,我还是不明白为什么你认为我的专家顾问不适合REAL。专家顾问不适合REAL。 你可以进入 "都写好了,重读 "的错误,或者你可以具体地(我在这个主题中多次呼吁)论证你的观点。到目前为止,由于我不明白的原因,它只是水。


为了正确计算,你必须使用你的 IndicatorCounted()的类似物。如果Bars和我们的函数(变量)的值之间的差异大于1,我们必须做一个完整的重新计算。

如果差值为1,则计算前一棒,并计算新一棒。如果是0,则只重新计算当前栏位

 
虽然在将指标计算 转移到EA时仍有一个问题。这时你需要参考5个或10个或更多条形前的数值。这个问题可以通过一些复杂的方法来解决。但它是可以被解决的
 
Vinin:


你需要使用你的IndicatorCounted()的类似物来进行正确计算。如果Bars和我们的函数(变量)的值之间的差异大于1,那么就应该进行全面的重新计算。

如果差值为1,则计算前一栏并计算新一栏。如果是0,则只重新计算当前条形图

这个代码 有什么你不喜欢的地方吗?

double GetEMA()
{
  static int PrevTime = 0;
  
  if (PrevTime == Time[0])
    return(EMA);

  int i = iBarShift(Symbol(), Period(), PrevTime) - 1;  

  PrevTime = Time[0];    
  
  while (i >= 0)
  {
    EMA = EMA * Alpha + (1 - Alpha) * GetPrice(i);
    
    i--;
  }
  
  return(EMA);
} 
 
hrenfx:

这个代码 有什么你不喜欢的地方吗?


当然,我不喜欢它。错了也白算
 
请说得更具体些。
 
hrenfx:
请更具体一些。

通讯中断时的EMA值取值不正确。它被认为是最后一个计算的结果。但这是不正确的。结果是,该函数不是在n个柱子上,而是在更大数量的柱子 上工作,这是不正确的。如果你保存它的值,当然