Ошибки, баги, вопросы - страница 2186

 
fxsaber:

По MT4 вопрос.

Когда-то сталкивался с этим и вот снова на тесте HFT споткнулся с этим багом.

Выставляется BuyLimit, цена пробивает его вниз и далеко внизу остается на протяжении многих минут. При этом BuyLimit горит желтым, но "не исполняется".


Попытки его модификации выдают

2018.04.09 19:15:41.242 '89015117': modification of invalid order #108362456

Когда увидел, то вспомнил эту давнюю ситуацию. Рецепт тогда и, как оказалось, сейчас всегда один - переконнект. После коннекта оказывается, что BuyLimit давно (с момента пересечения) является Buy-позицией.

При этом еще до реконнекта можно было торговать другими ордерами и все с ними было отлично, висел только BuyLimit.


Получается, что в MT4-терминал не приходит уведомление о том, что BuyLimit стал Buy-позицией. И, соответственно, облом, пока не сделаешь релогин.

Надо вспомнить, как эту ситуацию решал. Но на 99% уверен, что в случае ошибок или странностей просто делал принудительный Relogin через WinAPI.

Имеет ли смысл писать в СД об этом, все таки MT4? В пятерке, вроде, такого не замечал.


Это из вот этой же оперы, по ходу:

Здравствуйте! В МТ4, при удалении лимитного ордера расположенного внутри спреда часто возникает ситуация ошибки – зависает удаляемый ордер, которая лечится только перезагрузкой терминала. Насколько я смог разобраться механизм ее возникновения такой:

    1)  Выставляем лимитку  внутри спреда, близко к цене Ask (для ордеров Buy Limit) или Bid (для ордеров Sell Limit) и через некоторое время пробуем её удалить.

    2)  Посылаем команду OrderDelete(), пока эта команда идет на сервер - ордер может уже исполниться на сервере (он же внутри спреда очень близко к цене активации). Получается, что когда команда дойдет до сервера, она будет применена уже к рыночному ордеру – получаем ошибку в терминале и зависший ордер. Ордер в терминале, при этом, остается лимитным  (через функцию OrderType() - также определяется как лимитный), рыночным он отобразится только после перезагрузки терминала. Если продолжать удалять его как лимитный  будем видеть ошибку в логе экспертов под кодом: 3, а в логе журнала терминала:  [Invalid parameters]. Вообще никакие действия с подвешенным таким образом ордером невозможны – в терминале он лимитный, а на сервере  рыночный. Вручную ордер так же не удаляется.

Прилагаю упрощенный советник (только для Buy Limit), для воспроизведения ошибки, и профиль с установленными параллельно 8-ю советниками (так ошибка проявится быстрее, чем, если ее ловить одним советником – хотя она возникает и при одном установленном советнике). Ордер Buy Limit в советнике устанавливается на 1 пятизначный пункт ниже цены Ask и удаляется через 1 секунду после установки. Если установить ордер даже в 5 пунктах ниже Ask и удалять через  любое количество секунд/минут/часов ошибка все равно периодически возникает, просто реже, потому что механизм ее возникновения не меняется.

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


Заявка открыта, Начата: 2017.06.06 12:37, #1766459


В октябре  2017 мне в сервисдеске написали, что им удалось у себя  воспроизвести эту ситуацию и, что они занимаются решением проблемы. И с тех пор тишина...

 
Pavel Kolchin:

не загружается продукт из маркета, что делать?


Попробуйте еще раз.

 
zenz:


Это из вот этой же оперы, по ходу:

