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

adaptive T3 rainbow

adaptive t3 rainbow.mq5
Вы автор или правообладатель?

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

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

О программе

«adaptive T3 rainbow» — это пользовательский индикатор для MetaTrader 4, отображающий 8 линий скользящих средних T3 в виде радуги с градиентом оранжевых цветов. Индикатор рассчитывает значения на основе ценовых данных текущего или выбранного таймфрейма.

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

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

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

НастройкаОписание
TimeFrame Таймфрейм — Временной период, на котором рассчитывается индикатор. Специальные значения "calculateValue" и "returnBars" используются для передачи данных между таймфреймами.
T3Price Цена T3 — Тип цены, используемый для расчёта индикатора (например, PRICE_CLOSE).
Interpolate Интерполяция — Включает или отключает интерполяцию значений между барами при работе на отличном от текущего таймфрейме.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1  C'255,128,0'
#property indicator_color2  C'255,144,0'
#property indicator_color3  C'255,160,0'
#property indicator_color4  C'255,176,0'
#property indicator_color5  C'255,192,0'
#property indicator_color6  C'255,208,0'
#property indicator_color7  C'255,224,0'
#property indicator_color8  C'255,240,0'

extern string TimeFrame       = "Current time frame";
extern string T3Periods       = "14;17;20;23;26;29;32;35";
extern string T3Hots          = "0.7;0.7;0.7;0.7;0.7;0.7;0.7;0.7";
extern string T3AdaptPeriods  = "25;25;25;25;25;25;25;25";
extern string T3Originals     = "T;T;T;T;T;T;T;T";
extern int    T3Price         = PRICE_CLOSE;
extern bool   Interpolate     = true;

double Buffer0[];
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];

string indicatorFileName;
bool   returnBars;
bool   calculateValue;
int    timeFrame;

int    size;
bool   originals[];
double aperiods[];
double periods[];
double hots[];

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

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { Buffer0[0] = MathMin(limit+1,Bars-1); return(0); }

   if (calculateValue || timeFrame == Period())
   {
      for(int i=limit; i >= 0; i--)
      {
         for (int k=0; k<size; k++)
         {
            double dev = iStdDev(NULL,0,aperiods[k],0,MODE_SMA,T3Price,i);
            double avg = iSma(dev,aperiods[k],i,k);
            if (dev!=0) 
                   double period = periods[k]*avg/dev;
            else          period = periods[k];
            if (period<3) period = 3;

            switch(k)
            {
               case 0: Buffer0[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;       
               case 1: Buffer1[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;       
               case 2: Buffer2[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;       
               case 3: Buffer3[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;       
               case 4: Buffer4[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;   
               case 5: Buffer5[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
               case 6: Buffer6[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
               case 7: Buffer7[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
            }
         }      
      }         
      return(0);
   }

   limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*t

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

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

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

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

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

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

Стоимость полного кода
922,30₽ ≈ $11.27