11/04/2022 juan Rubin

Модификация ордеров Торговые операции Учебник по MQL4

удаление отложенных ордеров mql4

При изменении рыночной ситуации может потребоваться удалить отложенный ордер. Для этого необходимо выполнить команду контекстного меню отложенного ордера «Модифицировать или удалить ордер» либо дважды щелкнуть левой кнопкой мыши на строке состояния отложенного ордера в окне «Терминал — Торговля». В нем для удаления ордера необходимо нажать одноименную кнопку.

Рыночный ордер

Если в настройках терминала включена опция «Показывать торговые уровни», на графике также произойдет перемещение уровней отложенного ордера и прикрепленных к нему ордеров Стоп Лосс и Тейк Профит. Если вы хотите рассчитать стоп-лосс для ордера на продажу, используя этот метод, функция iHighest() работает так же. Ссылаясь на пример выше, мы бы использовали MODE_HIGH для параметра массива рядов. Мы будем использовать текущую пару графиков большую часть времени, поэтому мы передадим функцию Symbol() в качестве аргумента.

Задаем правила торговой системы

Параметрустанавливается пользователем, может совпадать или не совпадать со значением этогоже параметра других ордеров. Оставшаяся часть нашего кода содержит блок размещения ордеров на продажу, а также функции PipPoint() и GetSlippage(). Расчет размера лота и код подтверждения со страницы 51 добавляются в начало нашей функции.

Другие ошибки и функция MarketInfo()

удаление отложенных ордеров mql4

Для указания программе ордера, назначенного к модификации(в окне может находиться несколько отложенных ордеров), используем цену прикрепленияскрипта в окно финансового инструмента. Здесь необходимо обратить внимание на небольшую особенность, касающуюся модификациирыночных ордеров. Функция OrderModify() устанавливает новые значения цен одновременнодля обоих стоп-приказов. При этом требование соблюдения минимальной дистанции касаетсятолько того стоп-приказа, новое значение которого отличается от текущего. Еслиже новое значение остаётся таким же, как текущее, то такой стоп-приказ может находитьсяна любом расстоянии от рыночной цены, а соответствующий торговый приказ являетсякорректным. Разница между отложенными ордерами и рыночными ордерами заключается в том, что цена открытия ордера будет отличаться от текущей рыночной цены.

Если же к этому моментуордеров какого-либо типа уже нет, то в блоке 5-6 осуществляется выход из программы. Скрипт опробовался на случайном наборе рыночных ордеров. Алгоритм построения программы для удаления отложенного ордера может быть полностьюаналогичен алгоритму программы закрытия рыночного ордера. Небольшая разница состоитлишь в том, что для удаления отложенного ордера не требуется цена закрытия, поэтомув следующей программе отсутствует блок, в котором обновляются рыночные цены.

Если ордер не был создан из-за ошибки, номер тикета будет равен -1. При изменении ордеров мы должны быть уверены, что значения, форекс от первого лица которые мы передаем функции, действительны. Например, ордер должен быть открытым — мы не можем изменить закрытый ордер.

Это значит, например, что открытие рыночного ордера осуществляется только по текущей рыночной цене и не может быть выполнено по любой другой цене. Порядок расчёта правильных цен для различных торговых операций рассматривается ниже. SellStop – отложенный ордер на продажу активов по финансовому инструменту по цене ниже текущей.Ордер исполнится (преобразуется в рыночный ордер Sell), если цена Bid достигнетили окажется ниже цены, заявленной в ордере. BuyLimit – отложенный ордер на покупку xcritical отзывы активов по финансовому инструменту по цене ниже текущей.Ордер исполнится (преобразуется в рыночный ордер Buy), если цена Ask достигнетили окажется ниже цены, заявленной в ордере. Если же попытка открыть ордер не увенчалась успехом, то управление передаётся вблок 8-9 для анализа ошибок. Здесь рассматривается 2 вида ошибок – те, которыепозволяют ещё надеяться на успешное открытие и те, появление которых однозначноуказывает на необходимость прекратить исполнение программы.

удаление отложенных ордеров mql4