Здравствуйте! В МТ4, при удалении лимитного ордера расположенного внутри спреда часто возникает ситуация ошибки – зависает удаляемый ордер, которая лечится только перезагрузкой терминала. Насколько я смог разобраться механизм ее возникновения такой:

    1)  Выставляем лимитку  внутри спреда, близко к цене Ask (для ордеров Buy Limit) или Bid (для ордеров Sell Limit) и через некоторое время пробуем её удалить.

    2)  Посылаем команду OrderDelete(), пока эта команда идет на сервер - ордер может уже исполниться на сервере (он же внутри спреда очень близко к цене активации). Получается, что когда команда дойдет до сервера, она будет применена уже к рыночному ордеру – получаем ошибку в терминале и зависший ордер. Ордер в терминале, при этом, остается лимитным  (через функцию OrderType() - также определяется как лимитный), рыночным он отобразится только после перезагрузки терминала. Если продолжать удалять его как лимитный  будем видеть ошибку в логе экспертов под кодом: 3, а в логе журнала терминала:  [Invalid parameters]. Вообще никакие действия с подвешенным таким образом ордером невозможны – в терминале он лимитный, а на сервере  рыночный. Вручную ордер так же не удаляется.

Прилагаю упрощенный советник (только для Buy Limit), для воспроизведения ошибки, и профиль с установленными параллельно 8-ю советниками (так ошибка проявится быстрее, чем, если ее ловить одним советником – хотя она возникает и при одном установленном советнике). Ордер Buy Limit в советнике устанавливается на 1 пятизначный пункт ниже цены Ask и удаляется через 1 секунду после установки. Если установить ордер даже в 5 пунктах ниже Ask и удалять через  любое количество секунд/минут/часов ошибка все равно периодически возникает, просто реже, потому что механизм ее возникновения не меняется.

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


Заявка открыта, Начата: 2017.06.06 12:37, #1766459


В октябре  2017 мне в сервисдеске написали, что им удалось у себя  воспроизвести эту ситуацию и, что они занимаются решением проблемы. И с тех пор тишина...

Вы большой молодец, что докопались до сути, включая воспроизведение! Действительно, торговое окружение в Терминале до сих пор не синхронизировано с Торговым сервером.

Однако, после мая 2017 года (build 1090) обновлений не было, а воспроизвели проблему в октябре. По срокам даже по MT5 сложно говорить, а про четверку - тем более.

Видимо, разработчики не сочли данный баг критическим. Считаю его недопустимым. Просто с лимитными ордерами почти никто не работает, да еще и внутри спреда.


ЗЫ В своей заявке в СД передайте привет от меня. Возможно, банально забыли.

 
Fast235:

почему при сохранении отчета торговли пишет Бэктест?



Это отчет с вкладки "Бэктест" в тестере стратегий, так?

 
Alexander:

Это отчет с вкладки "Бэктест" в тестере стратегий, так?


Это просто скрытый способ прорекламировать свой отчет. 

 

Подскажите плз, что за ошибка?

(2018.04.10 15:20:13.844    Tester    debug version of "MQL5\Experts\Проба5.ex5" can be optimized on local agents only, no Cloud, no Farm)

Я уже задрался с оптимизацией. Она то соглашается в локальной сети проходить, то нет!

 
AVAAR:

Подскажите плз, что за ошибка?

(2018.04.10 15:20:13.844    Tester    debug version of "MQL5\Experts\Проба5.ex5" can be optimized on local agents only, no Cloud, no Farm)

Я уже задрался с оптимизацией. Она то соглашается в локальной сети проходить, то нет!

Компилируйте по F7, а не F5.

 
AVAAR:

Подскажите плз, что за ошибка?

(2018.04.10 15:20:13.844    Tester    debug version of "MQL5\Experts\Проба5.ex5" can be optimized on local agents only, no Cloud, no Farm)

Я уже задрался с оптимизацией. Она то соглашается в локальной сети проходить, то нет!

Выделенное - корень Вашей ошибки.

Перед оптимизацией нужно скомпилировать файл.

 
Alexander:

Это отчет с вкладки "Бэктест" в тестере стратегий, так?

нет, это с режима Инструменты, реальная торговля, хотел показать результат, а там Бэктест написано)

с Тестера дополнительные поля в отчете еще

 
Vladislav Andruschenko:


Это просто скрытый способ прорекламировать свой отчет. 

ну хоть не пипсовик)

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