Читаем Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное полностью

Это может быть немедленное исполнение (Instant Execution), исполнение по запросу (Request Execution), исполнение по рынку (Market Execution), биржевое исполнение (Exchange Execution).

Выяснить тип исполнения ордера можно с помощью свойства SYMBOL_TRADE_EXEMODE функции SymbolInfoInteger.



Для немедленного исполнения (Instant Execution), исполнение рыночного ордера осуществляется по цене, которую вы предлагаете брокеру.

Если брокер не может принять ордер по предложенным ценам, он предложит трейдеру новые цены исполнения, которые будут содержаться в структуре MqlTradeResult.

Для немедленного исполнения (Instant Execution), заполнение структуры MqlTradeRequest для ордера на покупку будет иметь следующий вид.



Здесь с помощью функции SymbolInfoTick в структуру MqlTick получаются текущие цены символа для предложения их брокеру.

Далее для немедленного исполнения (Instant Execution) заполняются обязательные поля структуры MqlTradeRequest action, symbol, volume, price, sl, tp, deviation, type, type_filling.

На практике, максимально приемлемое отклонение от запрашиваемой цены deviation, задаваемое в пунктах, которое принимается брокером, не более 5 пунктов.

При сильном движении рынка, при поступлении ордера брокеру, если цена ушла на большее значение, произойдет так называемое «Перекотирование» (Requote) — брокер вернет цены, по которым может быть исполнен данный ордер.

Функция NormalizeDouble здесь используется для округления цен до количества десятичных знаков после запятой, определяющего точность измерения цены символа текущего графика.



Для ордера на продажу заполнение Instant Execution обязательных полей структуры MqlTradeRequest будет иметь следующий вид.

После заполнения полей структуры MqlTradeRequest рекомендуется проверить ее с помощью функции OrderCheck.



Результаты проверки будут содержаться в структуре MqlTradeCheckResult:

Функция OrderCheck возвращает true в случае успешной проверки структуры MqlTradeRequest, при этом код retcode Код ответа будет равен 0, в противном случае функция вернет false.



После проверки структуры MqlTradeRequest можно отсылать запрос на совершение торговой операции брокеру, используя функцию OrderSend.



Здесь мы получаем последние цены, затем проверяем флаг на покупку и флаг на открытую позицию.

Затем заполняем структуру торгового запроса MqlTradeRequest.

ORDER_FILLING_FOK означает, что ордер может быть исполнен исключительно в указанном объеме.



Далее мы проверяем структуру MqlTradeRequest и отсылаем запрос на совершение торговой операции брокеру, используя функцию OrderSend.



Тоже самое мы делаем для открытия позиции на продажу.

Проверяем флаг на продажу и флаг на открытую позицию.

Затем заполняем структуру торгового запроса MqlTradeRequest.



Далее мы проверяем структуру MqlTradeRequest и отсылаем запрос на совершение торговой операции брокеру, используя функцию OrderSend.

Таким образом, запрос на совершение торговой операции отсылается, если есть сигнал на открытие позиции и при этом открытая позиция еще не существует.

После проверки OrderCheck производится повторная проверка структуры MqlTradeRequest в виде возвращаемого значения функции OrderSend.

Далее выполняется проверка кода результата операции структуры MqlTradeResult.

Исполнение ордера по запросу (Request Execution) я лично не встречал у брокеров.

Вместо немедленного исполнения (Instant Execution) брокер может предложить исполнение ордера по рынку (Market Execution) или биржевое исполнение (Exchange Execution).

В режиме исполнения по рынку (Market Execution) сделка совершается по цене, предложенной брокером, при этом реквоты отсутствуют.

В режиме биржевого исполнения (Exchange Execution) торговые операции якобы выводятся во внешнюю торговую систему и сделки выполняются по текущим рыночным ценам, при этом реквоты также отсутствуют.



При исполнении по рынку (Market Execution) или биржевом исполнении (Exchange Execution) обязательными для заполнения являются поля структуры MqlTradeRequest action, symbol, volume, type, type_filling.



После заполнения структуры MqlTradeRequest мы ее проверяем и посылаем запрос брокеру.

Далее мы формируем новый запрос, в котором устанавливаем значения Stop Loss и Take Profit у открытой позиции, исходя из цен, полученным от брокера.



После заполнения новой структуры MqlTradeRequest мы ее проверяем и посылаем новый запрос брокеру.



Тоже самое делаем при открытии позиции на продажу.

Заполняем структуру MqlTradeRequest.



После заполнения структуры MqlTradeRequest мы ее проверяем и посылаем запрос брокеру.

Далее мы формируем новый запрос, в котором устанавливаем значения Stop Loss и Take Profit у открытой позиции, исходя из цен, полученным от брокера.



После заполнения новой структуры MqlTradeRequest мы ее проверяем и посылаем новый запрос брокеру.

Таким образом, здесь позиция открывается без определения StopLoss и TakeProfit, а затем, в случае успешного выполнения запроса, размещается торговый приказ на модификацию уровней StopLoss и TakeProfit.



Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Компьютер для тех, кому за…
Компьютер для тех, кому за…

В наш век высоких технологий без компьютера не обходится практически ни один человек. Но что делать, если вам уже за…, а компьютер вы так и не освоили? Не стоит отчаиваться! Эта книга была написана специально для тех, кто по каким-то причинам не смог освоить его раньше. Легким и доступным языком в книге изложены основные принципы работы на компьютере. Вы узнаете, как создать документ в текстовом редакторе, выстроить таблицы и диаграммы в экселе, освоите графический редактор, который позволит вам рисовать и редактировать фото и рисунки, научитесь самостоятельно подключать принтер и печать, общаться с родными и друзьями по скайпу и ICQ, узнаете, какие бывают игры, как выбрать игру для себя, и многое-многое другое.Никогда не поздно осваивать что-то новое! А уж тем более — компьютер. Он откроет вам целый мир безграничных возможностей. Не упустите свой шанс узнать что-то новое и интересное — дайте компьютеру прочно войти в вашу жизнь. Ведь пользоваться им так же просто, как и обычным телефоном, только в тысячу раз интереснее!

Оксана Грибова

Зарубежная компьютерная, околокомпьютерная литература / Интернет / Программное обеспечение / Прочая компьютерная литература / Книги по IT
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов

Увы, друг мой, защита твоей информации - или хотя бы четкое понимание того, что это такое и как подобная защита должна строиться - это Твое Личное Дело! Не Cosa Nostra (хотя твои проблемы могут стать и Нашим Делом тоже), а Cosa Roba - Твое Дело!  Я знаю, что ты солидный человек, который привык платить, чтобы за него решали проблемы. Однако есть проблемы, которые за тебя никто не решит, - даже за очень большие деньги. Например, заниматься любовью со своей женой должен ты сам. Но кто тебе сказал, что защита твоей информации - это менее интимное дело, и его можно поручить постороннему?  Первая книга по безопасности для Менеджеров, а не для ботаников-компьютерщиков, информации от широко неизвестного благодаря своей репутации эксперта международного класса. Только благодаря ей Большой Босс сможет понять, каким образом он сможет чувствовать себя хотя бы в относительной безопасности!  Ты должен сам знать, что такое безопасность информации! Ни один нанятый специалист не решит это за тебя!  Если ты нанимаешь студента-компьютерщика за двести баксов в месяц и совершенно серьезно считаешь его специалистом по информационной безопасности, - не понятно, как ты вообще смог стать менеджером подобного уровня.

Алекс Экслер , Карл Шкафиц

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT