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

trendlines daily la .mq5

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

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

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

О программе

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

Логика работы основана на поиске более высоких максимумов (HigherHigh) и более низких минимумов (LowerLow) в исторических данных. По результатам анализа строятся линии сопротивления и поддержки, которые автоматически обновляются при смене бара.

Поддерживается отрисовка трендов на таймфреймах D1, H4 и H1 с настраиваемыми цветами для каждого уровня. При работе на текущем таймфрейме, отличном от целевого, выполняется корректировка позиций линий для корректного отображения.

Индикатор не содержит торговой логики и не использует торговые API. Он исключительно визуальный инструмент, работающий в окне графика.

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

НастройкаОписание
D1_R Цвет линии сопротивления на таймфрейме D1 (дневной).
D1_S Цвет линии поддержки на таймфрейме D1 (дневной).
H4_R Цвет линии сопротивления на таймфрейме H4 (четырёхчасовой).
H4_S Цвет линии поддержки на таймфрейме H4 (четырёхчасовой).
H1_R Цвет линии сопротивления на таймфрейме H1 (часовой).
H1_S Цвет линии поддержки на таймфрейме H1 (часовой).
Получить полный код

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

#property indicator_chart_window

extern color D1_R=Lime;
extern color D1_S=Lime;
extern color H4_R=Aqua;
extern color H4_S=Aqua;
extern color H1_R=White;
extern color H1_S=White;

#define RESISTANCE 1
#define SUPPORT 2

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

int deinit()
  {

   ObjectDelete("D1_R");
   ObjectDelete("D1_S");
   ObjectDelete("H4_R");
   ObjectDelete("H4_S");
   ObjectDelete("H1_R");
   ObjectDelete("H1_S");
   ObjectDelete("M5_R");
   ObjectDelete("M5_S");

   return(0);
  }

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

void Draw_M15_Trends()
{
   int sbar=0;
   int ebar=0;
   int i;
   double rate_array[][6];

   ArrayCopyRates(rate_array, Symbol(), PERIOD_H1);

   for (i=2; i < Bars; i++)
   {
      if (HigherHigh(i, 1, rate_array) == true)
      {

        if (ebar == 0)
          ebar = i;
        else if (sbar == 0 && rate_array[i][3] > rate_array[ebar][3]) // use 3 for high
          sbar = i;
      }
      if (sbar !=0 && ebar !=0)
         break;
   }
   DrawTrendline ("H1_R", ebar, sbar, PERIOD_H1, RESISTANCE, rate_array);

   ebar = 0;
   sbar = 0;

   for (i=2; i < Bars; i++)
   {
      if (LowerLow(i, 1, rate_array) == true)
      {
        if (ebar == 0)
          ebar = i;
        else if (sbar == 0 && rate_array[i][2] < rate_array[ebar][2]) // use 2 for low
          sbar = i;
      }
      if (sbar !=0 && ebar !=0)
         break;
   }
   DrawTrendline ("H1_S", ebar, sbar, PERIOD_H1, SUPPORT, rate_array);

}

void Draw_H1_Trends()
{
   int sbar=0;
   int ebar=0;
   int i;
   double rate_array[][6];

   ArrayCopyRates(rate_array, Symbol(), PERIOD_H4);

   for (i=2; i < Bars; i++)
   {
      if (HigherHigh(i, 1, rate_array) == true)
      {

        if (ebar == 0)
          ebar = i;
        else if (sbar == 0 && rate_array[i][3] > rate_array[ebar][3]) // use 3 for high
          sbar = i;
      }
      if (sbar !=0 && ebar !=0)
         break;
   }
   DrawTrendline ("H4_R", ebar, sbar, PERIOD_H4, RESISTANCE, rate_array);

   ebar = 0;
   sbar = 0;

   for (i=2; i < Bars; i++)
   {
      if (LowerLow(i, 1, rate_array) == true)
      {
        if (ebar == 0)
          ebar = i;
        else if (sbar == 0 && rate_array[i][2] < rate_array[ebar][2]) // use 2 for low
          sbar = i;
      }
      if (sbar !=0 && ebar !=0)
         break;
   }
   DrawTrendline ("H4_S", ebar, sbar, PERIOD_H4, SUPPORT, rate_array);

}

void Draw_D1_Trends()
{
   int sbar=0;
   int ebar=0;
   int i;
   double rate_array[][6];

   ArrayCopyRates(rate_array, Symbol(), PERIOD_D1);

   for (i=2; i < Bars; i++)
   {
      if (HigherHigh(i, 1, rate_array) == true)
      {

        if (ebar == 0)
          ebar = i;
        else if (sbar == 0 && rate_array[i][3] > rate_array[ebar][3]) // use 3 for high
          sbar = i;
      }
      if (sbar !=0 && ebar !=0)
         break;
   }
   DrawTrendline ("D1_R", ebar, sbar, PERIOD_D1, RESISTANCE, rate_array);

   ebar = 0;
   sbar = 0;

   for (i=2; i < Bars; i++)
   {
      if (LowerLow(i, 1, rate_array) == true)
      {
        if (ebar == 0)
          ebar = i;
        else if (sbar == 0 && rate_array[i][2] < rate_array[ebar][2]) // use 2 for low
          sbar = i;
      }
      if (sbar !=0 && ebar !=0)
         break;
   }
   DrawTrendline ("D1_S", ebar, sbar, PERIOD_D1, SUPPORT, rate_array);
}

 bool HigherHigh (int point, int shift, double array[][6])
  {
    if (shift == 0)
     return (true);

    if (array[point][3] >= array[point+shift][3] && array[point][3] >= array[point-shift][3])
    {
      if (array[point]

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

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

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

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

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

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

Стоимость полного кода
545,10₽ ≈ $6.66