Навигация по сайту
Реклама
Популярные статьи

Новости
{links1}
В Москве убили известного шансонье

Уголовное дело об убийстве возбуждено после обнаружения тела мужчины с ножевыми ранениями на северо-востоке Москвы, сообщила РИА Новости старший помощник руководителя главка СК России по Москве Юлия ...

Вексельберг и Блаватник покупают 6% «Русала» у Онэксима

Компания Zonoville Investments Limited — консорциум, возглавляемый группой «Ренова» Виктора Вексельберга и Access Industries Леонарда Блаватника,— договорилась о покупке 6% акций «Русала» у ОНЭКСИМа ...

США собрались ввести пошлины на сталь и алюминий из России и Китая

В отношении поставщиков алюминия предлагается применить три возможных сценария: ввести пошлину в 7,7% на весь импорт из всех стран; или пошлину в 23,6% для конкретных стран, включая Китай, Россию и ...


{links2}
Счетчик

» » OrderModify() - изменение параметров отложенных ордеров и открытых позиций Гид по интернет трейдингу форекс
Рекламный блок

OrderModify() - изменение параметров отложенных ордеров и открытых позиций Гид по интернет трейдингу форекс Форекс

В прошлых выпусках я рассмотрел очень полезную функцию - OrderSend(). А в этом выпуске я расскажу о функции OrderModify().

bool OrderModify(int ticket, double price, double stoploss, double takeprofit, 
datetime expiration, color arrow_color=CLR_NONE)

Эта функция позволяет изменять параметры отложенных ордеров и открытых позиций. В случае успеха она возвращает true, а в случае неудачи - false. Код ошибки можно будет получить с помощью функции GetLastError().

Параметры функции:

  • ticket - тикер отложенного ордера или открытой позиции;
  • price - новый уровень отложенного ордера (для открытых позиций не может быть изменен);
  • stoploss - новый уровень Stop Loss;
  • takeprofit - новый уровень Take Profit;
  • expiration - новые дата и время истечения отложенного ордера (если к этой дате и времени отложенный ордер не сработает, то он будет удален - см. выпуск "OrderExpiration() - дата истечения отложенного ордера");
  • arrow_color - цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике.

В случае неправильных параметров функция возвращает следующие коды ошибок:

  • 1 (ERR_NO_RESULT) - если ни один из параметров не был изменен;
  • 147 (ERR_TRADE_EXPIRATION_DENIED) - если в настройках торгового сервера запрещено выставлять дату эксперации ордера. В этом случае параметр expiration всегда должен быть равен нулю).

В качестве практического примера применения этой функции рассмотрим установку и управление трейлинг стопом.

Напомню, что Trailing Stop (трейлинг стоп) – это алгоритм управления уровнем Stop Loss ордера. После выставления трейлинг-стопа (например, на Х пипсов) происходит следующее:

  • MetaTrader не предпринимает никаких действий до того момента, пока по открытой позиции не образуется прибыль в Х пипсов. После этого MetaTrader выставляет Stop Loss ордер на расстоянии Х пипсов от текущей цены (в данном случае - на уровне безубыточности).
  • После выполнения первого шага MetaTrader посылает команду на изменение уровня Stop Loss ордера на расстояние Х пипсов от текущей котировки каждый раз, когда расстояние между ней и старым уровнем ордера превысит Х пипсов. В результате этого Stop Loss ордер "подтягивается" к текущей цене.
Реализуем этот принцип на языке MetaQuotes Language 4. Будем полагать, что открытая позиция уже выбрана и мы точно знаем, что эта позиция открыта по инструменту, к которому прикреплен эксперт. Также предположим, что значение трейлинг стопа в пипсах содержится в переменной TrailingStop.
 
int err;
   if (OrderType() == OP_BUY)
     {
       // позиция на покупку
       if ((Bid-OrderOpenPrice())>=(TrailingStop*Point))
         {
           // выставляем Stop Loss
           if (OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,
                                    OrderTakeProfit(), 0))
             Print("#", OrderTicket(),": trailing stop ", Bid-TrailingStop*Point);
           else
             {
              err = GetLastError();
              Print("#", OrderTicket(),": trailing stop error ", err);
             }
         }
     }
   else
     {
       // позиция на продажу
       if ((OrderOpenPrice()-Ask)>=(TrailingStop*Point))
         {
           // выставляем Stop Loss
           if (OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,
                                    OrderTakeProfit(), 0))
             Print("#", OrderTicket(),": trailing stop ", Ask+TrailingStop*Point);
           else
             {
              err = GetLastError();
              Print("#", OrderTicket(),": trailing stop error ", err);
             }
         }
     }

В этом коде Вам могут быть непонятны несколько функций:

  • Bid - Bid последней котировки по инструменту, к которому прикреплен эксперт;
  • Ask - Ask последней котировки по инструменту, к которому прикреплен советник;
  • Point - размер пункта текущего инструмента в валюте котировки (для EURUSD это 0.0001, для USDJPY- 0.01 и т.д.).
 
 

Ключевые теги: ордера, случае, double,           ,             , функции, пипсов, открытых, отложенного, котировки, expiration, позиция,         , Print, OrderTicket,       , trailing,              , новый, будет
 
Другие новости по теме:

  • OrderOpenPrice() - получение информации о цене открытии позиции или цене от ...
  • Эксперт, торгующий в ночное время: реализация трейлинг стопа Гид по интер ...
  • OrderTicket() - тикер выделенного ордера Гид по интернет трейдингу форекс
  • Руководство пользователя MetaTrader 4: трейлинг стоп Гид по интернет трей ...
  • Руководство пользователя MetaTrader 4: трейлинг стоп - Гид по интернет тр ...
  • Параметры функции OrderSend() - продолжение Гид по интернет трейдингу фор ...
  • Торговля в ночное время Гид по интернет трейдингу форекс
  • OrderLots() - количество лотов в выделенном ордере или позиции Гид по инт ...
  • OrderSend() - открытие позиции или размещение отложенного ордера Гид по и ...
  • OrderDelete() - удаление отложенного ордера Гид по интернет трейдингу фор ...


  • Добавление комментария
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищенной ссылки Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера





    форекс начинающим | форекс обучение | видео форекс | книги форекс | уроки форекс | советники форекс | {links} Copyright © 2010 центовый форекс All Rights Reserved.