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

 
不过,我现在已经运行了几次。有趣的是,它并不总是有效。有时连接没有及时建立。
我自己也有一个很好的联系。也许这就是原因。
 
但这不是我在这个测试中注意到的情况。即使现在运行的是通行证计数,我通过OnCalculate 得到10个通行证,即使是今天事实证明,对你来说最好的选择似乎是在指标启动时做一个小的延迟。
 
Konstantin Nikitin:
但我注意到这次测试有些不同。即使现在运行时有计数,我通过OnCalculate 得到了10次。事实证明,对你来说,最好的选择似乎是在指标开始时小幅延迟。

我重申,不需要拐杖式的解决方案。目前的行为并不适合我,开发者自己给出的建议也不起作用。让这样的事情自生自灭,不会有任何好处。发现了一个问题,需要由开发人员来解决。

 
Alexey Kozitsyn:

我重申,不需要拐杖式的解决方案。目前的行为不适合我,开发人员自己给出的建议也不起作用。让这样的事情自生自灭,不会有任何好处。发现了一个问题,需要由开发人员来解决。

我已经描述了我看到的情况。你必须思考如何解决这个问题。我的意思是,得到第一手的跟踪,等等,一点好处都没有。

 
Konstantin Nikitin:

我已经描述了我所看到的情况。我必须考虑如何处理这个问题。也就是说,它在任何方面都不好得到第一时间的跟踪,等等。

我认为需要有一种机制在这种 "薄 "的地方进行测试,与错误号码一起正确工作(通过敲打每个请求),或者在历史访问功能中进行某种额外的检查(即内置的,这样就不会为这种问题搜索几个小时)。而这种机制应该在文档中详细描述。那么就不会有任何问题给开发商了。但现在情况如何呢?在文件中没有任何关于访问旧TFs数据的内容,所以开发者自己也不知道如何获得数据。只有一些链接到大胡子年代的论坛,他们有相同的推理。

 
如果你知道与服务器在时间上的区别。你可以使用当前本地时钟与上一个小时条的开启时间 的比较。TimeCurrent不适合,因为时间可能不会被更新。
类似这样的事情
     MqlDateTime mqlDateTime;
     TimeToStruct( (TimeLocal()-60*3), mqlDateTime );
     mqlDateTime.min = 0;
     mqlDateTime.sec = 0;
     
     if( IsConnected() )
          Comment( TimeToString( iTime(Symbol(), PERIOD_H1, 0) ), "\n", TimeToString( StructToTime(mqlDateTime) ) );
 
Alexey Kozitsyn:

顺便说一句,你没有回答你关于终端版本的问题。

终端1121和1090

阿列克谢-科齐岑

与服务器的通信已经建立。当请求高级TF数据时,如果数据没有准备好--错误或返回0。如果数据准备好了 - 只返回实际数据。就这样了。如果数据长时间没有准备好 - 让它向我们返回错误或0。

这里没有错误。有一个连接和历史数据。
已经在终端中的数据会立即显示。
新的数据是有延迟的,因为有必要向经纪人发送请求,如果缺少什么,就加载它。

一旦有新的数据出现,就会立即产生一个tick(即使是现在,当市场关闭时)。
你只需要检查新条 的更新-出现,并自己改变你的变量。

ps. mt4中没有数据相关性的标志。

 
Taras Slobodyanik:

终端1121和1090

这里没有错误。有一个连接,并且有历史数据存在。
已经在终端中的数据会立即显示。
新的数据到达时有延迟,因为必须向经纪人发送请求,如果有遗漏,则要上传。

一旦有新的数据出现,就会立即产生一个tick(即使是现在,当市场关闭时)。
你只需要检查新条 的更新-出现,并自己改变你的变量。

ps.mt4中没有数据更新标志。

正如我所说的,将不得不在更新的终端上再试一次。

我断然不同意无法控制的行为。该函数返回不正确的数据,没有错误 - 这是错误的。你自己以后也会遇到这样的情况,不知道问题出在哪里。

说,起初,该函数返回一个错误。他们被释放了。在接下来的查询中,该函数没有返回错误,而是返回了一些 "不正确 "的数据。可以了吗?

 

你说的不正确的数据是什么意思?

当它们不在那里,或没有连接,或其他什么,那么是的,有一个错误。
也没有什么可算的。

当所有数据都正确时--一切都很好,一切都在运行。

你的指标没有跟踪数据的更新。
新酒吧 来自经纪人,你不检查它们。
我加了几行,表明当你检查时,一切都正确。

这是一个工作情况,以检查一个新的酒吧。

 
Taras Slobodyanik:

你说的不正确的数据是什么意思?

再看看我的第一个帖子。你在那里看到错误4066吗?然后出错0,并返回不正确的数据。为什么函数 本例中的SeriesInfoInteger())在发送数据之前不检查相关性?为什么它不设置错误标志?你看,我宁愿多等一会儿,等内部检查通过,也不愿意以后再找错误。

但在那之后,我得到了很多建议,但我仍然没有得到任何结果。而事实证明,这甚至不是关于计时器的问题。