Как получить информацию об "ошибке" из журнала? - страница 2

 
GumRai:


Я уже приводил пример несколько постов назад, который ты отверг.

Убедитесь, что print() при возникновении ошибки включает строку, которую легко идентифицировать.

Затем, когда вы откроете файл журнала, используйте edit/find, чтобы найти эту строку, таким образом, одновременно найдется отчет об ошибке.


GumRai:
Если вы знаете, что у вас будет много записей в лог-файле, которые нужно отсортировать, может быть, стоит поместить что-то вроде "xyz" в print(), а затем использовать Edit/Find для поиска операторов печати.

Проблема не в том, что я не могу увидеть ошибку, а в том, что существует более 10.000 записей журнала, вы хотите, чтобы я искал вручную во всех из них? + как случайный "xyz" будет ассоциироваться с кодом ошибки. Ошибка будет показывать такие вещи, как код ошибки 1, код ошибки 2, как вы думаете, как я буду ассоциировать их в любой форме с текстовым идентификатором.Решением будет, как я уже говорил 2 раза, какой-то код, который проверяет, произошла ли какая-нибудь ошибка и выводит ее в журнал, или лучше, если произошло несколько ошибок, подсчитывает их количество. Я не знаю, возможно ли такое, поэтому и спрашиваю, наверное, я не очень четко сформулировал свою проблему, но любая помощь будет оценена по достоинству :) .

 
Proximus:

Проблема не в том, что я не могу увидеть ошибку, а в том, что есть более 10.000 записей журнала, вы хотите, чтобы я искал вручную во всех из них? + как случайный "xyz" будет ассоциироваться с кодом ошибки. Ошибка будет показывать такие вещи, как код ошибки 1, код ошибки 2, как вы думаете, как я буду ассоциировать их в любой форме с текстовым идентификатором.Решением будет, как я уже говорил 2 раза, какой-то код, который проверяет, произошла ли какая-нибудь ошибка и выводит ее в журнал, или лучше, если произошло несколько ошибок, подсчитывает их количество. Я не знаю, возможно ли такое, поэтому и спрашиваю, наверное, я не очень четко сформулировал свою проблему, но любая помощь будет оценена по достоинству :) .


Как вы осуществляете поиск вручную, если используете Edit/find?

Если у вас 10,000 записей, а определенная строка встречается только 3 раза, то потребуется 3 щелчка мышью, чтобы найти их.

Если вас интересуют только записи, содержащие слово "error", используйте find для поиска слова "error".

 
GumRai:


Как вы осуществляете поиск вручную, если используете Edit/find?

Если у вас 10 000 записей, а определенная строка встречается только 3 раза, то для ее поиска потребуется 3 щелчка мышью.

Если вас интересуют только записи, содержащие слово "ошибка", используйте find для поиска слова "ошибка".

1) Да, именно поэтому мне нужно автоматизировать эту работу, я уверен, что mq4 позволяет вам разработать небольшой код, который может сделать это внутри советника.

2) Это не имеет значения.

3) Что если есть около 900 журналов ошибок? Что если я хочу сгруппировать различные типы ошибок, например, если я получаю ошибку № 1 и ошибку 4056, так как ошибка № 1 не такая уж плохая ошибка, но она скрыта во многих строках ошибки № 1. Что если я хочу посчитать их?

На самом деле, давайте изменим мой запрос, потому что я вижу, что вы, ребята, не понимаете, о чем я спрашиваю. Итак, мой новый запрос - как подсчитать различные типы или ошибки из журнала?

Например: ошибка nr .1 x 10 шт.

ошибка № 4056 x 200 шт.

ошибка № 4020 x 500 шт.

Например, как сделать так, чтобы советник показывал мне, сколько ошибок произошло от определенного типа?

 
Proximus:

1) Да, именно поэтому мне нужно автоматизировать этот процесс, я уверен, что mq4 позволяет вам разработать небольшой код, который может сделать это внутри советника.

2) Это не имеет значения.

3) Что если есть около 900 журналов ошибок? Что если я хочу сгруппировать различные типы ошибок, например, если я получаю ошибку № 1 и ошибку 4056, так как ошибка № 1 не такая уж плохая ошибка, но она скрыта во многих строках ошибки № 1. Что если я хочу посчитать их?

На самом деле, давайте изменим мой запрос, потому что я вижу, что вы, ребята, не понимаете, о чем я прошу. Итак, мой новый запрос - как подсчитать различные типы или ошибки из журнала?

Например: ошибка nr .1 x 10 шт.

ошибка № 4056 x 200 шт.

ошибка № 4020 х 500 шт.

Например, как сделать так, чтобы советник показывал мне, сколько ошибок произошло от определенного типа?

Если у вас одна ошибка, исправьте ее... если у вас много ошибок, исправьте их все... если у вас 2000 ошибок в журнале, у вас серьезные проблемы, не нужно искать, исправьте все ошибки, которые у вас есть.
 
