错误、漏洞、问题 - 页 1221

 
Fry:

误差

挑战。


导致日志中的一个信息。

HistoryBase 'RTS-12.14' 1个无效的条形图被移除


我已经受够了这个错误。除其他事项外,它还在加载通信渠道。

同样的错误出现在其他未确定的原因上。

但是,有趣的是,它并没有出现在许多其他乐器上。它在RTS期货上出现得最多。


几个月前我给servicedesk写信--没有回复(请求开始时间:2014.07.28 13:41,#1046215)


我附上诱导器的代码,该诱导器在当前(和过去)RTS期货的每一个刻度上都会导致这个错误(模拟账户与经纪人 "O...")。

这是终端的一个错误吗?还是在经纪人那里?还是我?

我应该怎么做?如何知道D1时间框架的条数,否则?

晚上好。你试过吗?

SeriesInfoInteger( _Symbol, PERIOD_D1, SERIES_BARS_COUNT );
 
Tapochun:

晚上好。你试过这个吗?

也祝你晚上好。我已经试过了,都是一样的。

其结果是一样的。错误出现在每一个刻度 的日志中。

谢谢你的主意。如果SeriesInfoInteger()没有在内部访问Bars,那么一切更有可能是经纪商服务器上的 "狭义 "数据搞砸了。

而这也是对我的问题的一个满意的回答。

毕竟,我又不是不知道错误会在哪里出现,我是否能避免它,等等。

 
Fry:

也祝你晚上好。试过了--同样的事情。

结果是一样的。错误出现在每一个刻度的日志中。

谢谢你的主意。如果SeriesInfoInteger()没有在内部访问Bars,那么它越来越有可能是经纪人服务器上的一个 "狭窄 "的数据连接。

而这也是对我的问题的一个满意的回答。

毕竟,我不知道错误会在哪里出现,我是否能避免它,等等。

也许在经纪人那里真的有一个错误,因为该信息删除了一些 "破损 "的柱子...或者数据在途中被 "杀死"。但是,这只是我的一个猜测。顺便问一下,GetLastError() 是否给了我什么?是的,那么Bars()返回什么?
 
Tapochun:
可能确实是经纪人的错误,因为该信息删除了一些 "破损 "的条形。或者数据在途中被 "杀死"。但是,这只是我的一个猜测。顺便问一下,GetLastError()是否给了我什么?是的,那么Bars()返回什么?

如果Bars()返回0,那么错误4001(ERR_INTERNAL_ERROR 4001 意外的内部错误)。

但有时Bars()仍然返回条数,然后就没有错误了(Bars()不会改变错误状态)。

 

MT4 build 722, ME4 build 989

试图复制当前的零条数据。

      MqlRates rates[1];
      int n=CopyRates(_Symbol,PERIOD_CURRENT,time[0],1,rates); 
      Print("n=",n);

打印n=0,即数据不被复制。

如果写上_Period 而不是PERIOD_CURRENT ,就可以工作

如果你复制非零 条形数据(time[1]等),无论你写的是PERIOD_CURRENT 还是_Period,它都会起作用

P.S. 你想把它做成光盘吗?

 
Fry:

如果Bars()返回0,那么错误4001(ERR_INTERNAL_ERROR 4001 意外的内部错误)。

但有时Bars()仍然返回条数,然后就没有错误了(Bars()不会改变错误状态)。

错误的 "意外性 "再次表明,有些东西没有来得及到达就被删除了,结果就出现了错误。据我所知,你需要找出D1的条数......你必须在每个tick上做吗?或者,写一个函数,每分钟或更短的时间请求一次数据。并看看是否发生错误。

 
kPVT:

MT4 build 722, ME4 build 989

试图复制当前的零条数据。

打印n=0,即数据不被复制。

如果写上_Period 而不是PERIOD_CURRENT ,就可以了

如果你复制非零 条形数据(time[1]等),无论你写的是PERIOD_CURRENT 还是_Period,它都会起作用

P.S. 你想把它做成光盘吗?

傍晚时分。试试吧......尽管如果有替代方案,他们不太可能急于寻找这个缺陷。我有两份申请已经挂了一个星期了......。没有回答,没有说话。
 
Fry:

该怎么做?我还如何知道D1时间框架上的条数?

指标是否在D1上运行?
 
MigVRN:
指标是否在D1上运行?

不,当然不是。这就是全部的意义。当指标本身在D1上运行时,我们有"constint rates_total, //输入时间序列的大小"。

下面是其使用的一个具体例子。

我们初始化了几个指标并得到了它们的手柄(这里一切正常)。接下来,在ontik函数中,我们需要确保在调用的时候,所有的数据都已经在所需的句柄(外部索引)上计算过了。而这就是我所做的。

   //not all data may be calculated
   if (BarsCalculated(hCCI)<rates_total) {Print("Not all data of trend CCI is calculated. Error#",GetLastError()); return(0);}
   if (Period()!=PERIOD_D1 && BarsCalculated(hDayTrand)<Bars(Symbol(),PERIOD_D1)) return(0);

而在这种情况下,hDayTrand是一个递归句柄(同一指标,只有D1被加载)。

我似乎都是按照文件和终端的例子以及建议来做的。其结果是,所有这些东西都在日志中被扰乱,每分钟吃掉几兆字节。

 
Fry:

不,当然不是。这就是整个问题的关键。当指标本身在D1上运行时,我们有"constint rates_total, //输入时间序列的大小"。

下面是其使用的一个具体例子。

我们初始化了几个指标并得到了它们的手柄(这里一切正常)。接下来,在ontik函数中,我们必须确保在调用的那一刻,所需句柄(外部索引)上的所有数据已经被计算出来。而这就是我所做的。

而在这种情况下,hDayTrand是一个递归句柄(同一指标,只有D1被加载)。

我似乎都是按照文档和终端的例子以及建议来做的。其结果是--所有这些东西都被潦草地写在日志中,每分钟吃掉几兆字节。

IMHO,你必须联系经纪人(Otkrytie,所以我理解)。真正的账户没有这个功能,所以很可能是在服务器设置中。