Хотелось бы уточнить несколько моментов.
1. Из статьи следует, что для первичной проверки запроса предназначена функция OrderCheck(), при этом первичная проверка с помощью функции OrderCheck() осуществляется непосредственно сервером (на стороне сервера), а не в терминале. Правильно?
- www.mql5.com
2. В справочнике указано, что для функции OrderSend() "в случае успешной базовой проверки структур возвращается true". Из этого можно сделать вывод, что true возвращается сразу после проверки запроса на корректность.
Но чуть ниже в примечании добавлено, что "при успешном принятии ордера торговым сервером функция OrderSend() возвращает значение true". Из этого примечания следует, что true возвращается только после принятия ордера сервером.
Между тем, могут возникать ситуации, когда запрос уже проверен на корректность, но ещё не принят брокером. Поэтому прошу уточнить в какой именно момент функция OrderSend() возвращает true - сразу после проверки запроса на корректность или только после принятия ордера сервером?
- www.mql5.com
Хотелось бы уточнить несколько моментов.
1. Из статьи следует, что для первичной проверки запроса предназначена функция OrderCheck(), при этом первичная проверка с помощью функции OrderCheck() осуществляется непосредственно сервером (на стороне сервера), а не в терминале. Правильно?
Насколько я понимаю обработка ведется на стороне клиентского терминала.
Также это подтверждается следующим постом.
3. В статье указано, что "принятые торговым сервером запросы хранятся в виде ордеров, которые могут быть отложенными или немедленного исполнения по рыночным ценам".
Как мы знаем, режим немедленного исполнения рыночных ордеров (Instant Execution) является одним из трёх режимов исполнения рыночных ордеров. Поэтому возникает вопрос, что происходит с рыночными ордерами при режимах исполнения Market Execution и Request Execution? Можно ли обобщающе сказать, что "принятые торговым сервером запросы хранятся в виде ордеров, которые могут быть отложенными или рыночными немедленного исполнения по рыночным ценам"?
Насколько я понимаю обработка ведется на стороне клиентского терминала.
Также это подтверждается следующим постом.
ОК, предлагаю дождаться официального ответа. Спасибо, как всегда, за дополнительную информацию. Я тоже так раньше полагал.
Дополнение. Я понял даже, что могдо меня смутить в этом вопросе. В статье словосочетание "первичная обработка" наделяется ссылкой на функцию OrderCheck(), я и принял эту ссылку за чистую монету, без задней мысли.
Хотелось бы уточнить несколько моментов.
1. Из статьи следует, что для первичной проверки запроса предназначена функция OrderCheck(), при этом первичная проверка с помощью функции OrderCheck() осуществляется непосредственно сервером (на стороне сервера), а не в терминале. Правильно?
В статье же сказано, что первичная проверка осуществляется в терминале. OrderCheck() также работает в терминале, ничего на сервер не отправляется.
В статье сказано: "после отправки запроса он поступает на сервер и проходит первичную проверку".
Также меня смутило то, что в статье словосочетание "первичная обработка" наделяется ссылкой на функцию OrderCheck(), я и принял эту ссылку за чистую монету, без задней мысли.
2.
Между тем, могут возникать ситуации, когда запрос уже проверен на корректность, но ещё не принят брокером. Поэтому прошу уточнить в какой именно момент функция OrderSend() возвращает true - сразу после проверки запроса на корректность или только после принятия ордера сервером?
Корректный запрос принимается сервером и ответ отправляется терминалу в поле retcode структуры MqlTradeResult - https://www.mql5.com/ru/docs/constants/errorswarnings/enum_trade_return_codes
Код |
Идентификатор |
Описание |
10008 |
TRADE_RETCODE_PLACED |
Ордер размещен |
- www.mql5.com
Корректный запрос принимается сервером и ответ отправляется терминалу в поле retcode структуры MqlTradeResult - https://www.mql5.com/ru/docs/constants/errorswarnings/enum_trade_return_codes
Код |
Идентификатор |
Описание |
10008 |
TRADE_RETCODE_PLACED |
Ордер размещен |
Также меня смутило то, что в статье словосочетание "первичная обработка" наделяется ссылкой на функцию OrderCheck(), я и принял эту ссылку за чистую монету, без задней мысли.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Торговые события в MetaTrader 5:
Мониторинг текущего состояния торгового счета подразумевает контроль над открытыми позициями и ордерами. Прежде чем торговый сигнал станет сделкой, он должен быть отправлен из клиентского терминала в виде запроса торговому серверу, где он будет помещен в очередь запросов и ждать своей обработки. Принятие запроса сервером, удаление его по времени истечения или проведение на его основе сделки - все это сопровождается торговыми событиями, о которых сервер сообщает терминалу.
Автор: MetaQuotes