Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 473

 
Bek001:

 Спрошу иначе. Как можно определить максимальную цену за последние 10 секунд?

В МТ5 - CopyTicks()

В МТ4 - сохранять тики в массив структур MqlTick. Из него и брать макс/мин. цены

 

Подскажите как сделать? Написал функцию уведомлений а уведомления приходят на каждом тике! Сама функция просто прописана в int Start. Условия PATTERN на М30. 

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

Подскажите как сделать? Написал функцию уведомлений а уведомления приходят на каждом тике! Сама функция просто прописана в int Start. 

static int DayT=0;
 
@Artyom Trishkin Спасибо! Интересно вышло теперь вообще тишина!
 
Rewerpool:
@Artyom Trishkin Спасибо! Интересно вышло теперь вообще тишина!
С мобилы трудно код читать. Там наверняка ещё чего есть не то.
 
Rewerpool:

Подскажите как сделать? Написал функцию уведомлений а уведомления приходят на каждом тике! Сама функция просто прописана в int Start. Условия PATTERN на М30. 

int DayT=0;
datetime BarTime=TimeCurrent();
void NOTIFICATION()
{
   if(DayT!=Day())// Если новый день - нужно опросить
   {
      DayT=Day();
      if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
      if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
   }
   if (BarTime==Time[0]) // Если новый бар - нужно опросить
   {
      BarTime=Time[0];
      if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
      if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
   }
}

Объявляете переменные и тут-же сравниваете с ними. Само собой всегда получите один и тот-же результат.

 
Artyom Trishkin:
С мобилы трудно код читать. Там наверняка ещё чего есть не то.

Вроде бы вот так ещё надо было

datetime BarTime;
 

@Konstantin Nikitin Здравствуйте!!! Поправил!! Дневные сигналы есть! Осталось внутридневные проверить!

Исправил! Вот:

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

static int DayT=0;
datetime BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

@Konstantin Nikitin Здравствуйте!!! Поправил!! Дневные сигналы есть! Осталось внутридневные проверить!

Исправил! Вот:

static int DayT=0;
datetime BarTime;

На глобальный уровень вынесите. Они у вас все время будут равны 0, т.к. при каждом вызове функции объявляться по новой.

 
@Konstantin Nikitin Вы предлагаете вынести за тело функции эти параметры? Или оставить их как я написал в последнем скрине?