Нужно заметить, что такая конструкция тоже не спасает от возможного конфликта,т.к. Ордер может пропасть (быть закрытым) в процессе обработки его параметров.Однако такое решение оказывается наиболее эффективным в случае, если на момент выбора ордера его уже нет. В теле оператора if выполняется анализ параметроввыбранного ордера. При исполнении, например, функций OrderOpenPrice(), OrderTicket(),OrderType() и других известные форекс дилеры с лицензией цб рф подобных каждая из них будет возвращать значение некоторойхарактеристики ордера, выбранного в результате исполнения функции OrderSelect(). Подобным образом можно проанализировать важность и всех других характеристик ордераи составить приоритетный список критериев, которые должны приниматься во вниманиепри решении задачи закрытия ордеров. Нетрудно также определить и критерии, которыене должны рассматриваться.

  1. Эта программа не приспособлена для модификациизаявленной цены ордера в противоположную сторону от рыночной цены, в ней такжене реализована возможность изменения положения отдельно взятого какого-либо изстоп-приказов.
  2. Мы могли бы также объявить их как статические переменные в функции start().
  3. Этот метод лучше всего выиграет от использования довольно узких стопов или больших значений тейк-профита.

Так как значение экстремума индикатора ZigZag закрепляется за свечей только после ее закрытия, нам нет смысла его дергать каждый тик и делать наш код более медленным. Поэтому проверка значений индикатора, а также открытие ордеров будет происходить только раз в свечу. Скрипт closeby.mq4 удобно использовать при ручной торговле, особенно в случаях, когда в окне финансовогоинструмента имеется множество разнонаправленных рыночных ордеров. Это значит, что первый по порядку ордер (рис. 90) располагается в нулевой позиции,позиция второго ордера имеет значение 1, третьего ордера – значение 2 и т.д. Поэтомув вызове функции OrderSelect() указано значение индекса i-1.

Отражение преобразованных (теперь рыночных) ордеров в окне терминала. О ранее установленных отложенных ордерах (рис. 70) можно сказать следующее. Всего различаются шесть типов ордеров – два рыночных и четыре отложенных. Спред – разница между большей и меньшей ценой в двухсторонней котировке по финансовомуинструменту, выраженная в пунктах. Ask – большая из цен в двухсторонней котировке по финансовому инструменту, предлагаемаяброкером. Bid – меньшая из цен в двухсторонней котировке по финансовому инструменту, предлагаемаяброкером.

Если в качестве параметров функции передать неизмененные значения, то в этом случаебудет сгенерирована ошибка 1 (ERR_NO_RESULT). На некоторых торговых серверах можетбыть установлен запрет на применение срока истечения отложенных ордеров. В этомслучае при попытке задать ненулевое значение в параметре expiration будет сгенерированаошибка 147 (ERR_TRADE_EXPIRATION_DENIED).

Устанавливаетсяв соответствии с ограничениями, принятыми для проведения торговых операций (см.Характеристики ордеров, Требования и ограничения торговых операций). Stoploss – заявленная цена закрытия, определяющая предельный уровень убыточности. Основное различие между следующим кодом и кодом рыночного ордера заключается в том, что у нас нет блока модификации ордера. Нет необходимости размещать стоп-лосс и тейк-профит отдельно для отложенных ордеров. Поэтому мы рассчитаем стоп-лосс и тейк-профит перед размещением ордера с помощью OrderSend(). Мы выбираем ордер, который был только что размещен, используя OrderSelect(), и назначаем цену открытия ордера переменной OpenPrice.

Управление передаётся в блок 9-10, и скрипт заканчиваетработу. Сообщение в блоке 9 не обязательно должно присутствовать. Здесь оно указанотолько для того, чтобы при опробовании скрипта на демо-счёте было легче сориентироваться- когда программа закончила работу, а когда возникла пауза, связанная с задержкамив сети или на сервере. Slippage – максимально допустимое отклонение заявленной цены открытия ордера от рыночнойцены для рыночных ордеров (пунктов). В случае установки отложенного ордера параметрне обрабатывается. Отложенный ордер предполагает наличие заявленной цены открытия ордера, не совпадающейс текущей рыночной ценой.

Так как программно достойно реализовать уровни поддержи и сопротивления не является возможным, а использовать пивоты как-то не особо охота, мы будем торговать по экстремумам индикатора ZigZag. Не скажу, что это прибыльные решение, но для изучения языка пойдет. MODE_HISTORY – ордер выбирается среди закрытых и удаленных ордеров, т.е. Среди тех,которые указаны в Терминале на закладке История счёта. При этом имеет значениеглубина истории, заданная пользователем в терминале для показа закрытых и удаленныхордеров. OrderSelect – функция выбирает ордер для дальнейшей работы с ним.

Contact

CONVERTITE EN UN CASO DE ÉXITO

Cotizaciones

Teléfonos

Dirección

Contact
Clientes
Servicios
Nosotros
Vacantes
Blog
Cotizá
Hablemos
×