<Глупость удалена мной>
Игорь, а IsTradeAllowed() тут не помогает? Вроде как не торговый запрос...
Если следовать рекомендациям разработчиков МТ4, то при такой ошибке нужно прекратить все попытки торговых операций, т.е. блокировать работу советника. Но если его блокировать, то как же он сможет торговать, когда торговля будет разрешена?
Ну можно ведь посылать например каждую минуту "левый" торговый запрос на сервер (например ордер по нулевой цене). Если возвратится ошибка, отличная от 133 (в данном случае вернётся 129), то значит торговля не запрещена. Этот же способ используется и для диагностики запрета торговли советниками.
Я думаю такой подход не будет особо перегружать сервер. В конце концов можно согласовать с ДЦ допустимую частоту таких запросов. Ведь другого решения у нас нет.
А вообще конечно ДЦ должен отключать торговлю в свойствах инструмента, чтобы MarketInfo(Symbol(),MODE_TRADEALLOWED) выдавало 0. Тогда и проблем никаких не будет
Ситуация.
Торговля фьючерсами. Торговля не круглосуточная. Есть ночные перерывы в торговле. Торговый сервер ДЦ в это время возвращает ошибку 133 (trade is disabled (торговля запрещена)). Если следовать рекомендациям разработчиков МТ4, то при такой ошибке нужно прекратить все попытки торговых операций, т.е. блокировать работу советника. Но если его блокировать, то как же он сможет торговать, когда торговля будет разрешена?
Вопрос.
Почему при ночных паузах в торговле ДЦ не применяют ошибку 132 (Рынок закрыт)? Это ошибка торгового сервера или ДЦ могут по своему усмотрению применять ошибку либо 132 (рынок закрыт), либо 133 (торговля запрещена)? Если так, то не следует ли тогда исправить рекомендации, чтобы ошибки 132 и 133 разработчики советников обрабатывали одинаково?
To KimIV . Ситуация сходная, только на круглосуточном форексе. Специально поставил на малый таймфрейм (M15) полтора десятка советников, чтобы частоту сделок повысить и ошибки доступа отловить, паузы и т.д..
Все прекрасно безошибочно работало в течение около 8 часов, и потом вдруг поперло:
2008.10.16 17:24:31 '1150888': instant order sell 0.10 EURGBP at 0.7796 sl: 0.8081 tp: 0.0000
2008.10.16 17:24:27 '1150888': order was opened : #31320164 sell 0.10 EURGBP at 0.7795 sl: 0.8067 tp: 0.0000
2008.10.16 17:24:27 '1150888': request in process
2008.10.16 17:24:23 '1150888': request was accepted by server
2008.10.16 17:24:20 '1150888': instant order sell 0.10 EURGBP at 0.7795 sl: 0.8067 tp: 0.0000
2008.10.16 17:24:10 '1150888': requote 0.7794 / 0.7796 for open sell 0.10 EURGBP at 0.7796 sl: 0.8081 tp: 0.0000
2008.10.16 17:24:09 '1150888': request was accepted by server
2008.10.16 17:24:08 '1150888': instant order sell 0.10 EURGBP at 0.7796 sl: 0.8081 tp: 0.0000
2008.10.16 17:23:58 '1150888': order sell 0.10 EURGBP opening at 0.7795 sl: 0.8067 tp: 0.0000 failed [Trade is disabled]
2008.10.16 17:23:57 '1150888': instant order sell 0.10 EURGBP at 0.7795 sl: 0.8067 tp: 0.0000
2008.10.16 17:23:48 '1150888': order sell 0.10 EURGBP opening at 0.7796 sl: 0.8068 tp: 0.0000 failed [Trade is disabled]
........
с 17.15
В, принципе, ничего страшного не присходит.... если в журнал не смотреть :).... остальные (по другим инструментам) ордера уже исполнились, да и пауза соблюдена. Единственное, что не исполнено, так это рекомендация разработчиков терминала..... но они же не брокер.
А, из опыта, на реале, - брокер как к этому отнесется?
Я у "этого" недавно, в техподдержку вопрос забросил, молчат пока.
Sleep не вопрос.... вопрос во времени открытия и в причинах такого поведения на спокойном рынке.
На реале у меня не было таких ошибок. В основном реквоты (138) и занятость торгового потока (146). Изредка таймауты (128).
146 и 128 я благополучно, благодаря статьям Komposter'a, отфильтровал....попробуйте. Простите за совет Дилетанта Мастеру :)
А вот с реквотами, видимо, бороться бесполезно, они есть всегда...... они не могут не Есть.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ситуация.
Торговля фьючерсами. Торговля не круглосуточная. Есть ночные перерывы в торговле. Торговый сервер ДЦ в это время возвращает ошибку 133 (trade is disabled (торговля запрещена)). Если следовать рекомендациям разработчиков МТ4, то при такой ошибке нужно прекратить все попытки торговых операций, т.е. блокировать работу советника. Но если его блокировать, то как же он сможет торговать, когда торговля будет разрешена?
Вопрос.
Почему при ночных паузах в торговле ДЦ не применяют ошибку 132 (Рынок закрыт)? Это ошибка торгового сервера или ДЦ могут по своему усмотрению применять ошибку либо 132 (рынок закрыт), либо 133 (торговля запрещена)? Если так, то не следует ли тогда исправить рекомендации, чтобы ошибки 132 и 133 разработчики советников обрабатывали одинаково?