← К каталогу
Исходный код · ID 4523

#00_zz_window.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Это пользовательский индикатор для MetaTrader 5, написанный на MQL5. Он отображается в отдельном окне и рассчитывает аналитические данные на основе истории цен. Индикатор использует четыре буфера для отрисовки и дополнительные буферы для промежуточных вычислений. В коде заданы фиксированные границы шкалы от -100 до 100.

Индикатор выполняет поиск локальных экстремумов цены и формирует на их основе серию значений, которые затем отображаются в виде стрелок и линий. Входные параметры позволяют настраивать глубину поиска, отклонение и шаг возврата. Логика работы включает несколько проходов по данным и финальную обработку для получения отображаемых значений.

Индикатор не содержит торговых функций и не предназначен для автоматического открытия или закрытия позиций. Все расчёты выполняются на основе доступных ценовых баров, а результат выводится в отдельном окне графика.

Настройки программы

НастройкаОписание
ExtDepth Целочисленный параметр, определяющий глубину поиска локальных минимумов и максимумов на заданном количестве баров. Влияет на количество анализируемых баров.
ExtDeviation Целочисленный параметр, задающий допустимое отклонение в пунктах при проверке экстремумов. Используется для фильтрации значений, не соответствующих условию отклонения.
ExtBackstep Целочисленный параметр, задающий количество шагов возврата при обработке найденных экстремумов. Используется для корректировки уже установленных значений в буферах.
Получить полный код

Поиск по коду файла

#property indicator_separate_window
#property indicator_minimum -100
#property indicator_maximum 100
#property indicator_buffers 4
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Red

extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double zz[];

int init()
  {
      // код доступен только после оплаты
   }
  int deinit() {return(0);}

int start()
  {
      // код доступен только после оплаты
   }
   int    shift, back,lasthighpos,lastlowpos;
   double val,res;
   double curlow,curhigh,lasthigh,lastlow;
   bool signal;
   int i;

   for(shift=Bars-ExtDepth; shift>=0; shift--)
     {
      val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];
      if(val==lastlow) val=0.0;
      else 
        { 
         lastlow=val; 
         if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer1[shift+back];
               if((res!=0)&&(res>val)) ExtMapBuffer1[shift+back]=0.0; 
              }
           }
        } 
      ExtMapBuffer1[shift]=val;

      val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];
      if(val==lasthigh) val=0.0;
      else 
        {
         lasthigh=val;
         if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
         else
           {
            for(back=1; back<=ExtBackstep; back++)
              {
               res=ExtMapBuffer2[shift+back];
               if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0; 
              } 
           }
        }
      ExtMapBuffer2[shift]=val;
     }

   lasthigh=-1; lasthighpos=-1;
   lastlow=-1;  lastlowpos=-1;

   for(shift=Bars-ExtDepth; shift>=0; shift--)
     {
      curlow=ExtMapBuffer1[shift];
      curhigh=ExtMapBuffer2[shift];
      if((curlow==0)&&(curhigh==0)) continue;

      if(curhigh!=0)
        {
         if(lasthigh>0) 
           {
            if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0;
            else ExtMapBu

Показано первые 50% кода (символов: 3682)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
368,20₽ ≈ $4.50