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

 
peterc005:


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


Каковы следующие несколько строк в этом журнале? Пожалуйста, все строки, не "отфильтрованные" по тому, что вы считаете важным или нет, просто необработанные записи журнала. Особенно все те, которые имеют одинаковые или почти одинаковые временные метки на всех других терминалах.


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


А как обстоят дела с уровнем свободной маржи, когда это происходит? Он близок к опасно низкому?

 
Все еще окончательно не доказано, но я подозреваю, что проблема заключается в советнике Probability.

Вот причины:

1) Я несколько раз выключал и включал Probability EA на разных счетах, и время, когда Probability EA работал, соответствует времени, когда у меня все эти сделки закрывались неправильно.

2) Я заметил, что FAP Turbo нормально записывает записи открытия и закрытия в журнал экспертов (спасибо за предложение 7bit).

3) Я заметил, что 50 из примерно 50 сделок FAP Turbo, которые закрылись через пару секунд, имели запись Open, но не имели записи Close в журнале экспертов.

4) Я заметил, что советник Probability EA, похоже, не пишет в журнал эксперта.

5) Это означает, что FAP Turbo открывал сделки нормально, записывая запись в журнал эксперта. Затем советник Probability EA закрыл сделку, но ничего не записал в журнал эксперта. Основываясь на сигнале, FAP Turbo затем открывал другую сделку, повторяя цикл много раз.

Доказательств становится все больше, но делать выводы пока рано. Я связался с поставщиком советника Probability EA для получения дополнительной информации. Я также декомпилирую советник, чтобы проверить, нет ли в нем очевидных логических ошибок.

 

Появляются ли красные стрелки (направленные влево треугольники или стрелки) на графике Probability-EA в те моменты, когда закрываются сделки FAP?

Когда вы наводите курсор мыши на эти стрелки на графике ProbabilityEA так, что появляется маленькое желтое окно подсказки, соответствуют ли номера тикетов в этих подсказках ошибочно закрытым сделкам FAP? (например, на графике из скриншота, который вы разместили на форуме FF)

 
peterc005: Я также декомпилирую советник, чтобы увидеть, есть ли в нем очевидные логические ошибки.

Вставьте Print() перед каждым OrderClose() и OrderCloseBy(), скомпилируйте модифицированный код и запустите его вместо исходного.


Посмотрите на наличие (или отсутствие) вызова OrderMagicNumber() рядом с любым OrderClose() или OrderCloseBy() в коде.

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

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

 
7bit:

Вставьте Print() перед каждым OrderClose() и OrderCloseBy(), скомпилируйте модифицированный код и запустите его вместо исходного.


Посмотрите на наличие (или отсутствие) вызова OrderMagicNumber() рядом с любым OrderClose() или OrderCloseBy() в коде.

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

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

Привет, 7bit,

звучит как хорошая идея, я попробую.

С уважением,

Питер

 

Что касается пары предыдущих вопросов:

1) Я не думаю, что использование ECN брокера (конкретно GoMarkets) имеет значение для этой проблемы. У меня была такая же проблема с forex.com. В целом, мне нравится GoMarkets, и я считаю их хорошими.

2) Я не думаю, что это было связано с маржой или капиталом. Причина в том, что "s/o" добавляется в комментарии, когда сделка закрывается из-за недостаточного капитала.

Питер

 

Оказалось, что проблема была в версии 7.1 Probability EA. Вот ответ поставщика:

peterc005,

Эта проблема была исправлена в версии 7.1.1 (в отличие от версии 7.1). Изначально я уменьшал магическое число на 1 при каждом закрытии цикла (что уведомляло советника о закрытии цикла). Это хорошо работает, если работает только советник, но когда люди захотели использовать этот советник в дополнение к другим советникам, я изменил код так, чтобы Magic Number оставался постоянным, а советник использовал другие способы закрытия цикла.

Я отправлю вам копию v7.1.1 и дам знать, если у вас все еще есть проблема.

.

Майкл

Я ценю честность и откровенность продавца, но эта проблема с советником стоила мне около $5,000 и разрушила 3 счета за несколько месяцев.

 

"Я изначально уменьшал магическое число на 1 каждый раз, когда цикл закрывался".

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


Урок должен быть усвоен следующим образом: Не доверяйте советникам с закрытым исходным кодом. Недоступность исходников гарантирует плохое качество кода.

 

Уважаемый Peterc005

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

Попробуйте закрыть все метатрейдеры, а затем откройте TaskManager и проверьте, не запущен ли какой-нибудь экземпляр Terminal.exe, если да, то перезагрузите машину и проблема будет решена.

Вы можете поискать Ghost detector в google, чтобы узнать больше об этой проблеме.