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

!tma true v2

!tma true v2.mq5
Вы автор или правообладатель?

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

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

О программе

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

Верхняя и нижняя границы формируются на основе среднего истинного диапазона (ATR) с собственным периодом, умноженного на заданный коэффициент. Индикатор создаёт графические объекты на графике, отображающие текущий диапазон TMA, направление тренда и расстояние от цены Bid до средней линии, верхней и нижней границ в пунктах.

Настройки включают период скользящей средней и цвет текстовых объектов. Индикатор работает на графике MetaTrader 5 и корректно обрабатывает различное количество знаков после запятой у различных валютных пар.

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

НастройкаОписание
xi_Period Период скользящей средней, используемой для расчёта центральной линии индикатора.
xc_Text Цекстовые объекты, отображаемые на графике (диапазон, тренд, расстояния до линий).
Получить полный код

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

#property indicator_chart_window

#property indicator_buffers 5
#property indicator_color1 Yellow
#property indicator_color2 Blue
#property indicator_color3 Red
#property indicator_color4 Lime
#property indicator_color5 Lime
#property indicator_style4 STYLE_DOT
#property indicator_style5 STYLE_DOT

extern int xi_Period = 56;
extern int xi_ATR.Period = 100;
extern double xd_ATR.Mult = 2.0;
extern color xc_Text = LightGray;

double IB_TMA[], IB_TMA.Up[], IB_TMA.Dn[];
double IB_Upper[], IB_Lower[];

int gi_PipsDecimal;

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

int deinit()
  {

   ObjectDelete("!TMA True v2 Range");
   ObjectDelete("!TMA True v2 Trend");

   return(0);
  }

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

   int counted_bars = IndicatorCounted();

   if (counted_bars < 0) return (-1);
   if (counted_bars > 0) counted_bars--;
   int limit = Bars - counted_bars;
   double ld_Range, ld_Pips;

   for (int i=limit; i>=0; i--)
      {
      IB_TMA[i] = EMPTY_VALUE;
      IB_TMA.Up[i] = EMPTY_VALUE;
      IB_TMA.Dn[i] = EMPTY_VALUE;

      IB_TMA[i] = iMA(NULL,0,xi_Period,0,MODE_LWMA,PRICE_CLOSE,i);

      if (IB_TMA[i] > IB_TMA[i+1])
         IB_TMA.Up[i] = IB_TMA[i];
      if (IB_TMA[i] < IB_TMA[i+1])
         IB_TMA.Dn[i] = IB_TMA[i];

      ld_Range = iATR(NULL,0,xi_ATR.Period,i+10);
      IB_Upper[i] = IB_TMA[i] + (ld_Range * xd_ATR.Mult);
      IB_Lower[i] = IB_TMA[i] - (ld_Range * xd_ATR.Mult);

      }

   ld_Range = IB_Upper[1] - IB_Lower[1];
   ld_Pips = Convert_2_Pips(ld_Range);
   Object_Create("!TMA True v2 Range",5,25,"TMA Range: "+DoubleToStr(ld_Pips,gi_PipsDecimal),10,"Arial",xc_Text);

   if (IB_TMA.Up[1] == EMPTY_VALUE && IB_TMA.Dn[1] == EMPTY_VALUE)
      Object_Create("!TMA True v2 Trend",5,5,"TMA Trend: n/a",10,"Arial",xc_Text);
   else
      {
      ld_Range = Get_Trend_Range();
      ld_Pips = Convert_2_Pips(ld_Range);
      Object_Create("!TMA True v2 Trend",5,5,"TMA Trend: "+DoubleToStr(ld_Pips,gi_PipsDecimal),10,"Arial",xc_Text);
      }

      double ld_Dist.Pts, ld_Dist.Pips;

      ld_Dist.Pts = MathAbs(Bid - IB_TMA[0]);
      ld_Dist.Pips = Convert_2_Pips(ld_Dist.Pts);
      ObjectCreate("!Mid",OBJ_TEXT

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

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

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

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

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

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

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