Форум трейдеров » Торговые роботы, советники, индикаторы » Кто нибудь может помочь с треллинг стопом?
+ Подписаться
  1. 4
    Комментарии
    1
    Темы
    4
    Репутация Pro
     
    Новичок

    2 Медалей

    Кто нибудь может помочь с треллинг стопом?

    Уважаемые, пожалуйста помогите с куском проги на треллинг стоп, т.к. мой не фиксирует стоп, а передвигает его в обратную сторону. Ниже мой кусок кода. Подскажите где ошибка или дайте другой.
    if (OrderType() == OP_BUY)
    {
    if(Bid - OrderOpenPrice() > Point * tm)
    {
    OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * ts, OrderTakeProfit(), 0, Blue);
    }
    }

    else
    {
    if( OrderOpenPrice() - Ask > Point * tm)
    {
    OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * ts, OrderTakeProfit(), 0,Red);
    }

    }
    Недоступно! Pro 0
    Поделиться
    Просмотров: 3,369
  2. 9
    Комментарии
    1
    Темы
    9
    Репутация Pro
     
    Новичок

    2 Медалей
    Пиши так!
    Добавь в начало советника:extern string t9=" Тралить в убытке";
    extern bool traling_ybitok=true;
    extern string t10="Трал";
    extern int TrailingStop = 50;
    Вызов функии: Trailingstoplossi();

    Сама функция:void Trailingstoplossi ()
    {
    int cnt, total2;
    total2=OrdersTotal();
    for(cnt=0;cnt<total2;cnt++)
    {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if( OrderSymbol()==Symbol()&& OrderMagicNumber()==MAGIC)
    {
    if(OrderType()==OP_BUY)
    {
    if(TrailingStop>0)
    {
    if((Bid-OrderOpenPrice()>Point*TrailingStop)||traling_ybit ok==true)
    {
    if(OrderStopLoss()<Bid-Point*TrailingStop )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Gre en);
    return(0);
    }
    }
    }
    }
    else
    {
    if(TrailingStop>0)
    {
    if((OrderOpenPrice()-Ask)>(Point*TrailingStop) ||traling_ybitok==true)
    {
    if((OrderStopLoss()>(Ask+Point*TrailingStop)) )
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+Point*TrailingStop,Digits),OrderTakeP rofit(),0,Red);
    return(0);
    }
    }
    }
    }
    }
    }
    return(0);
    }
  3. 4
    Комментарии
    1
    Темы
    4
    Репутация Pro
     
    Новичок

    2 Медалей
    Большое спасибо!
    Работает отлично

Вверх
РегистрацияX

чтобы писать, читать, комментировать