使用自定义指标时的EA加速理论(功能-iCustom)。 - 页 4

 
-Aleks-:

我明白了,问题是编出来的。

当面对真实项目 中的真实指标刹车时,我将准备继续讨论。

 
-Aleks-:

五个人的悲惨事实,而开发商并没有解释其中的神圣意义?

显然,这是一个建筑学的问题。我不感兴趣。

这里有一个相关话题的讨论 - https://www.mql5.com/ru/forum/8278

Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс. - - Категория: общее обсуждение
 

起步者陷入了困境,没有理解与指标合作的基本原理......但这些信息是公开的(文章+文档)。

因此,有很多错误的问题和猜测......。

另一个链接 是使用OpenCL创建的指标。负荷是在显卡上。

诚然,为了获得比较的计算速度,任务必须是真正的 "重"。

 
komposter:

顺便说一下,MT4可以很好地应对只计算部分历史数据的情况,并且不消耗整个缓冲区的内存,如果循环经过最后1000个条形(即使有50000个条形 "在窗口")。

然而,我在MT5中遇到了这个问题 - 它为所有50000个条形图分配内存,即使只计算最后100个条形图。

你确定吗?

在这两个平台上,指标缓冲区 是自动分配的,并且以同样的方式分配给所有可用的条形历史。

 
Renat:

你确定这一点吗?

在这两个平台上,指标缓冲区 都是为所有可用的条形历史自动平等分配的。

过去半年我没有检查过,但在MT4和MT5中,同样的指标有1000个条形,使用的内存量却大不相同(当在窗口中显示大量条形时)。

我现在有疑虑了。也许是我们在这里讨论的对象缓存的问题--https://www.mql5.com/ru/forum/8278

Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс. - - Категория: общее обсуждение
 
Renat Fatkhullin:

你确定这一点吗?

在这两个平台上,指标缓冲区 是自动分配的,对所有可用的条形历史都是一样的。

我在MT4中遇到了一个问题--有一个脚本的任务是在图表上叠加一个指标,从其缓冲区收集数据并进行数学计算和分析。

使用嵌入式指标的脚本操作是完美的,但通过iCustom调用的指标情况就不太妙了--为终端分配的内存(最大)很快就用完了,结果是脚本开始从指标上获得缓冲区的空值。是否有可能在指标从图表中删除时或重新调用后强行清除RAM,但参数不同,通过iCustom)?

 
-Aleks-:

我在使用MT4时遇到了一个问题--有一个脚本在图表上实现了一个指标,从其缓冲区收集数据并进行数学计算和分析。

使用嵌入式指标的脚本操作是完美的,但通过iCustom调用的指标情况就不太妙了--为终端分配的内存(最大)很快就用完了,结果是脚本开始从指标上获得缓冲区的空值。是否有可能在指标从图表中删除时或重新调用后强行清除RAM,但参数不同,通过iCustom)?

那么你到底创建了多少个不同参数的iCustoms?

如果有几十个和几百个(似乎是这样),那么在外部指标内就不能做什么。你只能把它作为一个不消耗内存的计算单元嵌入你的EA内部。

在MetaTrader 5中,可以完全控制所有要求的指标,但即使在那里,"我创建和删除数百个指标 "的游戏也充满了严重的成本。

 
Renat Fatkhullin:

那么你到底创建了多少个具有不同参数的iCustoms?

如果有几十个和几百个(似乎是这样),那么在外部指标范围内什么也做不了。你唯一能做的就是把它作为一个不消耗内存的计算单元嵌入你的EA内部。

在MetaTrader 5中,可以完全控制所有要求的指标,但 "我创建和删除数百个指标 "的游戏充满了严重的成本。

你创建一个单一的指标,然后你改变它的参数。iCustom函数在指标本身中使用,并为另一个指标请求数据--这样做比较容易。
如果我们计算这一组的所有请求,我们将得到大约7个缓冲区。
其他具有iCustom功能的指标,但比较简单的指标,脚本的计算...总数重叠在一万左右。目前的指标在第六打的时候就已经崩溃了。
我明白我的内存快用完了,但如果我们不使用旧的数据,为什么新的数据没有正确填入?

为什么在MT4中没有从内存中删除指标的功能,这是很难实现的?

 
如果指标副本的数量很高,就整合到EA中。没有其他出路。
 
Renat Fatkhullin:
如果指标的副本数量很多,那么就把它们整合到专家顾问中。没有其他解决办法。

我们在这里谈论的不是EA,而是一个脚本!脚本分析了该指标。在这方面是否有一个释放内存的解决方案? 如果我们教脚本在几遍之后关闭和打开图表(改变指标参数及其分析),这将允许清除内存?

Alexander Laur:

为什么要在你的专家顾问中创建一个 必须在以后删除的指标,特别是不能删除一次?

在专家顾问的代码中包括一个函数,执行与指标计算类似的计算。 在这个函数中,你可以很容易地改变计算的参数,而且不会出现内存超限。此外,可以避免对所有酒吧的计算,据我所知,你不需要这种计算。而且你将不需要iCustom()函数。

我只需要一个时期的所有条子。脚本是有效的--它对分析某种类型的指标是通用的--为每个指标写一个脚本是很昂贵的。 如果只有编译器能把指标(根据某个命令)插入顾问/脚本/指标中,那么生活就会不同了啊,梦想...