Код на пробое уровня не работает, выдает ошибку 4111

 

Пытаюсь написать код для торговли на пробое уровня. Решил испробовать функцию iHighest. Вставил в код, с помощью которого тестирую разные идеи. При тестировании выдает постоянно какую-то ошибку 4111. Подскажите пожалуйста, что тут не так? или скиньте для примера код по похожей стратегии, там уже сам буду разбираться

int total;

double High1;
//--- расчет максимального значения цены на 20 последовательных барах
//--- с индекса 4 по индекс 23 включительно на текущем графике
   int val_index=iHighest(NULL,0,MODE_HIGH,50,1);
   if(val_index!=-1) High1=High[val_index];
  
  
  
//--- go trading only for first tiks of new bar
    total=OrdersTotal();
   if(total<1)
//--- get Moving Average 
//--- sell conditions
   if(Low[0]<High1)
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Ask+sl*Point,Bid-tp*Point,"",MAGICMA,0,Red);
      return;
     }
//--- buy conditions
   if(High[0]>High1)
   {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Bid-sl*Point,Ask+tp*Point,"",MAGICMA,0,Blue);
      return;
     }
//---
  }
 
забыл сказать, что в настройках этого советника установил только покупки. просто для тестирования, чтобы посмотреть, что функция работает. но покупки не совершает, хотя пробой этого максимального уровня на указанном временном интервале осуществляется
 
OVODION:
забыл сказать, что в настройках этого советника установил только покупки. просто для тестирования, чтобы посмотреть, что функция работает. но покупки не совершает, хотя пробой этого максимального уровня на указанном временном интервале осуществляется

Этот код ошибки и означает, что продажи запрещены.

 
khorosh:

Этот код ошибки и означает, что продажи запрещены.

разрешил покупки и продажи, только в условие продаж поставил 
Low[0]>High1

то есть по сути сделал условие продажи невозможным.

на тестировании начали срабатывать те покупки, что надо... хм... странно.. но спасибо за подсказку!