文章 "MQL5中的错误处理和日志记录" - 页 2 12 新评论 Sergey Eremin 2015.11.10 09:00 #11 Михаил:谢尔盖贸易服务器返回代码 就是针对这种情况的。举例说明:您检查了空闲资金的可用性,并得到了肯定的结果。您发送了订单,但订单未被接受(如您所说:"可能会发生什么")、因此交易服务器会在返回代码中给出 "资金不足 "的错误信息。米哈伊尔,您真的认为我不明白吗?:)好吧,我把我的说法和文章的思想翻译一下:首先我们进行初步检查,然后检查结果。我不会纠结于交易(对它来说,是的,这些是交易服务器返回代码),因为它可能是任何东西:1) 例如一个文件:首先检查是否存在这样一个文件,如果不存在,则创建并向其写入数据。然后,检查结果是什么2) 例如一个图形对象:首先检查是否存在这样一个对象。如果不存在,则创建该对象,否则移动该对象(如果坐标发生变化)。然后检查得到的结果。等等。几乎任何事情都依赖于其他东西,都可能失败。所以,我们还是来定义/总结一下。 关于第一点--所有这些都在文档中。 关于第二点--在我看来,如果你读了这篇文章,可能的反应就会很明显。 但如果你不同意我的观点,最简单的解决办法就是写一篇关于这个问题的文章。就我个人而言,我认为没必要亲自写这篇文章。如果这对你很重要,那就请你写吧。我相信您会比我写得更好,因为您对此有明确的兴趣。 附:我相信 MQL4/5 不仅仅是关于智能交易系统。很明显,对您来说主要是它们。但举例来说,在过去两个月中,我制作的指标是 EA 的两倍。因此,一切都是非常主观的。 Mikhail Filimonov 2015.11.10 09:11 #12 谢尔盖我对您的文章毫无怨言。 Alex 2016.10.31 21:05 #13 你好、感谢您的文章!我可以在自己的项目 中使用您的 CLogger 类吗?顺便问一下:mql5.com 的文章/源代码属于哪种许可?致以最诚挚的问候、亚历克斯 Ronei Toporcov 2017.07.20 16:14 #14 我使用 MT5。当我在回溯测试中使用您的示例时,"mylog "被写入 C:\Program Files\MetaTrader 5 Terminal\Tester\Agent-127.0.0.1-3000\MQL5\Files 文件夹。为了方便起见,我想把它放在 个人文件夹中:例如 "C:\\MT5Personal\Logs\mylog" 。但是,我总是得到错误 5002,而且名称的大小不超过 255 字节。可能是哪里出了问题?谢谢。 Stanislav Korotky 2018.07.27 20:50 #15 唉,记录仪效率很低。我想用它,但我想我得自己发明一辆自行车了;-)。 Daniel Lagoshniak 2021.08.02 22:05 #16 关于日志记录器的效率...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 日志和其他日志。 Discussion of article "Error 神经网络变得轻松(第二十部分):自动编码器 神经网络变得简单(第 93 部分):频域和时域中的自适应预测(终篇) leonerd 2022.03.03 08:29 #17 所有内容都只能保存在一个文件中。如果必须保存两个文件呢?如果有些东西只需要打印,而有些东西需要写入文件呢?没有灵活性。这就需要不通过 Defyne 进行调用,而是通过创建一个对象。 例如,我想打印并写入文件。或者,我想同时发送推送和电子邮件。 Zarik 2022.07.04 16:26 #18 真是一笔财富!感谢您的贡献! 干杯,扎里克 12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢尔盖
贸易服务器返回代码 就是针对这种情况的。
举例说明:您检查了空闲资金的可用性,并得到了肯定的结果。
您发送了订单,但订单未被接受(如您所说:"可能会发生什么")、
因此交易服务器会在返回代码中给出 "资金不足 "的错误信息。
米哈伊尔,您真的认为我不明白吗?:)
好吧,我把我的说法和文章的思想翻译一下:首先我们进行初步检查,然后检查结果。我不会纠结于交易(对它来说,是的,这些是交易服务器返回代码),因为它可能是任何东西:
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 进行调用,而是通过创建一个对象。
例如,我想打印并写入文件。或者,我想同时发送推送和电子邮件。
真是一笔财富!感谢您的贡献!
干杯,扎里克