如何从期刊中获得 "错误 "信息? - 页 2

 
GumRai:


我已经举了一个例子,但被你拒绝了。

确保出现错误时的print()包括一个容易识别的字符串。

然后当你打开日志文件时,用编辑/查找来定位那个字符串,这样就能同时找到错误报告。


GumRai:
如果你知道你将有大量的条目在日志文件中进行分类,那么在print()中加入类似 "xyz "的内容,然后使用Edit/Find来定位打印语句,可能是一个好主意。

问题不在于此。你也否定了我的帖子。问题不在于我看不到错误,而在于有超过10,000个日志条目,你想让我在所有条目中手动搜索?你想让我在所有的日志中手动搜索吗?+一个随机的 "xyz "将如何与错误代码 相关联。解决方案是,正如我所说的,某种代码可以检查是否有错误发生,并将其打印到日志中,或者更好的是,如果有多个错误发生,计算有多少个。).

 
Proximus:

问题不在于我看不到错误,而在于有超过10,000个日志条目,你想让我在所有这些条目中手动搜索?你想让我在所有的日志中手动搜索吗?+一个随机的 "xyz "将如何与错误代码相关联。解决方案是,正如我所说的,某种代码可以检查是否有错误发生,并将其打印到日志中,或者更好的是,如果有多个错误发生,计算有多少个。).


当你使用编辑/查找时,你是如何手动搜索的?

如果你有10,000个条目,而一个特定的字符串只出现了3次,那就需要点击3次鼠标来定位它们。

如果你只对包含 "错误 "这个词的条目感兴趣,那么就用查找来定位 "错误 "这个词。

 
GumRai:


当你使用编辑/查找时,你是如何手动搜索的?

如果你有10,000个条目,而一个特定的字符串只出现了3次,那么就需要点击3次鼠标来定位它们。

如果你只对包含 "错误 "一词的条目感兴趣,那么就用查找来定位 "错误 "一词。

1)是的,这就是为什么我需要自动化的东西,我相信MQ4可以让你开发一个小代码,可以在EA内完成这个工作。

2) 这并不重要。

3) 如果有900条错误日志怎么办?如果我想把不同类型的错误分组,比如我得到了错误nr 1和错误4056,因为错误nr 1不是那么糟糕的错误,但它隐藏在许多错误nr 1字符串中,如果我想计算它们呢?

事实上,让我们改变我的请求,因为我看到你们不明白,我在问什么。所以我的新请求是如何计算不同类型或日记中的错误?

例如:错误nr.1 x 10件

错误nr.4056 x 200件

错误号码4020 x 500件

就像这样,如何让EA向我显示某类错误的数量?

 
Proximus:

1) 是的,这就是为什么我需要自动化的东西,我相信MQ4可以让你开发一个小的代码,可以在EA中完成这个工作。

2) 这并不重要。

3) 如果有900条错误日志怎么办?如果我想对不同类型的错误进行分组,比如我得到错误nr 1和错误4056,因为错误nr 1不是那么糟糕的错误,但它隐藏在许多错误nr 1字符串中,如果我想计算它们呢?

事实上,让我们改变我的要求,因为我看到你们不明白,我在问什么。所以我的新要求是如何计算不同类型或日记中的错误?

例如:错误nr.1 x 10件

错误nr.4056 x 200件

错误编号4020 x 500件

就像这样,如何让EA显示出某一类型的错误有多少?

如果你有一个错误,请修复它......如果你有许多错误,请全部修复......如果你的日志中有2000个错误,你就有严重的问题,没有必要去寻找,修复你的任何错误。
 
RaptorUK:
如果你有一个错误,请修复它 ... ... 如果你有许多错误,请全部修复 ... ... 如果你的日志中有2000个错误,你就有严重的问题,没有必要去寻找,修复你的任何错误。

是的,这毕竟是重点,但是你知道当你的日志中有2000个交易时,它总是充满了订单修改/关闭/打开的数据,在所有这些无用的垃圾邮件中,你几乎看不到错误信息。这就是为什么我需要开发某种错误捕捉器代码,如果出现哪怕是一个错误,都会通知我。
 
