Trailingstop in percentuale

 

Salve ragazzi, spero non invadere il vostro spazio e tempo, chiedendo un semplice aiuto.

Vorrei inserire un trailingstop in % al gain

Mi spiego meglio es:
STOPLOSE = 10
TSSTART = 5pips
TS1 = 50%

TS2 = 40%

TSEND= 35%

Apro operazione e metto subito SL a 10pips con TS a 5pips (TSSTART), 

successivamente non vorrei che il Trailingstop cammina il rimanendo sempre a 5pips, ma messo il primo (TSSTART) a Breck even (diciamo)

gradirei che operazione camminasse fino a 100pips di gain restando al 50% (TS1) del gain

da 100 a 200 Pips restando al 40% (TS2) del gain

oltre 200 pips restando sempre a 35% (TSEND) del gain.

Giustamente in tutti i casi non deve mai retrocedere altrimenti che TS è ???

Ringraziamento anticipato a chi mi puo dare dei suggerimenti.

Qui sotto vi posto il mio codice attuale


for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol() &&
         OrderMagicNumber()==MagicNumber 
         )  
        {
         if(OrderType()==OP_BUY)  
           {
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)                 
                  {
                  if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);