服务台。投诉,建议。 - 页 6

 
Ilya Malev:
反正在一个循环中是行不通的,因为所有的指标都有相同的线程,无论是否有定时器。或者我不明白你的想法。
假设有一个指标1。它调用指标2。指标2缺乏关于某些符号/TF的数据。它将这些数据发送到指示器1,它已经在定时器中下载了所需的数据。在收到确认所有需要的数据被下载后,我们再次尝试下载指标2的数据,一旦所有需要的数据都能得到,我们就计算指标1。
 
Alexey Kozitsyn:

要下载和检查历史记录,与MT5类似:https://www.mql5.com/ru/docs/series/timeseries_access

我重复这个问题,你知道如何通过老的mql4来获得这个日期吗?

我愿意。时间[Bars-1]。
 
Alexey Kozitsyn:

...从MT4到MT5以及再到MT5的方案可转移。

从4到5--可以理解。反过来说--就不太一样了。

 
Alexey Kozitsyn:
说,有一个指标1。它调用指标2。指标2缺乏一些符号/TF的一些数据。它将这些数据发送到指示器1,它已经在定时器中下载了所需的数据。在收到确认所有需要的数据被下载后,我们再次尝试下载指标2的数据,一旦所有需要的数据都能得到,我们就计算指标1。

内存被分配了5次。在同一事物的命令地址空间下。

你在为数据地址空间的积极内存释放 而哭泣吗?至少外延是存在的。

 
Vasyl Nosal:
等待仲裁已经很长时间了。第三周(他们让我等第二周,好的)。
万能的版主啊,请把你的眼睛转向问题:)
 
Алексей Тарабанов:
我知道。时间[Bars-1]。

你错了。我已经在下面写了,你给出的结构将给出的第一个日期不是在服务器上,而是在图表上。

关于交易、自动交易系统和策略测试的论坛

服务台。投诉,建议。

Alexey Kozitsyn, 2015.10.30 16:42

使用iTime( _Symbol, period, Bars( _Symbol, period )-1 ),我们可以得到图表上第一个可用蜡烛的时间。

但是为了得到服务器上第一支蜡烛的时间,我还没有决定使用哪种结构。

一切都简单地使用SeriesInfoInteger: SeriesInfoInteger( _Symbol, period,SERIES_SERVER_FIRSTDATE) 来完成。


 
Алексей Тарабанов:

内存被分配了5次。在同一事物的命令地址空间下。

你在为数据地址空间的积极内存释放 而哭泣吗?至少那里是有范围的。

你有什么实质性的话要说吗?
 

一般来说,对于我提到的iCustom问题,很可能有一个正常的解决方案。

如果MT5已经加载了指标的句柄,并为这个符号/TF指定了参数,那么,按照我的理解,当你从任何其他地方调用它时,不会再次进行同一指标的计算,而是使用现有的句柄。

而且由于在调用iCustom之前的第一个 "嵌套层",对OnTimer的调用是有效的,我们可以等待所有指标 的顺序计算,从最基本的指标开始,然后是使用这些指标的指标,以此类推到任何嵌套层,只有当所有已经用于其中的指标和时间序列都被计算后,才会创建它们的句柄。那么对 "刷新 "按钮的需求可能就会消失。我希望我一周前就猜到了......。

P.S. 当使用OnTimer时,注意指标缓冲区不会显示在图表和数据窗口上,直到终端调用的OnCalculate返回一个不同于0的值。而且终端只调用一次OnCalculate,就在Inite之后,此时时间序列和指标还没有被计算出来。当OnCalculate被Ontimer调用时,无论它返回什么值,如果第一个返回值是0,那么该指标将不会显示在图表上,直到下一个tick到来或者你按下 "Refresh"。

 
Alexey Kozitsyn:

第二个问题是类似的类型。该指标在TF MN1上。我正试图通过函数SeriesInfoInteger()从TF M5接收数据。该函数在一段时间内返回正确的值,然后就不再做了,开始返回零值。

我刚刚在MT5指标中看到了你的问题,在没有留下一个周期的OnTimer的情况下,我检查了 另一个符号/周期的时间序列(不是当前的)--函数说它已经建立,并给出了正确的条数。紧接着我调用另一个函数来建立指标--在这个函数中,从OnTimer的同一调用中调用,时间序列设法被卸载,SeriesInfoInteger返回0。我不得不嵌入一个额外的循环检查,以便所有的东西都能在没有传入ticks的情况下自行构建。
 
Vasyl Nosal:
万能的版主啊,请看看这个问题吧:)
很快就是仲裁的第4周了......待续:)))))