错误、漏洞、问题 - 页 2904

 
suncrypto:

你好!

给开发者的信息。

我正在继续测试Python - MT5。还有一件有趣的事情,也许是一个错误。
本质。

现在,我开始从终端中所有可用的金融工具中选择金融工具(约4000k)。
我从一个外部应用程序连接到终端,也就是说,脚本没有在终端内启动。

我获得每个符号的日线和分钟线,然后使用 "pandas "进行计算和初始选择工具。
我注意到,在一次这样的操作之后,终端逐渐开始将处理器加载到70-80%。
脚本工作后,处理器的负载没有减少(我试着等了15分钟),但终端非常慢。只有通过关闭 终端才有帮助。
如果我在不关闭终端的情况下运行脚本两次,脚本就能正常工作而不出错,但CPU负载仍在70-80%。

我已经把脚本简化到最低限度,这样我就可以重复实验,只留下请求报价。问题仍然存在。

如有需要,准备录制视频或以其他形式提供信息。

代码是pyhton。

尊敬的亚历山大。

终端行为中没有错误。你需要明白,为了处理1000个或更多的字符 - 你需要一个强大的铁和大量的内存。另外,建议严格限制图表上的条数(在终端设置中)。

至少是第九代或更好的第十代i7或i9。内存至少为32GB。


"......只留下报价请求......"- 如果你真的认为索取报价是一个非常简单的操作--放弃交易,永远不要靠近你的电脑。

 
Vladimir Karputov:

终端的行为没有错误。你需要明白,为了处理1000个或更多的符号 - 你需要强大的硬件和大量的内存。还建议严格限制图表上的条数(在终端设置中)。

至少是第九代或更好的第十代i7或i9。内存至少为32GB。


"......只留下报价请求......"- 如果你真的认为索取报价是一个非常简单的操作--放弃交易,永远不要靠近电脑。

也许没有错误,我不是说有,我只是指出这种行为是一个可能的错误,这个主题似乎是为这个问题保留的,还是我错了?

根据你所说的,我的硬件是绰绰有余的。顺便说一下,这种操作的内存消耗相对较低,约为3.5GB。记忆力一切正常,总的来说一切工作都很稳定。

现在,我有意将设置中的条数 从1mln减少到1k。这并没有产生任何影响。我想,如果我在终端打开几百个标签,会有更大的影响。

问题不在于枚举过程中占用了多少CPU时间,问题是在所有的查询完成后,负载并没有下降。
如果我们假设每一个被请求的符号都有一个单独的线程留在内存中(没有被销毁),以便进一步使用,那么这就解释了一切,没有问题了。

而我是否声称要求报价是一个简单的操作?这根本不是我所写的内容。关于我如何将脚本简化为一个原始的脚本,以便其他因素不产生影响,并留下 "仅要求报价"。

如果你真的认为交易需要了解询价是一个棘手的操作,那根本不是这样的。

至于放弃交易和远离电脑的建议,太晚了。对于第一点,你已经晚了25年,对于第二点,你已经晚了10年。

如果开发商会认为有必要,他们会考虑到这些信息。如果他们不这样做,他们就不这样做。

问候,亚历山大。

 
suncrypto:

也许没有错误,我没有主张,我指出这种行为是一个可能的错误,这个主题似乎是为这个设计的,还是我错了?

从你所说的情况来看,我有足够多的硬件。顺便说一下,这种操作的内存消耗相对较低,约为3.5GB。记忆力一切正常,总的来说一切工作都很稳定。

现在,我有意将设置中的条数 从1mln减少到1k。这并没有产生任何影响。我想,如果我在终端打开几百个标签,会有更大的影响。

这不是一个在枚举过程中吃掉多少CPU时间的问题,问题是在所有的查询完成后,负载并没有下降。
如果我们假设每一个被请求的符号都有一个单独的线程留在内存中(没有被销毁),以便进一步使用,那么这就解释了一切,没有问题了。

而我是否声称要求报价是一个简单的操作?这根本不是我所写的内容。关于我把脚本简化到最原始的程度,以便其他因素不产生影响,并留下 "仅要求报价"。

