Предупреждение: терминал MT4 дублирует ордера, отправленные экспертами

 

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

Я наблюдал это по крайней мере 3 раза с MT4 build 500. Первые два раза на демо-счетах, а последний, вчера, на реальном счете. Проблема возникала:

1)На разных установках MT4.

2)На разных компьютерах.

3)У разных брокеров.

4)С разными советниками.

Помимо всего вышеперечисленного, факт, который говорит мне о том, что это проблема с терминалом, очень легко проверить. Когда происходит дублирование ордера:

1)Это происходит сразу после законного ордера, с точно таким же размером лота, символом и комментарием.

2)Первая операция, как обычно, отображается на вкладке экспертов, а также на вкладке журнала. Однако дубликат отображается в журнале, но НЕ отображается на вкладке экспертов. Это является надежным доказательством того, что дубликат НЕ был отправлен экспертом.

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

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

 
Ricardo1:

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


Решением было бы установить фильтр на отправку ордеров, чтобы проверить, открыты ли у вас ордера на рынке или нет. Или работать на основе баров. Извините, но я новичок и могу подумать, в чем проблема, но не могу выложить код :).

Надеюсь, это поможет.

 
Ricardo1: Я призываю Metaquotes устранить эту проблему как можно скорее.
Почему вы думаете, что проблема в MT4, а не в вашем советнике? Опубликуйте свой код.
 
Ricardo1:

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

Я наблюдал это по крайней мере 3 раза с MT4 build 500. Первые два раза на демо-счетах, а последний, вчера, на реальном счете. Проблема возникала:

1)На разных установках MT4.

2)На разных компьютерах.

3)У разных брокеров.

4)С разными советниками.

Вам нужно выйти из другой копии вашего советника, которая работает на другом графике ... если это не так, пожалуйста, докажите это, разместив лог-файл эксперта, показывающий запуск эксперта и дублирующие ордера. Эта ошибка уже была допущена ранее ....

 

Ребята, вы меня несколько удивляете. Вы полагаете, что я, должно быть, делаю что-то не так, что в MT4 не может быть ошибок. Здесь я отвечу на ваши ответы.


xavilin:


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


WHRoeder:

Я не могу опубликовать свой код, но, как я уже сказал, проблема возникла на 3 разных советниках. Конечно, это никогда не происходит при бэктестинге. Как я уже говорил, *это происходит очень редко*. На самом деле, если суммировать время, в течение которого работает мой советник (тот, который я использовал вчера), суммируя все счета, то он работает уже несколько лет. А вчера это произошло *впервые*. Как вы думаете, может ли это быть ошибкой в моем коде?


RaptorUK:

Вы действительно думаете, что я настолько наивен, чтобы иметь более одного советника на счете, а затем сообщить об этом как о проблеме?


Как я уже говорил, главным доказательством является то, что на вкладке журнала есть порядок, а на вкладке экспертов *нет*. Буквально невозможно, чтобы советник отправлял ордер, а вкладка экспертов не сообщала об этом!

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

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

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

 
Ricardo1: Вы, ребята, меня несколько удивляете. Вы предполагаете, что я, должно быть, делаю что-то не так, что в MT4 не может быть ошибок. Здесь я отвечу на ваши ответы.

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

Не говоря уже о том, что из миллионов людей, использующих это программное обеспечение для размещения бог знает скольких миллионов сделок ежедневно, вы единственный, с кем это происходит. Поверьте мне, когда речь идет о деньгах, если бы это происходило со всеми (редко), мы бы все на этом форуме все еще часто слышали об этом. Многие люди приходят сюда, плача о багах, и в 99% случаев проблема кроется в их кодах. Как только я перестал перекладывать вину на других, я смог решить многие свои проблемы с кодом быстрее.

Ps: RaptorUK не представляет MetaQuotes, он социальный модератор и его комментарии имеют примерно такой же вес, как и ваши/мои. Почему это не может быть проблемой Брокера? Пока другие не начнут сообщать об этой вашей ошибке, бремя доказательства лежит на вас.

 
Ricardo1:


RaptorUK:

Вы действительно думаете, что я настолько наивен, что имею более одного эксперта на счете, а затем сообщаю об этом как о проблеме?


Как я уже говорил, главным доказательством является то, что на вкладке журнала есть ордер, а на вкладке экспертов *нет*. Буквально невозможно, чтобы советник отправлял ордер, а вкладка экспертов не сообщала об этом!

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

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

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


Как я уже сказал ... это было сделано раньше (я искал пост и мои ответы, но не смог их найти), и ОП также предположил, что это проблема MT4 ....

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

Посмотрите в истории ордеров, есть ли там ордер? Напишите небольшой скрипт для опроса ордера в пуле истории, чтобы узнать, есть ли у него магический номер, использует ли ваш советник магический номер? есть вещи, которые вы можете сделать для исследования. Вы хотите знать, вызвана ли эта проблема вами или советниками, которые вы запускали, вы и все остальные хотели бы знать, вызвана ли она MT4. Это в ваших руках, у вас есть информация, у нас нет...

 

