Как убрать ошибку 1

 
Эксперт выдает ошибку 1 при выполнении кода модификации как её убрать
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}
 
 
//+----------------------------------------------------------------------------+
//|  Перенос стопа в безубыток                                                 |
//+----------------------------------------------------------------------------+
void MovingInWL() {
  int i, k=OrdersTotal();
 
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symbol()) {
       if(OrderMagicNumber()==TrKorBuy||OrderMagicNumber()==TrKorSell){
        if (OrderType()==OP_BUY) {
          if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*Point) {
            if (Bid-OrderOpenPrice()>LevelProfit*Point) {
              ModifyStopLoss(OrderOpenPrice()+LevelWLoss*Point, clModifyBuy);
            }
          }
        }
        if (OrderType()==OP_SELL) {
          if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*Point) {
            if (OrderOpenPrice()-Ask>LevelProfit*Point) {
              ModifyStopLoss(OrderOpenPrice()-LevelWLoss*Point, clModifySell);
            }}}
          }
           if(OrderMagicNumber()==TrKorBuyM1||OrderMagicNumber()==TrKorSellM1){
        if (OrderType()==OP_BUY) {
          if (OrderStopLoss()-OrderOpenPrice()<LevelWLossM1*Point) {
            if (Bid-OrderOpenPrice()>LevelProfitM1*Point) {
              ModifyStopLoss(OrderOpenPrice()+LevelWLossM1*Point, clModifyBuy);
            }
          }
        }
        if (OrderType()==OP_SELL) {
          if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLossM1*Point) {
            if (OrderOpenPrice()-Ask>LevelProfitM1*Point) {
              ModifyStopLoss(OrderOpenPrice()-LevelWLossM1*Point, clModifySell);
        }}}}
      }
    }
  }
}
 
lovova:
Эксперт выдает ошибку 1 при выполнении кода модификации как её убрать
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  if (OrderStopLoss()!=ldStop) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

Типа того. Важно не пытаться ставиь стоп на том же самом уровне, где он уже стоит.
 
Vita:
lovova:
Эксперт выдает ошибку 1 при выполнении кода модификации как её убрать
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  if (OrderStopLoss()!=ldStop) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

Типа того. Важно не пытаться ставиь стоп на том же самом уровне, где он уже стоит.
да
 

Озадачен, что обозначает ваше "да". :)
На всякий случай повторю вставьте проверку на недопустимость OrderModify если новый уровень стопа не отличается от старого. К примеру так

if (OrderStopLoss()!=ldStop) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);

 
Vita:

Озадачен, что обозначает ваше "да". :)
На всякий случай повторю вставьте проверку на недопустимость OrderModify если новый уровень стопа не отличается от старого. К примеру так

if (OrderStopLoss()!=ldStop) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);


Я просто не сразу обратил внимание на осправление вами ошибки спасибо
 
lovova:
Vita:
lovova:
Эксперт выдает ошибку 1 при выполнении кода модификации как её убрать
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  if (OrderStopLoss()!=ldStop) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

Типа того. Важно не пытаться ставиь стоп на том же самом уровне, где он уже стоит.
да
Все таки надежней проверять на разность в один пункт (при условии, что все остальные проверки проведены):
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  if (MathAbs(OrderStopLoss()-ldStop)>MarketInfo(OrderSymbol(),MODE_POINT)) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

Предполагается, что OrderSymbol() вернет правильное значение.
 
Rosh:
lovova:
Vita:
lovova:
Эксперт выдает ошибку 1 при выполнении кода модификации как её убрать
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  if (OrderStopLoss()!=ldStop) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

Типа того. Важно не пытаться ставиь стоп на том же самом уровне, где он уже стоит.
да
Все таки надежней проверять на разность в один пункт (при условии, что все остальные проверки проведены):
//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();
 
  if (MathAbs(OrderStopLoss()-ldStop)>MarketInfo(OrderSymbol(),MODE_POINT)) OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

Предполагается, что OrderSymbol() вернет правильное значение.

Спасибо исправил
Причина обращения: