Помогите исправить код трейлинга.

 
Написал код трейлинга, с условием движения в одну сторону. Но в результате трейлинг движется в обе стороны.

Что нужно добавить в код или как его исправить?  Вот сам код:

 double MyPrice=PositionGetDouble(0,POSITION_PRICE_OPEN);

if(PositionSelect(_Symbol))

     {     

     if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

     {

      if(MyPrice<last_tick.last)

      {

      double NewMaxSL =NormalizeDouble(NewMax-SL*_Point,digits);                   //Trailing SL BUY POS

      double NewMaxTP =NormalizeDouble(NewMax+TP*_Point,digits);                   //Trailing TP BUY POS 

if(!mytrade.PositionModify(_Symbol,NewMaxSL*_Point, NewMaxTP*_Point))

         Print( " (",mytrade.ResultRetcodeDescription(),")");


 2.


Есть еще  Класс CTrailingFixedPips, но когда выставляю функцию из этого класса CheckTrailingStopLong 

, выдает ошибку. Как пользоватся этой функцией?

Можете предоставить пример кода? Спасибо

 
В редакторе есть кнопка SRC, оформите код сначала
Причина обращения: