文章 "MQL5中的错误处理和日志记录" - 页 2

 
Михаил:

谢尔盖

贸易服务器返回代码 就是针对这种情况的。

举例说明:您检查了空闲资金的可用性,并得到了肯定的结果。

您发送了订单,但订单未被接受(如您所说:"可能会发生什么")、

因此交易服务器会在返回代码中给出 "资金不足 "的错误信息。

米哈伊尔,您真的认为我不明白吗?:)

好吧,我把我的说法和文章的思想翻译一下:首先我们进行初步检查,然后检查结果。我不会纠结于交易(对它来说,是的,这些是交易服务器返回代码),因为它可能是任何东西:

1) 例如一个文件:首先检查是否存在这样一个文件,如果不存在,则创建并向其写入数据。然后,检查结果是什么

2) 例如一个图形对象:首先检查是否存在这样一个对象。如果不存在,则创建该对象,否则移动该对象(如果坐标发生变化)。然后检查得到的结果。

等等。几乎任何事情都依赖于其他东西,都可能失败。


所以,我们还是来定义/总结一下。

关于第一点--所有这些都在文档中。
关于第二点--在我看来,如果你读了这篇文章,可能的反应就会很明显。

但如果你不同意我的观点,最简单的解决办法就是写一篇关于这个问题的文章。就我个人而言,我认为没必要亲自写这篇文章。如果这对你很重要,那就请你写吧。我相信您会比我写得更好,因为您对此有明确的兴趣。

附:我相信 MQL4/5 不仅仅是关于智能交易系统。很明显,对您来说主要是它们。但举例来说,在过去两个月中,我制作的指标是 EA 的两倍。因此,一切都是非常主观的。

 

谢尔盖

我对您的文章毫无怨言。

 

你好、

感谢您的文章!

我可以在自己的项目 中使用您的 CLogger 类吗?

顺便问一下:mql5.com 的文章/源代码属于哪种许可?

致以最诚挚的问候、

亚历克斯

 

我使用 MT5。

当我在回溯测试中使用您的示例时,"mylog "被写入 C:\Program Files\MetaTrader 5 Terminal\Tester\Agent-127.0.0.1-3000\MQL5\Files 文件夹。

为了方便起见,我想把它放在 个人文件夹中:例如 "C:\\MT5Personal\Logs\mylog" 。

但是,我总是得到错误 5002,而且名称的大小不超过 255 字节。

可能是哪里出了问题?

谢谢。

 
唉,记录仪效率很低。我想用它,但我想我得自己发明一辆自行车了;-)。
 

关于日志记录器的效率...java 语言也是先制作一个日志记录器,然后不得不忍受很长一段时间的痛苦。

在 java 中,这个问题是通过使用 var args 解决的,而在 MQL4/5 中却没有。问题出在哪里?- 首先,我们调用 error.toString(),然后在 `CLogger::log(string1 + string2 + string3...); ` 中连接所有字符串,最后才检查是否要打印得到的字符串。


我有什么建议?- 没有什么新东西,实际上,在相同的 java 中,这已经成为一种标准:

`if(CLogger::isLevel(LOG_LEVEL_INFO))

CLogger::log(string1 + string2 + string3);``

当然,在这种情况下,您需要使用不同的日志记录器来记录文件 日志、printf 日志和其他日志。

 

所有内容都只能保存在一个文件中。如果必须保存两个文件呢?如果有些东西只需要打印,而有些东西需要写入文件呢?没有灵活性。这就需要不通过 Defyne 进行调用,而是通过创建一个对象

例如,我想打印并写入文件。或者,我想同时发送推送和电子邮件。

 

真是一笔财富!感谢您的贡献!

干杯,扎里克