ubzen и RaptorUK: Большое спасибо за ваши ответы.

ubzen, вы правы, когда говорите: "Не говоря уже о миллионах людей, использующих это программное обеспечение для размещения бог знает скольких миллионов сделок ежедневно; вы - единственный человек, с которым это происходит". Я не могу ответить на это возражение. Я управляю несколькими советниками на нескольких счетах, и я видел, как это происходило 3 раза с билдом 500, на двух разных брокерских платформах. Однако, поскольку я сам видел доказательства, я не сомневаюсь в этом, даже если сотни или тысячи других людей еще не высказались.

Тем не менее, когда вы говорите: "Когда кто-то утверждает, что что-то является ошибкой, это означает, что это воспроизводимо", я должен сказать, что вы ошибаетесь. Самые сложные ошибки - это именно те, которые не могут быть воспроизведены пользователем. Они случаются редко, и, как известно гигантам программного обеспечения, их отслеживание может занять много времени и усилий. Они случаются редко, потому что требуют определенного набора условий, которые не всегда подвластны пользователю. Это может подтвердить любой, кто активно использует что-то вроде Microsoft Office.

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


Журнал экспертов за 2013.06.11:

22:32:05 Expert Advisor 1 EURCHF,M15: Запрашиваемая цена открытия для ордера BUY: 1.2307

22:32:07 Expert Advisor 1 EURCHF,M15: open #20212520 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320 ok

Журнал за 2013.06.11:

05:14:12 '000000': login

05:14:30 '000000': вход в систему

05:14:31 '000000': предыдущая успешная авторизация выполнена с 201.141.75.152

08:10:12 '000000': вход в систему

08:10:17 '000000': login

08:10:19 '000000': предыдущая успешная авторизация выполнена с 201.141.75.152

20:33:35 '000000': login

20:33:43 '000000': DataCenter connecting failed [2]

20:33:44 '000000': предыдущая успешная авторизация выполнена с 201.141.75.152

22:32:06 '000000': мгновенный ордер buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320

22:32:07 '000000': запрос был принят сервером

22:32:07 '000000': запрос в обработке

22:32:07 '000000': ордер был открыт : #20212520 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320

22:32:08 '000000': мгновенный ордер buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320

22:32:08 '000000': запрос был принят сервером

22:32:08 '000000': запрос в обработке

22:32:10 '000000': ордер был открыт : #20212521 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320

23:07:26 '000000': включена торговля в один клик

23:07:31 '000000': закрытие ордера #20212521 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320 по цене 1.2291

23:07:32 '000000': запрос был принят сервером

23:07:32 '000000': запрос в обработке

23:07:32 '000000': ордер #20212521 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320 закрыт по цене 1.2291


Как видите, ордер 20212520 был инициирован экспертом. Однако ордер 20212521 НЕ был инициирован. Этот фиктивный ордер был закрыт вручную (последние 5 строк файла журнала соответствуют ручным операциям).

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

 

Ricardo1:

...

Как вы можете видеть, заказ 20212520 был инициирован экспертом. Однако заказ 20212521 НЕ был. Этот фиктивный заказ был закрыт вручную (последние 5 строк файла журнала соответствуют ручным операциям).

Я здесь излишен, но повторюсь: Поскольку о фиктивном ордере 20212521 не сообщается в журнале экспертов, он не был инициирован ни одним экспертом, поэтому код эксперта не имеет значения для этой цели.

Использует ли ваш эксперт магическое число?

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

#20212521, id 12345

Если нет магического числа, значит, поле id отсутствует.

 
Ricardo1:


22:32:06 '000000': мгновенный ордер buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320

22:32:07 '000000': запрос был принят сервером
22:32:07 '000000': запрос в процессе выполнения
22:32:07 '000000': ордер был открыт : #20212520 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320

22:32:08 '000000': мгновенный ордер buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320
22:32:08 '000000': запрос был принят сервером
22:32:08 '000000': запрос в обработке
22:32:10 '000000': ордер был открыт : #20212521 buy 0.01 EURCHF at 1.2307 sl: 1.2232 tp: 1.2320


Как видите, ордер 20212520 был инициирован экспертом. Однако ордер 20212521 НЕ был.

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

Поместите оператор печати до и после OrderSend и докажите, что вы вызываете его дважды.

 
angevoyageur:

Использует ли ваш советник магическое число?

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

#20212521, id 12345

Если нет магического числа, значит, поле id отсутствует.



В фиктивном ордере все то же самое, что и в оригинальном ордере, включая комментарий и магический номер. Однако советник не отправлял его; как я уже сказал, журнал экспертов доказывает это.