[SERVICE DESK]在获取计时器中的高级TF的时间时出错! - 页 4

 
Vitaly Gorbunov:
嗯,我不会说这是一个拐杖。我希望从服务器上得到一个报价流,否则历史记录就不会被更新。另一个选择是采取计算机的本地时间,并根据时区进行修正,这可以自动计算,反正最后要等待报价更新。这有点歪,但我不认为梅塔克沃托夫会在MT4中改变什么。在一天结束时,这是一个服务器连接问题,必须以一种方式处理。

在那里。而你已经意识到这是一个问题!但是,我认为它应该被修复和/或帮助应该补充所有情况的算法。

数据检索功能不应该在没有错误和警告的情况下给出左手的数据!

这不是我的第一个话题(之前的话题是关于MT5的,我还没有得到任何明确的答案),关于同步和后续的挂起/错误。

 
Alexey Kozitsyn:

是的,这似乎很有效。作为一种选择,它可以被使用。谢谢你!但我仍然希望这些功能能够正常工作。

它只有在没有缺失条形图的情况下才会起作用--这一点无法保证。 例如,假设服务器上没有当前小时的新报价(也可能是前一个小时的)。 因此,最后一个条形图是前一个条形图。

 
Ihor Herasko:

在你的核查方法中,有两个重大错误。

  1. 在指标的OnInit()中,你无法获得任何TF的正确数据,甚至是当前TF的数据。终端开始时指标的OnInit()几乎在一个空窗口中执行(甚至可能没有终端关闭时的数据)。即使是市场环境,也往往还是无法获得。帮助中包含了很多关于在OnInit()中不能做什么的警告。因此,在其代码中没有太多内容可供列入。通常,这是对设定的参数值的检查,将指标缓冲区与数组绑定,以及创建类(如果使用了类)。其他的事情都必须在OnCalculate()中完成。
  2. 所有这些检查只有在OnCalculate被调用至少一次后才能完成。

伊戈尔,你审查了代码吗?在OnInit()中,我在哪里可以得到一些东西?

2.什么检查?哪里写着指标必须至少使用 一次OnCalculate()才能正确工作?

 
Alexey Navoykov:

它只有在没有漏掉的条形图时才会起作用,而这是无法保证的。 假设当前小时(也许还有前一个小时)服务器上没有新的报价。 因此,最后一个条形图是之前的某个条形图。

这个(正如我所说的,拐杖)解决方案到目前为止比什么都好。正如我所说(并证明),有一个错误。开发商越早修复它越好。

 
所以它不会发出错误的数据,它发出的是最后收到的数据,直到终端开始接收报价流时才会发生错误。在你的案例中,你是想在收到报价之前接收数据,而程序员必须自己处理这种特殊情况。以及任何连接失败的情况。MT5的问题是什么?
 
Alexey Navoykov:

它只有在没有漏掉的条形图的情况下才会起作用,而这是无法保证的。 假设当前小时(也许还有前一个小时)服务器上没有新的报价。 分别来说,最后一个条形图是前一个条形图。

iBarShift 的方法可以识别历史差距,但需要在一定时间内检查。我为自己写了一个处理这个问题的程序,之后我就忘记了MTF程序中的差距。
 
Vitaly Gorbunov:
所以它不会发出任何左边的数据,它发出的是最后收到的数据,直到终端开始接收报价流时才会发生错误。在你的案例中,你是想在报价开始前接收数据。以及任何连接失败的情况。MT5的问题是什么?

哦,伙计...我们已经过了那个点。见自己的日志。

2018.09.21 15:02:42.910 Custom indicator test XAUUSD,H1: removed
2018.09.21 15:15:27.985 test XAUUSD,H1: initialized
2018.09.21 15:15:29.520 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.552 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.589 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.605 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.636 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.667 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.705 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.736 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.768 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.805 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.837 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.868 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.906 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.937 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:29.969 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.006 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.038 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.069 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.106 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.138 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:30.169 test XAUUSD,H1: OnTimer: Связь отсутствует!
2018.09.21 15:15:31.880 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #4066
2018.09.21 15:15:31.900 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:31.940 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:31.990 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.010 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.074 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.100 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.120 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0
2018.09.21 15:15:32.174 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка #0

顺序。首先,我们检查连接情况。一旦建立了连接,我们能得到时间。请向我解释一下,为什么先返回错误4066,然后又不返回!?自上次调用以来,20ms内有什么变化?

 
Vitaly Gorbunov:
MT5的问题是什么有非常有趣的阅读?

https://www.mql5.com/ru/forum/219829

Клинч в индикаторах mql5.
Клинч в индикаторах mql5.
  • 2017.11.15
  • www.mql5.com
Недавно столкнулся с одной крайне неприятной проблемой...
 
Alexey Kozitsyn:

这个(正如我所说的,拐杖)解决方案到目前为止比什么都好。正如我所说(并证明),有一个错误。开发商越早修复它越好。

好吧,如果我们谈论最好的拐杖,我们不仅应该检查当前的小时,而且应该检查自最后一个已知的条形图以来的所有先前的小时。 否则,如果当前小时没有报价,你会在这个检查上卡住。
 
Alexey Kozitsyn:

哦,伙计...我们已经过了拆解的那个阶段。见自己的日志。

顺序。首先,我们检查连接情况。一旦建立了连接,我们就能得到时间。请向我解释一下,为什么先返回错误4066,然后又不返回!?自上次调用以来,20ms内有什么变化?

数据加载错误4066,那么它是一个错误metakvotovtsev最有可能收到的数据是处理这种情况的错误是没有发明的。在这一点上,一切都有意义。