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

inside_bar.mq5

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

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

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

О программе

Inside Bar — это пользовательский индикатор для MetaTrader 5, предназначенный для обнаружения и визуализации так называемых «внутренних баров» (Inside Bar) на выбранном таймфрейме. Внутренний бар — это свеча, у которой верхняя и нижняя точки полностью находятся внутри диапазона предыдущей свечи. Индикатор отрисовывает два уровня: верхний (High, зелёный) и нижний (Low, красный), что позволяет визуально отслеживать зоны сужения волатильности на графике.

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

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

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

НастройкаОписание
Period to find Inside Bar (TF_find) Таймфрейм поиска Inside Bar — Таймфрейм, на котором выполняется поиск внутренних баров (Inside Bar). По умолчанию установлен H1. Допустимы стандартные значения ENum_TIMEFRAMES MetaTrader. Если задан текущий таймфрейм графика, он автоматически подставляется вместо него. Индикатор не работает, если вы
Получить полный код

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

#property version       "1.00"
#property strict

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID
#property indicator_width1 2
#property indicator_width2 2

extern ENUM_TIMEFRAMES TF_find=PERIOD_H1;   //Period to find Inside Bar

double HighBuff[];
double LowBuff[];

double LastHigh;
double LastLow;
int    length=5, len=0;

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
   Comment("");
  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
      // код доступен только после оплаты
   }
   if (rates_total-prev_calculated<=0) return(0);

   if (TF_find<_Period) 
      {
      Comment("Time frame must be not more than 'Period to find Inside Bar' "+TFtoStr(TF_find)); 
      return (0);
      }

   int limit=1;
   if (prev_calculated==0 || rates_total-prev_calculated>1) 
      {
      ArrayInitialize(HighBuff,EMPTY_VALUE); 
      ArrayInitialize(LowBuff,EMPTY_VALUE);
      limit=iBars(_Symbol,TF_find)-2;
      }

   for (int i=limit; i>=1; i--)
      { 
       datetime time1=iTime(_Symbol,TF_find,i);
       datetime time2=time1+PeriodSeconds(TF_find);
       int bar_now=iBarShift(_Symbol,_Period,time1,false);

       if (iLow(_Symbol,TF_find,i) > iLow(_Symbol,TF_find,i+1) && 
           iHigh(_Symbol,TF_find

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

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

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

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

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

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

Стоимость полного кода
313,90₽ ≈ $3.84