Обратите внимание также на особенность стоимости лотов для покупки и продажи активов
кросс-курсов – они совпадают. Мы прикрепили скрипт в окно финансового инструмента Eur/Usd. В этом случае стандартная
функция Symbol() вернёт строковое значение EURUSD. Может использоваться как определяемый пользователем
идентификатор ордера. В некоторых случаях это – единственная информация, по которой
можно судить о принадлежности ордера к той или иной открывшей его программе.
- Совпадающая же часть ордеров 0.7 лота от цены финансового инструмента
не зависит. - Slippage – максимально допустимое отклонение заявленной цены открытия ордера от рыночной
цены для рыночных ордеров (пунктов). - Существенное отличие состоит в том, что возможно изменить заявленную цену самого
ордера. - Сообщения, полученные при исполнении скрипта
closeby.mq4.
Благодаря своей скорости и гибкости этот язык позволяет создавать очень сложные торговые программы с большим объемом вычислений и детально контролировать практически все параметры экспертов и индикаторов. MetaQuotes Language 4 (MQL4) — встроенный язык программирования торговых стратегий, позволяющий создавать торговых роботов, технические индикаторы, скрипты и библиотеки функций для торговой платформы MetaTrader 4. Все эти инструменты серьезно расширяют возможности трейдеров при торговле на Форексе.
Когда вы запускаете скрипт на графике, вы можете установить некоторые параметры, чтобы ограничить, какие ордера будут изменены. Для OrderModify() мы указываем наш тикет ордера, новую цену ордера, сохраненную в NewPendingPrice, и неизменные значения стоп-лосс и тейк-профит, представленные OrderStopLoss() и OrderTakeProfit(). Мы не используем время истечения для этого ордера, поэтому мы подставляем 0 в качестве параметра истечения срока действия. Первым параметром для OrderModify() является наш номер BuyTicket. Поскольку мы не изменяем цену ордера, мы используем функцию OrderOpenPrice(), чтобы указать, что цена ордера не изменилась.
Свойства клиентского терминала
Соответственно, когда уровни сформируются, у нас появятся ордера Buy Stop и Sell Stop. Мы будем использовать переменную NewPendingPrice для представления новой цены ордера. Функция OrderSend() идентична нашему более раннему примеру, за исключением того, что мы используем значение 0 для параметров стоп-лосса и тейк-профита. Нулевое значение означает, что стоп-лосс или тейк-профит не размещаются вместе с ордером. Возвращает значение чистой прибыли (без учёта свопов и комиссий) для выбранного
ордера.
На сервере также имеется возможность запретить торговать советникам в клиентском
терминале. Это бывает необходимо, если в результате работы программы создаётся
конфликтная ситуация. Во всех случаях, когда создается повышенная нагрузка на брокера, возможен запрет на торговлю с помощью советников.
Удаление отложенных ордерова
В блоке 4-5 для каждого из ордеров, прошедших проверку в блоке 3-4, вычисляется
его объем. Если в процессе вычислений оказывается, что текущий обрабатываемый
ордер имеет больший размер из всех обрабатываемых, то запоминается его тикет. Это значит, что https://capitalprof.space/ на данной стадии вычислений ордер с этим номером является претендентом
на участие в операции встречного закрытия. К моменту окончания последней итерации
цикла for известны номера ордеров с максимальным количеством лотов, открытых в
разных направлениях.
0 Добавляем разные вариации Трайлинг Стопа в Советник
Модифицированный ордер BuyLimit максимально приближен к рыночной цене. Для модификации любых типов ордеров, в том числе отложенных, используется функция OrderModify(). https://lamdatrade.club/ Для модификации любых типов ордеров, в том числе рыночных, используется функция OrderModify(). Отложенные ордера устанавливаются ниже или выше текущей цены.
Советник для удаления отложенных ордеров
Таким образом, значения
некоторых параметров могут быть изменены в любой момент. Последний рассмотренный скрипт не производит анализ ошибок, поэтому пользователь
остаётся в неведении относительно результатов исполнения функции открытия ордера. В простом варианте использования функции GetLastError() можно проанализировать
ошибку и просто сообщить о ней пользователю.
Скрипт closeby.mq4 удобно использовать при ручной торговле, особенно в случаях, когда в окне финансового
инструмента имеется множество разнонаправленных рыночных ордеров. Вне зависимости от того, какое именно решение (исполнить/отклонить торговый приказ,
Событие 6) было принято сервером, информация об этом будет направлена сервером
клиентскому терминалу, приславшему приказ. Схема передачи торговых приказов при проведении торговых операций. Возвращает true при успешном завершении функции или false в случае ошибки. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError(). Bid – меньшая из цен в двухсторонней котировке по финансовому инструменту, предлагаемая
брокером.
Как разместить стоп-лосс и тейк-профит для каждого открытого ордера?
Спред – разница между большей и меньшей ценой в двухсторонней котировке по финансовому
инструменту, выраженная в пунктах. В этом уроке мы написали простенький советник для торговли отложенными ордерами. Научились импортировать данные пользовательского индикатора и попробовали применить все четыре типа отложек в торговле, а также узнали, как их удалять в заданный нами промежуток времени. Если возникли ошибки, то качайте файл с примером в конце этой статьи для сравнения и поиска образовавшейся ошибки.
В случае установки отложенного ордера параметр
не обрабатывается. Далее управление в исполняемой программе будет передано оператору цикла while (блок
6-10). Если текущий ордер не требует модификации, то в конце блока 4-5 осуществляется
выход из цикла while, и модификация этого ордера (в блоке 5-6) не осуществляется.
Для получения информации
о причине отклонения торгового приказа необходимо использовать функцию GetLastError()
(в дальнейшем изложении мы рассмотрим несколько наиболее распространённых ошибок). В блоке 6-7 выполняется проверка наличия найденных рыночных ордеров. Если
в блоке 2-4 не было обнаружено ни одного рыночного ордера (а это в общем случае
вполне возможно), то значение флага Real_Order остаётся равным -1, что означает
отсутствие рыночных ордеров. Если при проверке в блоке 6-7 выявлено отсутствие
рыночных ордеров, то выполнение цикла while прерывается и программа заканчивает
работу. Если же значение переменной Real_Order оказывается равным 0 или 1, то это
значит, что рыночный ордер к закрытию ранее определён и его надо закрыть.
OrderSelect – функция выбирает ордер для дальнейшей работы с ним. Клиентский терминал закончил отображение изменений и передаёт управление программе. Методы просто возвращают результат https://capitalprof.team/ вызова соответствующих методов создания отложенных запросов класса CTradingControl, написанных нами
выше. [in] Цвет стрелок модификации StopLoss и/или TakeProfit на графике.