错误、漏洞、问题 - 页 2557

 
Nikolai Semko:

是的,崩溃是非常艰难的。最好不要冒任何风险。
当然,这都是关于记忆。
如果你像这样用手来清理记忆。

那么崩溃也不会发生。总之,它对我来说不起作用。
但是,当TF被改变时,数组必须被自动清理!

我不明白,如果函数Crash()不做,我们为什么要处理它,因为它只读取指标的信息。
也许,在改变TF时,这个函数的执行会减慢OnDeinit的速度,因此MT5没有时间来清除内存。
OnDeinit的异步性在很长一段时间内存在问题。这不是好事!系统不能因为异步而崩溃。

1)你需要在这里用INT_MAX(2 bn)来截断鲟鱼。

CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,(TimeCurrent()-Weeks*7*24*60*60)*1000,INT_MAX);

我们也将从我们这边解决这个问题。

2)整个内存必须以一种非常严格的方式进行管理,没有GC。

3) 时间框架变化时的指标重新初始化是温暖的,没有从头开始的物理重新初始化,所以你需要自己释放内存,特别是全局层面的资源

4)使用OOP,它至少会给你正确描述和控制资源的能力。

 

这是一张滚动时系统负载的截图--GP几乎处于死机状态--为什么不加载?


 
Aleksey Vyazmikin:

我指的是FX-8350处理器和Radeon HD 7950显卡。我没有感觉到显卡是由MT5加载的。

然而,它是。显卡对渲染速度有很大影响,因为它是用于渲染的。

你的问题缺乏关于滚动发生的环境的信息。

比如说。

  • 有多少个指标,它们是什么类型的指标 - 渲染的复杂性是完全不同的
  • 图表上有多少个项目
  • 程序是否对事件作出反应,特别是移动、鼠标等--它们可以在其线程中创造运动
  • 滚动到图表的左边缘,这将导致自动分页和重建数据
  • 图表上可见区域和总的图形对象的数量,包括隐藏的对象

如果情况稳定,所有的数据都被计算出来了,而且没有诱导性的请求,那么显卡和CPU就会负责负载。


由于你明确表示 "在一个核心上跳到100%,而不是所有核心",这是一个完全正常的情况。计算机完成了它的工作--它加载了所选的核心,这样做它的CPU使用率=所有8个核心的12.5%,而不是100%。

 
Renat Fatkhullin:

1) 你需要在这里用INT_MAX(2 bln)来截断sturgeon。

我们也会纠正这一点。

2)所有的内存都应该以非常严格的方式进行管理,这里没有GC。

3) 时间框架变化时的指标重新初始化是温暖的,没有从头开始的物理重新初始化,所以你需要自己释放内存,特别是全局层面的资源

4)使用OOP,它至少会给你正确描述和控制资源的能力。

继续同一个话题,请看这个帖子--不清楚当交易所关闭时这些刻度线来自哪里--我应该联系经纪人还是交易所?

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

MQL5自己的时间框架

Aleksey Vyazmikin, 2019.09.07 09:50

我不知道该如何处理它们,我不知道该如何处理它们,我也不知道它们是否正确......而在清算期间。



 
Aleksey Vyazmikin:

而这是一张滚动时系统加载的截图--GP几乎处于死机状态--为什么没有被加载?

所以这次没有什么严重的事情被传送到它身上。

这是我的测试,在一个完全空白的屏幕上,主动滚动:你可以清楚地看到负载激增,这是Windows 10的内部监控。


 
Renat Fatkhullin:

然而,它确实如此。显卡对渲染速度有很大影响,因为它是用于渲染的。

你的问题缺乏关于滚动发生的环境的信息。

比如说。

  • 有多少个指标,什么类型的指标 - 渲染的复杂性完全不同。
  • 图表上有多少个项目
  • 程序是否对事件作出反应,特别是移动、鼠标等--它们可以在其线程中创造运动
  • 滚动到图表的左边缘,这将导致自动分页和重建数据
  • 图表上可见区域和总的图形对象的数量,包括隐藏的对象。

如果情况稳定,所有的数据都被计算出来了,而且没有诱导性的请求,那么显卡和CPU就会负责负载。


由于你明确表示 "在一个核心上跳到100%,而不是所有核心",这是一个完全正常的情况。计算机完成了它的工作--它加载了所选的核心,这样做它的CPU使用率=所有8个核心的12.5%,而不是100%。

我提供关于环境的信息。

- 指标是16个,渲染并不复杂,没有画布、工具栏和其他装饰品--棍棒/条纹--我附上一张截图。

- 图表上没有程序,我在优化器之后打开一个窗口,就像一个例子--工作图表也很慢,但比较少(指标比较少)。

- 不,事件不被处理。

- 选择了无限制的条形显示模式,即分页被某种程度上排除在外。

- 没有任何图形对象,或者说我已经删除了所有的箭头和破折号。只剩下一个标签--它来自指标。我今天休息一天,应该不会影响到它。

我在上面贴了一张截图,显示显卡没有啮合,有没有办法检查它是否啮合,或者说负载接近零,核心被加载,这是否正常?

来自MetaTrader平台的截图

Si Splice, M1, 2019.09.07

JSC ''Otkritie Broker'', MetaTrader 5, Real

Si Splice, M1, 2019.09.07, Otkritie Broker, MetaTrader 5, Real


 
Renat Fatkhullin:

所以这次没有什么严重的事情传给他。

这是我的测试,在一个完全空白的屏幕上,同时积极滚动:你可以清楚地看到负载峰值,这是标准的Windows 10监控。


所以也许它应该,但它不是--你怎么知道?

 

我似乎已经用足够的细节和许多不同的方式解释了一切。

计算机做它的工作。所有的工作都需要花费资源,你可以看到这些资源的消耗。

是什么让你认为在你看来,资源不应该被消耗 - 我不明白。


我不知道微星Afterburner到底考虑了哪些GPU特性。外面有很多特性,我完全不知道整体的GPU负载是什么,而不是某个特定的点。

我的证明:我拿着它,只是滚动浏览器窗口。

在MetaTrader 5中滚动图表时,情况是完全一样的。


终端对显卡的使用得到了证明。

考虑到我已经在交易终端项目及其优化方面花了20年时间,不相信我的话才怪。

 
Aleksey Vyazmikin:

所以也许它应该,但它不是--你怎么知道?

改变测试方案或听取与手头问题直接相关的人的意见。
 
Renat Fatkhullin:

我似乎已经用足够的细节和许多不同的方式解释了一切。

计算机做它的工作。所有的工作都需要花费资源,你可以看到这些资源的消耗。

是什么让你认为在你看来,资源不应该被消耗 - 我不明白。


我不知道MSI Afterburner判断的GPU规格到底是什么。外面有很多特性,我完全不清楚GPU的总负荷是什么,而不是某个特定的点。

我的证明:我拿着它,只是滚动浏览器窗口。

在MetaTrader 5中滚动图表时,情况是完全一样的。


终端对图表的使用得到了证明。

考虑到我已经在交易终端项目及其优化方面花了20年时间,不相信我的话才怪。

这不是信任你的问题!我只是假设驱动或其他方面有问题,尽管各种3D游戏都能运行。

浏览器加载视频卡,当然不是每一页,但有视频剪辑和类似的东西--我检查过。

我也检查过了,然后我把所有内置的MT5指标扔在40个指数图上,一切都滚动得非常快,核心负载是20%-25%。

那么问题出在我的某些指标上?我不明白,但它已经被计算出来了。多年来,我一直在要求一些管理者实现,什么将用户可以在图表上看到哪个程序/指标/脚本,多少CPU时间,这将是非常方便。