Макс и Мин поиск на временной полосе - MT4

 
Привет, я пытаюсь автоматизировать мой EA. В это время цена покупки и продажи навязывается день ото дня. Вместо этого я бы хотел, чтобы EA идентифицировал максимальные и минимальные цены, которые создаются каждый день в определенный промежуток времени (например, между 5 и 6 утра). Все это должно выполняться автоматически каждый день.

Я пытался использовать функции Highest, High и iBarsShift, но безуспешно.

Кто-нибудь может мне помочь?

Большое вам спасибо!
 
Danieloto:
Привет, я пытаюсь автоматизировать мой EA. В это время цена покупки и продажи навязывается день ото дня. Вместо этого я бы хотел, чтобы EA идентифицировал максимальные и минимальные цены, которые создаются каждый день в определенный промежуток времени (например, между 5 и 6 утра). Все это должно выполняться автоматически каждый день.

Я пытался использовать функции Highest, High и iBarsShift, но безуспешно.

Кто-нибудь может мне помочь?

Большое вам спасибо!

Ищите код по запросу "Пробой утреннего флета", вот там и будет кусок кода, который вам нужен)

MQL5 Code Base
MQL5 Code Base
  • www.mql5.com
Советник-утилита: в пятницу рисует закрашенный прямоугольник - как бы предупреждая: "Осторожно" Впереди выходные!" Советник на стандартном индикаторе iAO (Awesome Oscillator, AO) и пользовательском ZigZag on Fractals. Оба индикатора берутся на разных таймфреймах. Торговая система случайным образом выбирающая сигналы от одного из четырёх...
 
Vitaly Muzichenko:

Ищите код по запросу "Пробой утреннего флета", вот там и будет кусок кода, который вам нужен)

Привет Vitaly, но я должен сделать массив или цикл с for?

Спасибо за помощь !!

 
Danieloto:

Привет Vitaly, но я должен сделать массив или цикл с for?

Спасибо за помощь !!

//+----------------------------------------------------------------------------+
//|                                                            i-AnyRange.mq4  |
//|                                                    Ким Игорь В. aka KimIV  |
//|                                                       http://www.kimiv.ru  |
//|                                                                            |
//|  17.11.2006  Индикатор диапазонов произвольных временных интервалов.       |
//+----------------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_color2 Salmon
#property indicator_width1 2
#property indicator_width2 2

//------- Внешние параметры индикатора -----------------------------------------
extern string Time1 = "02:00";    // Временная точка 1
extern string Time2 = "07:00";    // Временная точка 2
extern int    nDays = 2;          // Количество дней обсчёта (0-все)

//------- Глобальные переменные ------------------------------------------------

//------- Поключение внешних модулей -------------------------------------------

//------- Буферы индикатора ----------------------------------------------------
double dBuf0[], dBuf1[];

//+----------------------------------------------------------------------------+
//|  Custom indicator initialization function                                  |
//+----------------------------------------------------------------------------+
void init() {
  SetIndexBuffer    (0, dBuf0);
  SetIndexEmptyValue(0, EMPTY_VALUE);
  SetIndexStyle     (0, DRAW_LINE);

  SetIndexBuffer    (1, dBuf1);
  SetIndexEmptyValue(1, EMPTY_VALUE);
  SetIndexStyle     (1, DRAW_LINE);
}

//+----------------------------------------------------------------------------+
//|  Custom indicator deinitialization function                                |
//+----------------------------------------------------------------------------+
void deinit() { Comment(""); }

//+----------------------------------------------------------------------------+
//|  Custom indicator iteration function                                       |
//+----------------------------------------------------------------------------+
void start() {
  double up, dn;
  int    i, LoopBegin, kd=0, nb1, nb2, nd=0;
  string sdt;

  if (Period()>PERIOD_H1) {
    Comment("Индикатору i-AnyRange нужен ТФ младше H4!"); return;
  } else Comment("");

        if (nDays==0) LoopBegin=Bars-10;
  else LoopBegin=nDays*1440/Period();
  LoopBegin=MathMin(Bars-10, LoopBegin);

  for (i=0; i<LoopBegin; i++) {
    if (nd!=TimeDay(Time[i])) {
      nd=TimeDay(Time[i]);
      kd++;
      if (kd>nDays && nDays>0) return;
      sdt=TimeToStr(Time[i], TIME_DATE);
      nb1=iBarShift(NULL, 0, StrToTime(sdt+" "+Time1));
      nb2=iBarShift(NULL, 0, StrToTime(sdt+" "+Time2));
      if (nb1>nb2+1) {
        up=High[iHighest(NULL, 0, MODE_HIGH, nb1-nb2, nb2+1)];
        dn=Low [iLowest (NULL, 0, MODE_LOW , nb1-nb2, nb2+1)];
      }
      if (nb2>nb1+1) {
        up=High[iHighest(NULL, 0, MODE_HIGH, nb2-nb1, nb1+1)];
        dn=Low [iLowest (NULL, 0, MODE_LOW , nb2-nb1, nb1+1)];
      }
    }
    if ((nb1>=i && i>nb2) || (nb2>=i && i>nb1)) {
      dBuf0[i]=up;
      dBuf1[i]=dn;
    } else {
      dBuf0[i]=EMPTY_VALUE;
      dBuf1[i]=EMPTY_VALUE;
    }
  }
}
//+----------------------------------------------------------------------------+

 
Alekseu Fedotov:


Большое вам спасибо Alekseu!! Вы были очень добры !! Можно ли с помощью этого цикла автоматически определять дневные максимумы и минимумы в течение определенного периода времени?

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