如果你真的认为交易需要了解询价是一个棘手的操作,那根本不是这样的。

至于放弃交易和远离电脑的建议,太晚了。对于第一点,你已经晚了25年,对于第二点,你已经晚了10年。

如果开发商会认为有必要,他们会考虑到这些信息。如果他们不这样做,他们就不这样做。

问候,亚历山大。

你在减少条数后重新启动了你的终端吗?

 
Vladimir Karputov:

你在减少条数后重新启动了终端吗?

我当然会这样做。
 
Vladimir Karputov:

你在减少条数后重新启动了终端吗?

suncrypto:
当然了。

我做了一个实验。

我在终端打开了大约100个窗口(它不会打开更多,有一个限制)。
处理器负载略微增加到8-10%,使用的内存大小增加,这是符合逻辑的。
然后我关闭了终端,再次打开,负载增加到70-80%,大约一分钟后,负载恢复正常,回到8-10%。

(在设置中把它设置为100万条)。


因此,上面描述的情况(有外部连接),就像他们说的那样,要么是一个错误,要么是一个特点。
只有开发者知道正确的答案。
如果它是一个错误,那么就关闭终端,并在这样的操作后重新打开它。该操作并不频繁。

 
suncrypto:

如果这是一个特点,那么在这样的操作之后关闭终端并重新打开它是相当好的解决方案。这种操作并不频繁。

是的,终端应该维护一个最近请求的时间序列的缓存。

但它不必永远这样做,我想有3或5分钟的暂停时间。

 
suncrypto:


请注意,从构建2650开始。


1.终端:增加了 "为未结头寸和订单提前加载图表数据 "的设置。


为了节省流量,交易平台只在其实际请求的时刻下载工具的价格历史,例如在打开图表或运行测试 时。然而,对于积极使用的仪器,这可能并不总是很方便。如果您启用这个新选项,每次启动平台时,您有未结头寸或挂单的工具的图表将在后台更新。因此,当你打开图表时,你将不必等待数据被重新加载,它们将立即可用于分析

Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода
Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода
  • 2020.10.08
  • www.mql5.com
В пятницу 9 октября 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

是的,终端应该维护一个最近请求的时间序列的缓存。

但它不应该永远这样做,我想有一个3或5分钟的暂停时间。

是的,在终端本身一切正常。关闭 "不必要的 "窗口可以减少CPU负荷和内存消耗。
到目前为止,唯一的问题是关于来自python的外部连接。
 
Vladimir Karputov:

请注意,从构建2650开始。


1.终端:增加了 "为未结头寸和订单提前加载图表数据 "的设置。


为了节省流量,交易平台只在其实际请求的时刻下载工具的价格历史,例如在打开图表或运行测试 时。然而,对于积极使用的仪器,这可能并不总是很方便。如果您启用这个新选项,每次启动平台时,您有未结头寸或挂单的工具的图表将在后台更新。因此,当你打开一个图表时,你将不必等待数据被重新加载 - 它将立即可用于分析。

在这一点上,有一个免责声明:"您有未结头寸或挂单的工具 的图表。
另外,在脚本运行时,所有的图表都已经上传到本地数据库,流量很小。

虽然这并不完全正确,但如果我们用SQL服务器来类比,我们对其进行至少100万次的数据请求,那么,是的,此刻处理器上会有一个峰值负载,但操作完成后处理器上的负载肯定会减少。

当然,Metatrader不是一个sql服务器,它是一个不同的平台,但由于某些原因,在我看来,在执行对MetaTrader的报价请求并关闭与它的连接后,一切都应该恢复正常。我希望metatrader的开发者能够解释。

 
mox_dimass:

在测试器中,翻转的错误是什么?在所附文件中,有一张截图,其中有一个例子一个未平仓的 卖出头寸,通过买入翻转关闭,然后通过卖出重新开仓,但成交量为零。

因此,该头寸没有被重新打开;它消失了。它在截图中被突出显示。我已经写过关于它的文章,但没有图片。这是一个什么样的错误? 它使我们无法测试。

我不知道开发者是否会对这个故障作出回应。毕竟,翻转是由测试者产生的,而不是我的软件。