Модификация ордеров

 

Добрый день.

Столкнулся с одной проблемой:

Есть кусок кода отвечающий за сопровождение открытых ордеров:

for(i=OrdersTotal()-1;i>=0;i--)
   {
   if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) //- если ордеров нет стоп
      {
      break;
      }
   if(OrderType()==OP_BUYSTOP) //- если выделенный ордер отложенный байстоп, то закрыть если цена прошла максимальный откат
      {
      if (Low[0]<=OrderOpenPrice()-MPB*Point)
         {
         OrderDelete(OrderTicket());
         }
      }
   if (OrderType()==OP_SELLSTOP) //- если выделенный ордер отложенный селлстоп, то закрыть если цена прошла максимальный откат
      {
      if (High[0]>=OrderOpenPrice()+MPB*Point)
         {
         OrderDelete(OrderTicket());
         }
      }
   if(OrderType()==OP_BUY)
      {
      if(OrderStopLoss()>=OrderOpenPrice())
         {
         if(High[0]<High[1] && Low[0]<Low[1])
            {
            OrderClose(OrderTicket(),OrderLots(), Bid,3);
            }
         }
      else
         {
         if(Bid>=OrderOpenPrice()+BE*Point)
            {
            OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+MinTP*Point, OrderTakeProfit(),0);
            }
         }
    if (OrderType()==OP_SELL)
         {
         if(OrderStopLoss()<=OrderOpenPrice())
            {
            if(High[0]>High[1] && Low[0]>Low[1])
               {
               OrderClose(OrderTicket(), OrderLots(), Ask, 3);
               }
            }
         else
            {
            if(Ask<=OrderOpenPrice()-BE*Point)
               {
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-MinTP*Point,OrderTakeProfit(),0);
               }
            }
         }
      }
   }

Не могу понять почему не работает последняя часть отвечающая за модификацию ордеров Селл при прохождении ценой определенного расстояния... такой же код выше для бай ордеров работает...

Журнал не выдат никаких ошибок.. т.е. он даже не начинает модифицировать... Где я накосячил?

Спасибо.

 
DAHTuCT:

Где я накосячил?

Самый главный "косяк" - это размещение кода - надо по кнопке "SCR".

Вы в приведенном "отлично структурированном" коде видите что-то?

 
abolk:
Самый главный "косяк" - это размещение кода - надо по кнопке "SCR"

Главный косяк исправил. Первый пост комом.
 
DAHTuCT:

Журнал не выдат никаких ошибок.. т.е. он даже не начинает модифицировать... Где я накосячил?

1. расставьте принты

2. нормализуйте цену стоплоса

 
sergeev:
нормализуйте цену стоплоса


изменил на

 OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-MinTP*Point,5),OrderTakeProfit(),0);

не помогло...

 
sergeev:

1. расставьте принты

2. нормализуйте цену стоплоса


что значит расставить принты?
 
DAHTuCT:

что значит расставить принты?
RTFM
 
sergeev:
RTFM

я так понимаю ответить на вопрос что такое принты выше Вашего достоинства? В любом случае спасибо.
 
DAHTuCT:

я так понимаю ответить на вопрос что такое принты выше Вашего достоинства? В любом случае спасибо.
был рад помочь. обращайтесь ещё.
 
sergeev:
был рад помочь. обращайтесь ещё.


Прочитал про принты и понял что основная их задача выводить сообщение в логи при наступлении тех или иных событий.

Так же я написал что в логах никаких ошибок нет. т.е. в модификации ошибки вроде нет. при этом я вижу что наступило событие при котором модификация должна стартануть. Но этого не происходит.

Именно поэтому выложил код, чтобы более профессиональные люди возможно сразу увидели бы очевидную для них ошибку и указали бы на нее.

 
Тема закрыта. Нашел где скобку неправильно поставил.
Причина обращения: