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

 
Vinin:

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

显然,他们没有进入代码。评论说。

// Комментирую для такого случая. Крайний известный M1-бар был в 14:00.
// Произошел разрыв связи на 10 минут после чего происходит вызов start.
void start()
{
  EMA = GetEMA();
  
  return;  
}

double GetEMA()
{
  static int PrevTime = 0;
  
  if (PrevTime == Time[0]) // Выпонится, когда история за крайние 10 минут подгрузится.
                           // Если истории не было, например, сутки, то может произойти ошибка.
                           // Но мы говорим про РЕАЛ, т.е. адекватность человека.
                           // Т.к. если нет связи сутки, советник оставлять нельзя.
    return(EMA);

  int i = iBarShift(Symbol(), Period(), PrevTime) - 1; // Здесь мы получим номер бара в 14:01.

  PrevTime = Time[0]; // запомним текущее время 14:10
  
// Производим расчет текущего EMA с учетом полученных 10 баров.
  while (i >= 0)
  {
    EMA = EMA * Alpha + (1 - Alpha) * GetPrice(i);
    
    i--;
  }
  
  return(EMA);
} 
 
当我说错误和充分性时,我并不是说这只适用于 "一体式 "的情况,也适用于 "有指标 "的情况。
 
hrenfx:
当我说错误和充分性时,我的意思是这不仅适用于 "一体化 "的情况,也适用于 "有指标 "的情况。


谈话不起作用,显然有人不想听一点批评。

我们可以得出结论,这个分支是无用的

 
Vinin:


我不是在谈话,显然有人不想听一点批评意见。

人们可能会得出结论,这个主题是无用的

听着,没有必要争论。我甚至对你的代码做了评论。有什么不喜欢的呢?你认为你给我的10分钟间隙的例子会导致错误吗?我已经说得很清楚了。你说有一个错误,那么你就看到它在哪里。那就别偷懒,直接告诉我它在哪里。你已经确定了它。

P.S. 你是第二个拖延的人。也不要说我不明白。清楚地告诉我错误在哪里。如果我错了,我就承认。这对我没有任何好处。

 
hrenfx:

听着,没有必要回避。我甚至对你的代码做了评论。有什么不喜欢的呢?你认为我给你的10分钟差距的例子会导致错误?我的部分已经很具体了。你说有一个错误,那么你就看到它在哪里。那就别偷懒,直接告诉我它在哪里。你已经确定了它。

P.S. 你是第二个拖延的人。也不要说我不明白。清楚地告诉我错误在哪里。如果我错了,我就承认。这对我没有任何好处。


有人就是不愿意思考。我不能让他们,我也不想。
 
Vinin:

只是有人不愿意思考。我不能强迫他们,我也不想。


该死的,没有人详细说明。又是水。有几个人(我对MT4+MQL4非常了解)告诉我,我的代码会出错,但我不能给出具体的例子-论据(我已经要求过几次)。而这是在一个只有10行的代码中。

也许你可以把Integer代码和我的代码放在一个单独的线程中,并询问MQL4的程序员代码中的问题是什么。而作为版主,要确保没有水灾。在这种情况下,甚至找不到该代码。

我认为这对MQL4社区是很有用的。

 
hrenfx:

听着,没有必要争论。我甚至在代码上给你做了回评。有什么不喜欢的呢?

价格将是第一位的。然后酒吧会来。当酒吧到达时,它们将被 "分类 "处理,但事实上是下落不明的,因为它们在被处理时并不在场。

这是我第二次说这个问题。

 
TheXpert:

价格将是第一位的。然后酒吧会来。当酒吧到达时,它们将被 "某种程度上 "处理,但事实上它们不会被考虑,因为在处理的那一刻它们还没有出现。

是的,价格将首先到达,但条件if(PrevTime == Time[0]) 将一直被触发,直到有一个新的条形图 为止。

你明白,如果一个新的条形图到来,在过去10分钟内没有任何分页,带有该指标的EA将在历史分页之前收到错误的EMA值。因此,EA会做任何事情。
 
hrenfx:


天啊,没有人详细说明。又是水。有几个人(对MT4+MQL4非常了解)告诉我,我的代码会出错,但他们不能给出具体的例子-论据(我已经问过几次了)。而这是在一个只有10行的代码中。

也许你可以把Integer代码和我的代码放在一个单独的线程中,并询问MQL4的程序员代码中的问题是什么。而你,作为一个主持人,要确保没有水灾。在这种情况下,甚至找不到该代码。

我认为这对MQL4社区是很有用的。


我提供了一个可行的算法的逻辑。这并不奏效。我很抱歉我没能通过。
 
hrenfx:
是的,价格会先出现,但在有新的条形图之前,条件if(PrevTime == Time[0]) 会一直被触发。
不,价格将在一个新的酒吧。当终端打开时,可以清楚地看到这一点。在开始时,酒吧看起来像一个点。