Трейлинг позиции

 

Помогите решить вопрос по коду:

totl=OrdersTotal();

if(totl>0){

if(totl==1){

if(OrderSelect(totl-1,SELECT_BY_POS )==true){

tiket=OrderTicket();

SL=OrderStopLoss();

OpOrd=OrderOpenPrice();

if(OrderType()==OP_BUY){

if(SL==0 && Ask>OpOrd+TakeProfit*Point)OrderModify(tiket,OpOrd,Ask-TakeProfit*Point,0,0);

if(SL>=0 && Ask>SL+TakeProfit*Point)OrderModify(tiket,OpOrd,Ask-TakeProfit*Point,0,0);

}

if(OrderType()==OP_SELL){

if(SL==0 && Bid<OpOrd-TakeProfit*Point)OrderModify(tiket,OpOrd,Bid+TakeProfit*Point,0,0);

if(SL>=0 && Bid<SL-TakeProfit*Point)OrderModify(tiket,OpOrd,Bid+TakeProfit*Point,0,0);

}

}

}

Реализация трала позиции.

Для позиции OP_SELL работает, а вот для позиции OP_BUY он работать начинает ниже открытия позиции.

Подскажите в чем проблема?

С уважением ABrej.

 
Посмотри на MACD_Sample там есть функция трала, возьми от туда
 

Все вопрос снят. Когда есть StopLoss то он не как не будет равен 0!!!!!

Место if(SL>=0 && Ask>SL+TakeProfit*Point)OrderModify(tiket,OpOrd,Ask-TakeProfit*Point,0,0);

Надо if(SL>0 && Ask>SL+TakeProfit*Point)OrderModify(tiket,OpOrd,Ask-TakeProfit*Point,0,0);

Вот я ТУПАНУЛ!!! 2 вечера бился, А УТРОМ ВСТАЛ И УВИДЕЛ!!!!

Причина обращения: