My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин. Жанр: Прочая околокомпьтерная литература год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное
Дата добавления:
3 январь 2023
Количество просмотров:
191
Читать онлайн
Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин

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

Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин - описание и краткое содержание, автор Тимур Машнин, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

Разработка индикаторов и советников с использованием языка программирования MQL5 для платформы MetaTrader 5. Второе издание, исправленное и дополненное.

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

Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - читать книгу онлайн бесплатно, автор Тимур Машнин
эксперта можно открывать или закрывать позиции.

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

Сделать это можно, используя свойства SYMBOL_VOLUME_MIN и SYMBOL_VOLUME_MAX.

Открытие и закрытие позиции, изменение объема открытой позиции, изменение значения Stop Loss и Take Profit у открытой позиции, установка, модификация и удаление отложенных ордеров, все это может быть сделано с помощью функции OrderSend.

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

Первый параметр action структуры MqlTradeRequest определяет тип торговой операции функции OrderSend с помощью перечисления ENUM_TRADE_REQUEST_ACTIONS.

Это может быть немедленное совершение сделки на покупку или продажу (TRADE_ACTION_DEAL), изменение значений Stop Loss и Take Profit у открытой позиции (TRADE_ACTION_SLTP), установка отложенного ордера на покупку или продажу (TRADE_ACTION_PENDING), изменение параметров отложенного ордера (TRADE_ACTION_MODIFY), удаление отложенного ордера (TRADE_ACTION_REMOVE).

Если вы хотите совершить немедленную сделку на покупку или продажу, в этом случае тип исполнения ордера для данного финансового инструмента или символа определяется брокером.

Это может быть немедленное исполнение (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.

Для установки отложенного ордера на покупку или продажу (TRADE_ACTION_PENDING), требуется указание 11 полей структуры MqlTradeRequest: action, symbol, volume, price, stoplimit, sl, tp, type, type_filling, type_time, expiration.

При этом поле type может принимать следующие значения.

— ORDER_TYPE_BUY_LIMIT — отложенный ордер на покупку, при этом текущие цены выше цены ордера.

— ORDER_TYPE_SELL_LIMIT — отложенный ордер на продажу, при этом текущие цены ниже цены ордера.

— ORDER_TYPE_BUY_STOP — отложенный ордер на покупку, при этом текущие цены ниже цены ордера.

— ORDER_TYPE_SELL_STOP — отложенный ордер на продажу, при этом


Тимур Машнин читать все книги автора по порядку

Тимур Машнин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


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

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

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.