Вот мой трейлинг стоп, подскажите почему он не срабатывает? (Вопрос новичка)

 

Мой трейлинг

//+------------------------------------------------------------------+  
//                   Close by profit (+)
//+------------------------------------------------------------------+      
        if(OrderProfit()>=1) 
         {         
          if(OrderProfit()<0.5) 
            {
             if (OrderType() == OP_BUY) ld_Price = Bid;
             else if (OrderType() == OP_SELL) ld_Price = Ask;
             if (OrderClose (OrderTicket(), OrderLots(), ld_Price, 7, Blue)) continue;
            }   
          if(OrderProfit()>=2)  
            {
            if(OrderProfit()<1.5) 
               {
                if (OrderType() == OP_BUY) ld_Price = Bid;
                else if (OrderType() == OP_SELL) ld_Price = Ask;
                if (OrderClose (OrderTicket(), OrderLots(), ld_Price, 7, Blue)) continue;
                }   
            if(OrderProfit()>=3) 
               {
               if(OrderProfit()<2.5) 
                  {
                   if (OrderType() == OP_BUY) ld_Price = Bid;
                   else if (OrderType() == OP_SELL) ld_Price = Ask;
                   if (OrderClose (OrderTicket(), OrderLots(), ld_Price, 7, Blue)) continue;
                  } 
               if(OrderProfit()>=4) 
                  {
                   if(OrderProfit()<3.5)   
                     {
                      if (OrderType() == OP_BUY) ld_Price = Bid;
                      else if (OrderType() == OP_SELL) ld_Price = Ask;
                      if (OrderClose (OrderTicket(), OrderLots(), ld_Price, 7, Blue)) continue;
                     } 
                   if(OrderProfit()>=5) 
                     {
                      if(OrderProfit()<4.5)   
                        {
                         if (OrderType() == OP_BUY) ld_Price = Bid;
                         else if (OrderType() == OP_SELL) ld_Price = Ask;
                         if (OrderClose (OrderTicket(), OrderLots(), ld_Price, 7, Blue)) continue;
                        } 
                   if(OrderProfit()>=6) 
                     {
                      if (OrderType() == OP_BUY) ld_Price = Bid;
                      else if (OrderType() == OP_SELL) ld_Price = Ask;
                      if (OrderClose (OrderTicket(), OrderLots(), ld_Price, 7, Blue)) continue;
                     }
                     
                     }
                     }
                     }
                     }
        
        }
//+------------------------------------------------------------------+ 
 
Точнее, всегда закрывает примерно 6 пунктов...
 
потому что любое другое условие не может сбыться как OrderProfit()может быть больше или равно 3 и при этом одновременно быть меньше чем 2.5 ?
 
Не одновременно а поэтапно.
 
Если цена прошла до +3 и не вернулась на 2.5 и так далее...
 
Выкиньте свой трейлинг и постарайтесь подружиться с головой
 
alehandro:
Не одновременно а поэтапно.

У вас одновременно, что бы поэтапно нужно сначала запомнить, потом ждать, а потом сравнить. Но лучше выкинуть, можно не красить.
 

Сравнивать через OrderProfit() ?

Подскажите как построить трейлинг, что бы он двигался по пол пипса (для скальпинга) .

 
вам надо запоминать текущий профит в глобальной переменной, и сравнивать с предыдущим его значением (из этой же переменной), если он уменьшился на пороговое значение - закрывать ордер.
 
alehandro:

Сравнивать через OrderProfit() ?

Подскажите как построить трейлинг, что бы он двигался по пол пипса (для скальпинга) .

У моего трала оптимизацией определён шаг в 40 пипс. Зачем же беспокоить сервер каждые 1/2 пипса. Вам же запретят пользоваться советником!
 
borilunad:
У моего трала оптимизацией определён шаг в 40 пипс. Зачем же беспокоить сервер каждые 1/2 пипса. Вам же запретят пользоваться советником!

Это трал для скальпинга. Если я буду сохронять и сравнивать данные, почему это должно влиять на сервер?
Причина обращения: