Как запрограммировать выставление ордера при брокерском режиме "Исполнение по запросу"

 

Уважаемые форумяне, есть ли способ запрограммировать в эксперте выставление ордера, если брокер установил режим "Исполнение по запросу", то есть в ручном режиме на терминале высвечивается «Сделайте запрос, пожалуйста»? В этом режиме при исполнении программы выдается ошибка 4109 (Торговля не разрешена). Как все-таки программным путем запросить у брокера цену исполнения, и после ее получения выставить ордер по данной цене? Из технической поддержки MetaQuotes Software Corp. пришел ответ, что такой код написать возможно, но подробности посоветовали узнать на этом форуме. Что я и делаю.

Заранее спасибо.

 

Нет никакой разницы в режимах исполнения. В программе по-любому надо писать OrderSend. Клиентский терминал сам обеспечит запрос цен.

Ошибка 4109 означает, что в свойствах эксперта не включена галка "Разрешить советнику торговать"

 
stringo:

Нет никакой разницы в режимах исполнения. В программе по-любому надо писать OrderSend. Клиентский терминал сам обеспечит запрос цен.

Ошибка 4109 означает, что в свойствах эксперта не включена галка "Разрешить советнику торговать"


Спасибо за ответ.
Тем не менее, проблему решить не удалось. Теперь команда OrderSend(…. .) выдает ошибку 133 (Торговля запрещена). Для анализа ситуации вставил функции IsExpertEnabled() и IsTradeAllowed(), обе выдают true "Запуск экспертов разрешен" и “Торговля разрешена”. Кроме того, копия программы успешно работает у другого брокера с настройками «немедленное исполнение». Не дадите ли еще один совет по устранению проблемы?

Спасибо.
 

Для начала почитайте документацию https://docs.mql4.com/ru/trading/errors Ошибка 133 означает, что торговый сервер не разрешает торговать этим инструментом

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

 
stringo:

Ошибка 133 означает, что торговый сервер не разрешает торговать этим инструментом


Не совсем верное определение, т.к. данная ошибка обычно означает только запрет АВТОТОРГОВЛИ. Т.е. любые торговые команды (OrderSend, OrderClose, OrderModify ...)  запрещены
 

Определение верное, но неполное.

Нет не только запрет автоторговли (в этом случае в логах появится надпись "trading by experts is prohibited"), но попытка торговли из-под инвесторского пароля, попытка открыть шорт на инструменте long-only, попытка открыть позицию, когда истёк срок торговли по инструменту, или вообще инструмент неторгуемый

 
Meat:
stringo:

Ошибка 133 означает, что торговый сервер не разрешает торговать этим инструментом


Не совсем верное определение, т.к. данная ошибка обычно означает только запрет АВТОТОРГОВЛИ. Т.е. любые торговые команды (OrderSend, OrderClose, OrderModify ...) запрещены

Спасибо Meat. Все стало понятно. Таким образом, проблема не в чтении документации, так как в ней нет объяснения причин возникновения ошибки 133, а в том, что мнение технической поддержки MetaQuotes Software Corp. и stringo о возможности АВТОТОРГОВЛИ при установке брокером режима «Исполнение по запросу», ошибочно. А жаль!
Кстати, для попытки открыть шорт на инструменте long-only, предусмотрена ошибка 4111. Она и выдается в этом случае.

 
albmar:


Добрый день, а где такой терминал с запросом есть дайте ссылку плиз








Уважаемые форумяне, есть ли
способ запрограммировать в эксперте выставление ордера, если брокер установил
режим "Исполнение по запросу",
то есть в ручном режиме на терминале высвечивается «Сделайте запрос, пожалуйста»
?  В этом режиме при исполнении программы выдается
ошибка 4109 (Торговля не разрешена).
Как все-таки программным
путем запросить у брокера цену исполнения, и после ее получения
выставить ордер по данной цене? Из технической поддержки MetaQuotes Software
Corp. пришел ответ, что такой код написать возможно, но подробности 
посоветовали узнать на этом форуме. Что я и делаю.




Заранее спасибо.


 
Yahoo писал (а): Добрый день, а где такой терминал с запросом есть дайте ссылку плиз
********************************************************************

If you please!
http://www.umis.ru/clients1/trader_promo/contest/contest0710
 

Уважаемые знатоки. Не верится, что в таком прекрасном языке программирования, каким является MetaQuotes Language4, нет возможности программным путем сделать запрос на сервер при установке брокером режима "ИСПОЛНЕНИЕ ПО ЗАПРОСУ". Может быть, все-таки, кто-нибудь знает, как это сделать? А может быть, в MQL5 разработчик расширит функции языка для решения этой проблемы?

 
albmar:

Уважаемые знатоки. Не верится, что в таком прекрасном языке программирования, каким является MetaQuotes Language4, нет возможности программным путем сделать запрос на сервер при установке брокером режима "ИСПОЛНЕНИЕ ПО ЗАПРОСУ". Может быть, все-таки, кто-нибудь знает, как это сделать? А может быть, в MQL5 разработчик расширит функции языка для решения этой проблемы?

ИМХО такой возможности нет и не будет. Если ДЦ не смогут запрещать использование советника, то если советник слишком прибыльный, то он может раззорить ДЦ. А если ДЦ будут раззоряться,
то кто будет покупать такой терминал?
Причина обращения: