Сразу 2 проблемы в 2-х терминалах - страница 3

 

У тебя su и sd считаются от цены открытия ордера(которая не меняется), попытайся их считать от текущей цены, используй Bid или Ask.

 
Vinin:

У тебя su и sd считаются от цены открытия ордера(которая не меняется), попытайся их считать от текущей цены, используй Bid или Ask.



Они так и должны считаться, а вот ордер ставить должен стоп-лосс только один раз, вместо этого ощибка ОрдерМодифи 1 !!!!
 
Тогда проверяй OrderStopLoss( ) , вернет ошибку - устанавливай. Ошибки нет, ничего не делать.
 
А почему цена равна 0?
 
Если ноль, значит не установлена. Поменяем условие. Тогда проверяй OrderStopLoss( ) , вернет 0 - устанавливай. Больше 0, ничего не делать.
 
Как это не установлена?
 
Vinin:
Если ноль, значит не установлена. Поменяем условие.
Тогда проверяй OrderStopLoss( ) , вернет 0 - устанавливай. Больше 0, ничего не делать.

Он у меня полюбому сразу больше нуля! Это ошибка терминала???
 
А ты в OrderSend() ставишь StopLoss или нет? Если ставишь, то будет возвращаться поставленное значение.
 
Vinin:
А ты в OrderSend() ставишь StopLoss или нет?
Если ставишь, то будет возвращаться поставленное значение.
Да, но ставлю другой стоп-лосс и ордер  модифи еррор! Почему!!! Какого условия не хватает???
 
Этот код должен работать только когда стоп не равен ни одному из значений!!! А он выдает ордер модифи еррор! В чем причина???
         if((OrderStopLoss()!=su) && (OrderStopLoss()!=sd))
         {
            if((OrderType()==0)
             && (PP>=Point*ProfitPoints)
              && (OrderStopLoss()<OrderOpenPrice()))
            {
               OrderModify(OrderTicket(), 0, su, 0, 0, 0);
            }
            if((OrderType()==1)
             && (PP>=Point*ProfitPoints)
              && (OrderStopLoss()>OrderOpenPrice()))
            {
               OrderModify(OrderTicket(), 0, sd, 0, 0, 0);
            }
         }