Proximus:
是的,这毕竟是重点,但你知道当你有2000个交易记录时,它总是充满了订单修改/关闭/打开的数据,在所有这些无用的垃圾邮件中,你几乎看不到错误信息。这就是为什么我需要开发某种错误捕捉器代码,如果出现哪怕是一个错误,都会通知我。

不,只要Print("MyEANameError: ", Error, . . . ) 然后搜索MyEANameError,你就会发现所有的错误。
 

Proximus似乎没有理解Raptor的意思。

我写了这个测试代码

 for(int line=1;line<=10000;line++)
      {
      if(line==5000)
         {
         Print("HeeHee, I'm line number 5,000 - you'll never find me!");
         continue;
         }
      Print("This is line ",line);
      }

所以我现在有一个有10,000行Print()的日志

使用编辑/查找,HeeHee不会出现在任何其他行的代码中

并简单地点击查找下一个,一毫秒之后

就这么简单,只需使用默认的记事本就可以了

 
你真的不了解我
Proximus:

1) 是的,这就是为什么我需要自动化的东西,我相信MQ4可以让你开发一个小的代码,可以在EA中完成这个工作。

2) 这并不重要。

3) 如果有900条错误日志怎么办?如果我想对不同类型的错误进行分组,比如我得到错误nr 1和错误4056,因为错误nr 1不是那么糟糕的错误,但它隐藏在许多错误nr 1字符串中,如果我想计算它们呢?

事实上,让我们改变我的要求,因为我看到你们不明白,我在问什么。所以我的新要求是如何从日志中计算不同类型或错误?

例如:错误nr.1 x 10件

错误nr.4056 x 200件

错误编号4020 x 500件

就像这样,如何让EA向我显示某类错误的数量?

请看我的回答。所以我的想法是捕捉不同类型的错误,和/或计算它们。我想知道有多少个和它的类型,因为按类型计算错误比在记事本中搜索更容易。想象一下这样的情况:有10个错误和10个不同的隐藏在行间的错误,或者有数百个错误,每个都是不同的,所以如果我搜索比如说错误号4025我怎么知道还有一个错误号4000?我显然不会去搜索所有的错误代码。因此,如果有一台计数机,按类型统计所有的错误,并偶尔打印出来,那不是更容易吗?

+10.000行是不够的,我不确定MT4到底保留了多少行,但我确信对我来说是不够的。我现在通常做5000-7000个交易或更多的回测,1行用于订单打开,3-4行用于追踪订单修改,1行用于订单关闭=6行/交易*7000个交易=~42000行或模式,我确信MT4日志不会保留这么多:)

所以,是的,计数法会更有效!

RaptorUK:
不,只要Print("MyEANameError: ", Error, . . . ) 然后搜索MyEANameError,你就会发现所有的错误。

这也不是解决方案,"Error "这个变量里有什么? 另外,如何测试 是否发生了错误?如果可能的话,如何区分不同类型的错误?显然要用代码来表示。
 

我希望我没有说得太明显,如果我说得太明显,请原谅!我怀疑每个人的回答都假定你知道。

我猜想每个人在回答时都认为你已经知道了,但是MT日志只是一些文件,每天一个,其中最新文件的最后几行会显示在GUI中。

这些文件(用于回测)位于MetaTrader安装文件夹/测试器/日志 中。

你可以使用任何可用的工具进行搜索--例如,用dos命令Findstr来提取文件......

cd MetaTrader Folder/tester/logs

Findstr some_text *.log

Findstr some_text *.log > small_log.txt


再次道歉,如果我说的是显而易见的,而你实际上是在寻找别的东西!?

 
ydrol:

再次道歉,如果我说的是显而易见的事,而你实际上是在寻找别的东西!?


不需要道歉,但我理解,OP对发现和纠正错误 不感兴趣,而是对他们的统计数据感兴趣。