Gens
Gens личный блог
04 апреля 2016, 18:59

Подскажите по MQL5

Как написать  код трейлинг стопа?
попытался сравнивать цену открытия сделки и последнего тика после того как выполнилось условия: последний тик — опен прайс>100 к примеру… закрывает сделку на моменте открытия почему то. если у кого то есть код или знает как его написать.помогите плз.  мне нужно хотя бы что бы стоп в 0 переносился.
9 Комментариев
  • Zinbar
    04 апреля 2016, 19:02
    Ordermodify помоему функция называется… лучше за место тика использовать close… Алгоритм приблизительно следующий — проверить есть ли ордера октрытые (if ordertotal >0 {...), если есть выделить ордер, получить данные по ордеру какие нужны (цена открытия, стоп, профит), проверить актуальность существующих данных, и если нужно что-то менять (стоп, профит или и то и другое), то ордермодифи и все — выход из условия т.е. скобку закрываешь ...}.
  • GrayRat
    04 апреля 2016, 19:16

    int TrailingStop=300;
    bool res;
    if(TrailingStop>0)
    {for(int i=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
    if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
    if(OrderType()==OP_BUY)
    {
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    {
    if(OrderStopLoss()<Bid-Point*TrailingStop)
    {
    res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Blue);
    if(!res) Print(«Ошибка модификации ордера. Код ошибки=»,GetLastError());
    else Print(«Цена Stop Loss ордера успешно модифицирована.»);
    }
    }
    }
    if(OrderType()==OP_SELL)
    {
    if(OrderOpenPrice()-Ask>Point*TrailingStop)
    {
    if(OrderStopLoss()>Ask+Point*TrailingStop)
    {
    res=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+Point*TrailingStop,Digits),OrderTakeProfit(),0,Blue);
    if(!res) Print(«Ошибка модификации ордера. Код ошибки=»,GetLastError());
    else Print(«Цена Stop Loss ордера успешно модифицирована.»);
    }
    }
    }
    }
    }

    • GrayRat
      04 апреля 2016, 19:18
      GrayRat, без гарантий. у меня вроде работало на тесте. до реала не дошло.
  • Egorax
    04 апреля 2016, 19:53
    В MQL5 класс есть. Зачем изобретать велосипед?
      • Egorax
        04 апреля 2016, 20:16
        Gens, все пашет, правильные параметры передавай.
        Посмотри пример на MQL5.com, там есть пример работы с классом.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн