MQL4 - automated forex trading   /  

Форум

Как проверять условия на вход только один раз, в начале часового бара?

К списку тем  | 1 2 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
50
CTPAYC 29.08.2007 15:45 

Подскажите, пожалуйста, как проверять условия на вход только один раз, на открытии часового бара?

Попробовал использовать:

if(iVolume(NULL, 0, 0) < 2)
   {
   ...
   }
  На истории работает, а на демо за последние 3 часа это условие ни разу не выполнилось...
article

Консультант-советник трейдера на основе расширенного анализа MACD

Скрипт консультант-советник трейдера по принятию решения об открытии позиций на основании расширенного анализа состояния MACD по трем последним барам в реальном времени торгов на любом периоде, и для проведения анализа на истории.


avatar
2350
timbo 29.08.2007 15:57 
Запоминаешь время открытия нулевого бара, потом сравниваешь его с временем открытия текущего нулевого бара, если не равно, то значит это новый нулевой бар и пора сделать своё темное дело и обновить запомненное время. Повторить.

avatar
123
klerk 29.08.2007 16:13 
//проинициализировал curTime временем текущего бара
...
prevTime=iTime(NULL,0,1);
if(prevTime==curTime)
{
     ...
    curTime=iTime(NULL,0,0);
}

avatar
50
CTPAYC 29.08.2007 16:17 
klerk писал (а):
//проинициализировал curTime временем текущего бара
...
prevTime=iTime(NULL,0,1);
if(prevTime==curTime)
{
...
curTime=iTime(NULL,0,0);
}

Спасибо  :о)

avatar
123
klerk 29.08.2007 16:25 
кушайте на здоровье. ;-)

avatar
6584
Integer 30.08.2007 09:36 
timbo писал (а):
Запоминаешь время открытия нулевого бара, потом сравниваешь его с временем открытия текущего нулевого бара, если не равно, то значит это новый нулевой бар и пора сделать своё темное дело и обновить запомненное время. Повторить.

Запоминаешь время, только если траблов не было

avatar
50
CTPAYC 31.08.2007 22:00 

Помогите, пожалуйста! Что-то сам никак не соображу...

Написал я эксперта, который на смене часа проверяет ситуацию и входит или выходит по индикатору. Для смены часа использовал решение, которое было предложено. А теперь захотелось его на других таймфреймах проверить, например 15 минут. Теперь надо определять ситуацию каждый 15м период (но не каждые 15 минут, а каждый бар)... Как?!

Есть в голове решение, но шибко длинное и неуклюжее. Уверен, что можно красивше.


avatar
4644
Vinin 01.09.2007 04:14 
CTPAYC писал (а):

Помогите, пожалуйста! Что-то сам никак не соображу...

Написал я эксперта, который на смене часа проверяет ситуацию и входит или выходит по индикатору. Для смены часа использовал решение, которое было предложено. А теперь захотелось его на других таймфреймах проверить, например 15 минут. Теперь надо определять ситуацию каждый 15м период (но не каждые 15 минут, а каждый бар)... Как?!

Есть в голове решение, но шибко длинное и неуклюжее. Уверен, что можно красивше.


extern int iPeriod=...';
int prevTime=0;
 
 
int start(){
   if (iTime(Symbol(),iPeriod,0) == prevTime) return(0);
   prevTime = iTime(Symbol(),iPeriod,0);
     ...
}

avatar
187
thecore 01.09.2007 04:45 
Можно попробовать чтото типа этого.
 
 
int LastTime=0;
int init(){ LastTime=Hour();}
int start(){
   if (Hour()!=LastTime){SendSomeOrder();LastTime=Hour();}
   ...
}

avatar
1368
Roger 01.09.2007 05:23 
У тебя в самом начале почти правильная идея была. Но лучше так:
if(Volume[0]<2){...

avatar
2350
timbo 01.09.2007 07:12 
Roger писал (а):
У тебя в самом начале почти правильная идея была. Но лучше так:
if(Volume[0]<2){...
Так не лучше... Так будет пропускать бары, иногда получится, иногда нет. 
К списку тем   | 1 2  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий