Ошибки, баги, вопросы - страница 2186
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
По MT4 вопрос.
Когда-то сталкивался с этим и вот снова на тесте HFT споткнулся с этим багом.
Выставляется BuyLimit, цена пробивает его вниз и далеко внизу остается на протяжении многих минут. При этом BuyLimit горит желтым, но "не исполняется".
Попытки его модификации выдают
Когда увидел, то вспомнил эту давнюю ситуацию. Рецепт тогда и, как оказалось, сейчас всегда один - переконнект. После коннекта оказывается, что 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 мне в сервисдеске написали, что им удалось у себя воспроизвести эту ситуацию и, что они занимаются решением проблемы. И с тех пор тишина...
не загружается продукт из маркета, что делать?
Попробуйте еще раз.
Это из вот этой же оперы, по ходу:
Здравствуйте! В МТ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 сложно говорить, а про четверку - тем более.
Видимо, разработчики не сочли данный баг критическим. Считаю его недопустимым. Просто с лимитными ордерами почти никто не работает, да еще и внутри спреда.
ЗЫ В своей заявке в СД передайте привет от меня. Возможно, банально забыли.
почему при сохранении отчета торговли пишет Бэктест?
Это отчет с вкладки "Бэктест" в тестере стратегий, так?
Это отчет с вкладки "Бэктест" в тестере стратегий, так?
Это просто скрытый способ прорекламировать свой отчет.
Подскажите плз, что за ошибка?
(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)
Я уже задрался с оптимизацией. Она то соглашается в локальной сети проходить, то нет!
Подскажите плз, что за ошибка?
(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.
Подскажите плз, что за ошибка?
(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)
Я уже задрался с оптимизацией. Она то соглашается в локальной сети проходить, то нет!
Выделенное - корень Вашей ошибки.
Перед оптимизацией нужно скомпилировать файл.
Это отчет с вкладки "Бэктест" в тестере стратегий, так?
нет, это с режима Инструменты, реальная торговля, хотел показать результат, а там Бэктест написано)
с Тестера дополнительные поля в отчете еще
Это просто скрытый способ прорекламировать свой отчет.
ну хоть не пипсовик)