RaptorUK:
Если у вас одна ошибка, исправьте ее... если у вас много ошибок, исправьте их все... если у вас 2000 ошибок в журнале, у вас серьезные проблемы, не нужно искать, исправьте все ошибки, которые у вас есть.

Да, в этом и есть смысл, но вы знаете, когда у вас 2000 сделок в журнале, он всегда заполняется данными о модификации/закрытии/открытии ордеров, и вы едва ли сможете увидеть сообщение об ошибке между всем этим бесполезным спамом. Вот почему мне нужно разработать своего рода код ловца ошибок, который будет уведомлять меня, если появилась хотя бы одна ошибка.
 
Proximus:
Да, в этом и есть смысл, но вы знаете, когда у вас 2000 сделок в журнале, он всегда заполняется данными о модификации/закрытии/открытии ордеров, и вы едва ли сможете увидеть сообщение об ошибке между всем этим бесполезным спамом. Вот почему мне нужно разработать своего рода код ловца ошибок, который будет уведомлять меня, если появилась хотя бы одна ошибка.

Нет, просто Print("MyEANameError: ", Error, . . . . . ) затем выполните поиск по MyEANameError и вы найдете все ваши ошибки . . . . .
 

Проксимус, похоже, просто не понимает Раптора.

Я написал этот тестовый код.

 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().

Используя Edit/Find, HeeHee не появится ни в одной другой строке кода

и просто нажимаю на find next, миллисекунду спустя.

Все очень просто, просто использую стандартный Блокнот.

 
Человек, ты действительно не понимаешь меня
Proximus:

1) Да, именно поэтому мне нужно автоматизировать этот процесс, я уверен, что mq4 позволяет вам разработать небольшой код, который может сделать это внутри советника.

2) Это не имеет значения.

3) Что если есть около 900 журналов ошибок? Что если я хочу сгруппировать различные типы ошибок, например, если я получаю ошибку № 1 и ошибку 4056, так как ошибка № 1 не такая уж плохая ошибка, но она скрыта во многих строках ошибки № 1. Что если я хочу посчитать их?

На самом деле, давайте изменим мой запрос, потому что я вижу, что вы, ребята, не понимаете, о чем я спрашиваю. Итак, мой новый запрос - как подсчитать различные типы или ошибки из журнала?

Например: ошибка nr .1 x 10 шт.

ошибка № 4056 x 200 шт.

ошибка № 4020 х 500 шт.

Например, как сделать так, чтобы советник показывал мне, сколько ошибок произошло с определенным типом?

Пожалуйста, прочитайте мой ответ.Итак, идея состоит в том, чтобы поймать различные типы ошибок, и/или подсчитать их.Я хочу знать, сколько их там и их типы, потому что легче считать ошибки по типам, чем искать в блокноте.Представьте себе ситуацию, когда есть 10 ошибок и 10 различных скрывающихся между строк или есть сотни ошибок, каждая из которых отличается, так что если я ищу, скажем, ошибку номер 4025, как я узнаю, что есть ошибка номер 4000 также? Очевидно, что я не собираюсь искать все коды ошибок. Так не проще ли сделать счетную машину, которая подсчитывает все ошибки, сгруппированные по типам, и периодически распечатывает их.

+10.000 линий недостаточно, я не знаю точно, сколько их хранит MT4, но уверен, что для меня этого недостаточно. Я обычно делаю бэктесты с 5000-7000 сделок или больше, 1 линия для ордера open, 3-4 линии для trailstops ordermodify, и 1 линия для orderclose = это 6 линий /трейд * 7000 сделок = это ~42000 линий или режим, и я уверен, что журнал MT4 не хранит столько в нем :)

Так что да, метод подсчета был бы более эффективным!

RaptorUK:
Нет, просто Print("MyEANameError: ", Error, . . . . . ) затем выполните поиск по MyEANameError и вы найдете все ваши ошибки . . ..

Это тоже не решение, что находится в переменной "Error"? И как проверить, произошла ли ошибка? И возможно, если возможно, как различать разные типы ошибок? Очевидно, с помощью кода. Спасибо!
 

Надеюсь, я не говорю очевидного, и прошу прощения, если это так!

Я подозреваю, что все отвечающие предполагали, что вы знаете, но журнал MT - это просто несколько файлов, по одному в день, из которых последние несколько строк последнего файла отображаются в графическом интерфейсе.

Файлы (для обратного тестирования) находятся в папке MetaTrader Install Folder/tester/logs.

Вы можете искать их, используя любые доступные вам инструменты - например, команду dos Findstr для извлечения файлов...

cd MetaTrader Folder/tester/logs

Findstr some_text *.log

Findstr some_text *.log > small_log.txt


Еще раз прошу прощения, если я говорю очевидное, а вам на самом деле нужно что-то другое!?

 
ydrol:

Еще раз извините, если я говорю очевидное, а вам на самом деле нужно что-то другое!?


Не нужно извиняться, но я понял, что ОП не заинтересован в поиске и исправлении ошибок, а скорее в их статистике.
Причина обращения: