Проблема с MT4, когда MT4 открывает сделку, а затем сразу же закрывает ее снова - страница 5

 
7bit:

До сих пор неизвестно, какой советник вызывает это.


Все, что мы видели до сих пор, это симптомы и несколько теорий. Нам нужны журналы экспертов в папке experts/logs со всех 4 терминалов, охватывающих один и тот же промежуток времени, чтобы сделать какие-либо дальнейшие выводы. Эти журналы могут подтвердить или опровергнуть мою теорию, и они покажут, кто отправляет ордера на закрытие.

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

//После того, как я перечитал тему, я увидел, что он запускает 30 советников на 4 терминалах...

//z.

 
zzuegg:

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

Нам нужно столько журналов, сколько терминалов. IIRC он упоминал 4 терминала, каждый из которых запускает несколько советников. Но на самом деле неважно, сколько их, главное - просматривать журналы всех терминалов одновременно.

Сделка, открытая советником EA1 на терминале1, может быть закрыта советником EA2, работающим на терминале2. EA1 тут же снова откроет сделку, а EA2 тут же закроет ее снова и так до бесконечности.

Журнал экспертов терминала1 будет заполняться записями об открытии, а журнал экспертов терминала2 - записями о закрытии. В истории счета все убытки будут приписаны советнику EA1, потому что именно он открыл сделку, а советник EA2 останется полностью под радаром, его имя не будет упоминаться в истории счета. Только в журнале экспертов терминала, на котором он работает.


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

 

однажды у одного из моих экспертов был подобный исис, виновным был код:

if(Close[1]<Open[1] && Close[2] < Open[2]){
  //CLOSE ALL PROFITALBE BUYS
}

это случилось только один раз... мне повезло, что я закрыл только прибыльные сделки... так что мой советник сделал 100 сделок и закрыл их, как только они стали положительными.

 



Впервые эта проблема возникла в мае 2010 года и коснулась советника под названием "Callibre".

Проснулся утром, а на счету была дыра в $4,000, и вкладка "История" загружалась целую вечность.

Я поговорил с брокером и получил дамп логов их сервера MT4 (прилагается).

Также прилагается график, показывающий сделки.

Журналы сервера показывают, что открытие и закрытие сделок происходило от одного и того же советника.

В то время я обвинил советника, решив, что проблема возникает только с этим советником.

*** Из поля Comments в журнале транзакций сервера я могу сказать, что один и тот же советник (Callibre в данном примере) открывал сделки, а затем сразу же закрывал их.

Проблема исчезла на 4 месяца, и я решил, что дело в советнике.

В последние пару недель проблема появилась снова, причем на 4 разных советниках, которые работали нормально в течение нескольких месяцев, и на 2 разных брокерах.

В эти выходные я удалю все копии MT4 и переустановлю их с нуля. Я также очищу папку Experts и удостоверюсь, что у меня установлена последняя копия всего.

Любые другие предложения приветствуются.
 
 
peterc005:
Из поля Comments в журнале транзакций сервера я могу сказать, что один и тот же советник (Callibre в данном примере) открывал сделки, а затем сразу же закрывал их.

Питер: Как я уже объяснил, поле комментариев показывает, кто открыл сделку, но не показывает, кто ее закрыл. Это может вводить в заблуждение и быть контринтуитивным, и именно поэтому вы ищете не в том месте. Поле комментариев устанавливается 8-м параметром в функции OrderSend(). Это происходит в момент открытия заказа. После этого момента поле комментария фиксируется и больше не может быть изменено. OrderClose() не позволяет указать какую-либо текстовую информацию. Независимо от того, как и кем закрывается ордер, он либо сохраняет свой комментарий, либо к нему добавляется [sl] или [tp] или несколько других строк для указания стоплосса или тейкпрофита, частичного закрытия или маржинколла и т.д.

Ордер, закрытый с помощью OrderClose(), сохранит свой первоначальный комментарий. Единственное место, где можно узнать, кто вызвал OrderClose() - это поиск его в журналах экспертов всех терминалов, которые работали в это время.

Пожалуйста, приложите 4 журнала экспертов всех 4 терминалов, которые можно найти в папке experts/logs/ на каждой машине, где у вас запущен терминал (это журнал вкладки "эксперты" каждого из этих терминалов), чтобы узнать, кто закрыл сделки. Это не калибровочный советник.

 

Привет, 7bit, я скоро загружу журналы.

Одна вещь, которую я заметил в логах за последние дни, это большое количество таких ошибок:

00:11:16 Обработчик памяти: невозможно выделить 160308896 байт памяти

00:11:16 HistoryBase: недостаточно памяти для 'EURGBP1' в AddTick().

Поиск в Google показал, что это происходит из-за слишком большого количества баров на графике. У меня был установлен высокий параметр Max Bars, чтобы я мог загрузить больше истории, но с тех пор я уменьшил этот параметр.

Я задаюсь вопросом, может ли эта ошибка испортить сигналы индикатора, вызывая проблемы для советников?

Сейчас это моя любимая теория!!!

 
peterc005:

00:11:16 Обработчик памяти: невозможно выделить 160308896 байт памяти

00:11:16 HistoryBase: недостаточно памяти для 'EURGBP1' в AddTick()


Я не думаю, что это имеет значение. И это также не говорит о том, кто на самом деле выполнил вызов OrderClose().
 
7bit:
Я не думаю, что это имеет отношение к делу. И это также не говорит о том, кто на самом деле выполнил вызов OrderClose().

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

Ниже приведены выдержки из двух папок Logs, которые являются примером того, что происходит.

Этот советник - FAP Turbo LT, который я запускаю уже давно и который всегда вел себя хорошо.

Папка Logs показывает, что делает MT4, то есть открывает и затем закрывает сделку, в данном случае сделку № 2662451.

Странно то, что в журнале Experts сделка открывается, затем модифицируется для установки SL + TP, но нет записи, показывающей, что она закрылась.

Я просмотрел другие записи в журнале экспертов, когда FAP Turbo работает нормально, и этот советник определенно генерирует запись о закрытии, но не в этом случае.

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

Папка MT4\Logs:

17:28:49 '103028': ордер был открыт : #2662451 buy 0.20 EURUSDFXF at 1.2909 sl: 0.0000 tp: 0.0000

17:28:49 '103028': изменить ордер #2662451 buy 0.20 EURUSDFXF at 1.2909 sl: 0.0000 tp: 0.0000 -> sl: 1.2407 tp: 1.2929

17:29:02 '103028': закрытие ордера #2662451 buy 0.20 EURUSDFXF at 1.2909 sl: 1.2407 tp: 1.2929 по цене 1.2906

17:29:02 '103028': запрос был принят сервером


MT4\Experts\Logs folder:

17:28:48 FapTurbo50 EURUSDFXF,M5: open #2662451 buy 0.20 EURUSDFXF at 1.2909 ok

17:28:49 FapTurbo50 EURUSDFXF,M5: modify #2662451 buy 0.20 EURUSDFXF at 1.2909 sl: 1.2407 tp: 1.2929 ok

Причина обращения: