• YARIM ALTIN
    13.580,00
    % 0,60
  • AMERIKAN DOLARI
    38,7510
    % 0,36
  • € EURO
    43,7642
    % 0,46
  • £ POUND
    51,6967
    % 0,56
  • ¥ YUAN
    5,3549
    % 0,33
  • РУБ RUBLE
    0,4627
    % -0,92
  • /TL
    %
  • BIST 100
    %

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

Таким образом, мы можем передать неизменный стоп-лосс и зафиксировать цены в функции OrderModify(). Перед изменением ордера мы проверяем, что наша индикаторы скальпинга форекс новая цена отложенного ордера не совпадает с текущей ценой отложенного ордера. Этот метод также обладает тем преимуществом, что позволяет нам размещать точный стоп-лосс и фиксировать цены без влияния проскальзывания.

Установка скрипта Delete All Pending Orders в MT4

Если в течение промежутка времени с момента формирования торгового приказа программой(t 1) до момента принятия решения сервером (t 6) на рынке не произошло каких-либосущественных изменений, торговый приказ, как правило, будет исполнен. По умолчанию метод размещения стоп-лосса и тейк-профита с помощью рыночного ордера заключается в размещении их с помощью функции OrderSend(). В этом случае нам нужно будет разместить стоп-лосс и тейк-профит после размещения ордера с помощью функции OrderModify().

Проверка цен для стоп-лосса и тейк-профита

Торговый приказ может быть сформирован трейдером или программой. Для создания торговыхприказов по инициативе трейдера в составе клиентского терминала имеется панельуправления ордерами (см. описание клиентского терминала). Формирование торговыхприказов в программе происходит в соответствии с алгоритмом в результате исполненияторговых функций. Нигде в других местах (ни в клиентском терминале, ни на сервере)торговые приказы самопроизвольно не формируются.

Формирование торговых приказов

  • Эта программа не приспособлена для модификациизаявленной цены ордера в противоположную сторону от рыночной цены, в ней такжене реализована возможность изменения положения отдельно взятого какого-либо изстоп-приказов.
  • (1-2% для консервативного риска, до 5% для более высокого риска).
  • В случае, если программа сформировала корректный торговый приказ, клиентский терминалотправляет этот приказ на сервер, и тогда следующим событием будет Событие 5 (моментt 5) – получение торгового приказа сервером.
  • Нам необходимо создать две переменные для хранения первого (ближайшего) значения индикатора (zz1) и следующего за ним (zz2), на котором и будет выставляться отложка.
  • Функция IsTradeContextBusy() вернет true, если поток исполнения сделки занят.
  • Единственное – негативное – влияниеподобных тактик может состоять только в отвлечении средств в соответствии с правилами,принятыми в некоторых дилинговых центрах.
  • В MQL такой тип заявки именуется как OP_BUYSTOP и OP_SELLSTOP.

Если через некотороевремя цена изменится, можно повторить попытку удаления ордера, снова запустив скриптна исполнение. Далее управление в исполняемой программе будет передано оператору цикла while (блок6-10). В блоке 6-7 выполняется проверка наличия найденных рыночных ордеров.

Первая система будет называться StopOrder и торговать на пробой уровней ZigZag’a. Соответственно, когда уровни сформируются, у нас появятся ордера Buy Stop и Sell Stop. В MQL такой тип заявки именуется как OP_BUYSTOP и OP_SELLSTOP.

  • Если по некоторому финансовому инструменту имеется два встречных ордера, то их можнозакрыть одновременно, один за счёт другого, с помощью функции OrderCloseBy().При исполнении такой торговой операции экономится один спред.
  • Если функция не завершилась успешно, функция вернет -1 для OrderSend() или false для OrderModify() и OrderClose().
  • Если при проверке в блоке 6-7 выявлено отсутствиерыночных ордеров, то выполнение цикла while прерывается и программа заканчиваетработу.
  • Нам нужно сохранить возвращаемое значение GetLastError() в переменной, потому что после вызова GetLastError() код ошибки будет очищен, а следующий вызов GetLastError() вернет 0.
  • Добавим все функции, которые мы рассмотрели в этом разделе, к простому советнику, который мы создали ранее.

Что такое отложенные ордера?

Вы также можете создавать более сложные процедуры обработки ошибок, которые предоставляют настраиваемые сообщения об ошибках на основе кода ошибки, или выполнять другие действия. Затем мы распечатаем предупреждение на экране пользователя с помощью встроенной функции Alert(). Предупреждение будет содержать код ошибки, описание ошибки и краткое описание операции, которую мы только что попытались выполнить. Таким образом, вы будете точно знать, в каком разделе вашей программы возникла ошибка. Нам нужно сохранить возвращаемое значение GetLastError() в 3 совета как читать книги по саморазвитию с пользой переменной, потому что после вызова GetLastError() код ошибки будет очищен, а следующий вызов GetLastError() вернет 0. Мы объявим глобальную переменную с именем ErrorCode и используем ее для хранения значения GetLastError().

Print() печатает содержимое аргумента функции в журнал экспертов. Журнал экспертов можно просмотреть на вкладке «Эксперты» в окне «Терминал» или на вкладке «Журнал» в окне «Тестер», если вы используете тестер стратегий. AccountEquity() — это MQL-функция, которая возвращает текущий баланс счета. Мы делим EquityPercent на 100, чтобы получить дробное значение (0,02). Затем мы умножаем его на AccountEquity(), чтобы вычислить сумму используемого капитала. 2% от долларов — это 200 долларов, и они будут храниться в переменной RiskAmount.

Используемый ордер зависит от направления торговли, цены входа и текущей цены. Актуален он и для выставления параметров тейк-профита и стоп-лосса для каждой сделки. Удобен в работе «Трейлинг-стоп универсальный», который за несколько секунд выполняет действия с пассивный доход от акций заданными параметрами (тейк-профит, стоп-лосс, перестановка в ноль или трейлинг-стоп). Клиентский терминал осуществляет принятое решение (один из двух вариантов). Мы проверяем возможные ошибки, проверяя вывод таких функций, как OrderSend(), OrderModify() и OrderClose(). Если функция не завершилась успешно, функция вернет -1 для OrderSend() или false для OrderModify() и OrderClose().

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