错误、漏洞、问题 - 页 2342

 
fxsaber:
资源是否限制在这种规模?

因此,浓缩传输的数据就更有意义了。

 
fxsaber:

在这个意义上,MT4比MT5明智得多--没有程序崩溃,你可以分析LastError。

首先:在一个无法恢复的关键错误之后继续执行程序 不是智慧,而是愚蠢。

第二:在MetaTrader 4 765x32中运行后,我还没有达到PrintError()

第三:如果你删除strict,它已经达到了,但GetLastError()返回0,所以不清楚该怎么分析了

 
fxsaber:
如何通知用户停止EA的情况?

在这个意义上,MT4比MT5明智得多--没有程序崩溃,你可以分析LastError。

而当访问一个数组时,检查访问索引不是很合乎逻辑吗?

 
A100:

首先:在发生无法恢复的关键错误后继续执行程序 是愚蠢的,而不是明智的。

第二,你在MetaTrader 4 765x32中执行这个程序 后,PrintError()永远不会发挥作用。

第三,如果你去掉strict,它将返回0,但GetLastError(),所以不清楚要分析什么。

没有任何任务表明MT4比MT5好。我必须要解决一个实际问题。

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

图书馆:HistoryTicks

fxsaber, 2018.12.10 13:55

获得EA因数组超出范围 而停止的信息(不是EA作者的错)。例如,由于缺乏内存或其他故障。这意味着你会马上知道EA已经异常停止,而不是在几个小时后才意外发现


当专家顾问停止时,这是不愉快的,但它没有以任何方式报告。

格奥尔基-梅尔茨

而当访问一个数组时,检查访问索引不是很合乎逻辑吗?

这是不符合逻辑的。

 
Nikolai Semko:

因此,浓缩传输的数据就更加合理了。

经检查,60Mb很容易写入(MT4/5)到资源。因此,如果有一个限制,它是更高的。

 

一个小问题,但仍然是。

当发送至存储器时 - 第一个面板 "修复" - 工作正常,而第二个,确认,在我的第一种情况下,不等待OK键,但立即出去,第二 - 它不显示所有的文件发送。但我检查过了--文件是正常发送的。

只有我是这样吗?

这似乎是正确的--当发送后,会显示一个已发送文件的列表,并确认一切顺利。

 
fxsaber:

没有意义。

为什么呢?

在我看来,我们不需要在这些地方检查索引,从逻辑上讲,不可能出现超出数组限制 的索引。即使在这种情况下,你也应该使用ASSERT,以防万一。

而在那些索引依赖于与外部参数、报价和用户操作相关的先前操作的地方,对索引参考的检查应该是强制性的。

在你看来,不是这样的吗?

 
Georgiy Merts:

为什么呢?

在我看来,没有必要检查索引,根据程序的逻辑,索引不可能出现在数组 之外。

我同意。

即使在这种情况下,你也必须使用ASSERT,以防万一。

我不同意,因为代码的可读性会受到很大影响。

在这些地方,指数取决于以前有关外部参数、报价和用户行为的操作,对处理指数的检查必须是强制性的。

我不明白我们这里所说的外部参数是什么意思。每当你检查ArrayResize或ArrayCopy是否正常完成,而不是琐碎的内存耗尽时,都会通过ASSERT使代码膨胀,这真是一团糟。如果你不检查它,你会得到一个难以察觉的专家顾问的停止。到目前为止,我只找到一个解决方案--替换ArrayResize和ArrayCopy。

 
Slava:

谁在挡路?

ChartSaveTemplate(chart_id,"\\Files\\MyPreferredTemplates\\cewl.tpl");

该函数不会创建一个文件夹,它只在一个文件夹已经存在的情况下写入一个模板 ....如果该文件夹不存在,错误4112

因此,文件夹必须事先做好准备......

有趣的是,FileOpen函数不能在模板文件夹中创建一个文件夹,ChartSaveTemplate函数也不能创建目录......

也就是说,如果你想在子文件夹中保存模板,那么就手动创建文件夹....。

 

没有记忆

在搜索GlobalVariables

能否出现?