Если советник работает внутри бара, то при открытии первой позиции можно ставить флаг, который сбрасывать с началом нового бара.
Посмотрите примеры функций в ветке у Игоря Кима "Полезные функции от 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); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто подскажет как ограничить исполнение сигналов в советнике так чтоб на одну свечку не больше одного сигнала(тоесть сделки)..
Допустим если таймфрейм H1 то в стейте не больше одной сделки в час? HELP!!!