// После окончания работы скрипта Терминал потребляет дополнительные 4 Gb. Как освободить?voidOnStart()
{
uint Data[];
ArrayResize(Data, 1 e6);
for (int i = 0; i < 1000; i++)
ResourceCreate("::" + (string)i, Data, ArraySize(Data), 1, 0, 0, ArraySize(Data), COLOR_FORMAT_ARGB_NORMALIZE);
}
如果你用鼠标拖动图形,对象*功能是非常滞后的。
他们能不能只是重新绘制?
例如,ObjectFind,它与重绘有什么关系?
例如,ObjectFind,它与重绘有什么关系?
关于交易、自动交易系统和交易策略测试的论坛
mql5的特殊性,技巧和窍门
fxsaber, 2020.03.04 08:58
我之前只是怀疑,现在已经证实了。在处理资源的时候,很容易出现内存泄露的情况。
脚本通过SB输出一个数字阵列的图形到图表中。然后你可以手动删除这个图表(对象),但分配给这个图表的资源将永远以只读模式挂在内存中。它不能被删除,因为只有所有者脚本可以删除它(见高亮行)。
MQL中没有任何功能可以释放如此占用的内存。在VPS上要 特别注意这一点。
脚本没有自我清理(或异常停止)后,如何释放终端的内存?
在任务管理器(F2)中,内存消耗显示得非常好。现在只有重新启动终端才有帮助。
在运行了没有自我清理的脚本后(或异常停止后),如何在终端释放内存?
在任务管理器(F2)中,内存消耗是完全可见的。目前,只有终端重新启动才有帮助。
通常情况下,有必要为每个资源调用 ResourceFree。
在崩溃方面,你无能为力。唯一的办法是制作一个dll,用来创建资源并在线程关闭后清理它们。
通常情况下,你必须为每个资源调用 ResourceFree。
在紧急关机的情况下,你也无能为力。只有当你制作自己的dll,通过它来创建资源,当线程关闭时,它将自己清除它们。
紧急关机还包括调试中断。
崩溃包括一个调试中断。
通过标准的mql手段--内存泄漏。只有你自己对这一切的实现应该以成熟的方式来写。鉴于带有DLL_THREAD_DETACH的DllMain不可能在这样的线程终止时被调用,这不是最微不足道的任务,但它是可控的。
UPD: 这个主题应该放在错误主题里。IMHO关于交易、自动交易系统和交易策略测试的论坛
新版本的MetaTrader 5 build 2650:图表的背景加载和MQL5代码分析器的改进
fxsaber, 2020.10.23 18:44
现在在图表栏中,你无法看到专家顾问在哪个图表上运行,哪个图表没有。
是否有可能添加一个区分标志?例如,如果欧元兑美元图表是与EA一起工作的,那么就在末尾添加一个星号:EURUSD*。一般来说,可以在视觉上吸引人的东西。
很多图表,有些是在一些上运行EA。可能对指标也有用,但我不使用它。这就是我不知道的原因。
由于某些原因,运行中的EA列表没有热键。你只能用鼠标打开它。
F2了。在一个EA上按下回车键--我们将切换到它的图表,在导航器中会打开一棵带有路径的树。第二次输入--来源在ME。
最近,它正在造成这个问题。
以前,市场客户可以通过重启终端来解决这个问题。现在没有了。
关于交易、自动交易系统和策略测试的论坛
新版本的MetaTrader 4 build 1330
fxsaber, 2021.04.03 00:21
使用实例。