Ограничение отработки сигналов?

 

Кто подскажет как ограничить исполнение сигналов в советнике так чтоб на одну свечку не больше одного сигнала(тоесть сделки)..

Допустим если таймфрейм H1 то в стейте не больше одной сделки в час? HELP!!!

 
Если советник работает внутри бара, то при открытии первой позиции можно ставить флаг, который сбрасывать с началом нового бара.
 

granit77



Если не трудно приведите пример ?

 

Посмотрите примеры функций в ветке у Игоря Кима "Полезные функции от KimIV", она в начале форума, там есть функция проверки открытия последнего ордера, сам ею пользуюсь. Она возвращает номер бара последнего открытого бара, если результат функции не равен нулю, значит предыдущая сделка открыта не на текущем баре.

 

например, можно использовать функцию isNewBar()

if(isNewBar() && сигнал) покупатьПродавать();

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
bool isNewBar(){
   bool res=false;   
   // массив содержит время открытия текущего (нулевого) бара
   // по 7 (семь) таймфреймам
   static datetime _sTime[7];
   int timeFrame = Period();  
   int i=6;
   switch (timeFrame){
      case 1  : i=0; break;
      case 5  : i=2; break;
      case 15 : i=3; break;
      case 30 : i=4; break;
      case 60 : i=5; break;
      case 240: break;
      case 1440:break;
      default:  timeFrame = 1440;
   }
   if (_sTime[i]==0){
      _sTime[i] = iTime(Symbol(),timeFrame,0);
      return(false);
   }
   if (_sTime[i]!=iTime(Symbol(),timeFrame,0)){
      _sTime[i] = iTime(Symbol(),timeFrame,0);
      return(true);
   }
   return(res);   
}
 

StSpirit





keekkenen



Спасибочки ! Пойду писать.

Причина обращения: