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

T3 Moving Average

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

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

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

О программе

T3 Moving Average — это пользовательский индикатор для MetaTrader 5, отображающий на графике скользящую среднюю T3. Индикатор использует шесть уровней экспоненциального сглаживания с последующей комбинацией результатов по коэффициентам, рассчитанным на основе параметра b и периода. Основной расчёт выполняется на текущем таймфрейме, но поддерживается и работа с другими таймфреймами через функцию iCustom.

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

При выборе таймфрейма, отличного от текущего, индикатор пересчитывает данные целевого таймфрейма, копируя временные метки и вызывая собственное изображение через iCustom. В противном случае расчёт выполняется непосредственно на текущем графике с использованием простой скользящей средней (SMA) как базового элемента.

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

НастройкаОписание
T3Period Период расчёта индикатора T3, определяет количество баров, используемых для сглаживания. По умолчанию равен 14.
T3Price Тип цены, используемый в расчёте индикатора. По умолчанию установлен на PRICE_CLOSE (цена закрытия).
b Параметр гладкости индикатора T3, влияющий на коэффициенты комбинирования уровней сглаживания. По умолчанию равен 0.618.
TimeFrame Таймфрейм, на котором выполняется расчёт индикатора. Допускается указание строкового обозначения (например, M1, H1, D1) или числового значения. По умолчанию — текущий таймфрейм графика.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 2

extern int    T3Period  = 14;
extern int    T3Price   = PRICE_CLOSE;
extern double b         = 0.618;
extern string TimeFrame = "current time frame";

double t3Array[];
double ae1[];
double ae2[];
double ae3[];
double ae4[];
double ae5[];
double ae6[];

int    timeFrame;
string IndicatorFileName;

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

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

int    t3_period;
double e1,e2,e3,e4,e5,e6;
double c1,c2,c3,c4;
double w1,w2,b2,b3;

double CalculateT3(int limit,int period,int priceType)
  {
   if(t3_period != period)
     {
      t3_period = period;
      b2 = b*b;
      b3 = b2*b;

      c1 = -b3;
      c2 = (3*(b2+b3));
      c3 = -3*(2*b2+b+b3);
      c4 = (1+3*b+b3+3*b2);

      w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));
      w2 = 1 - w1;
     }

   for(int i=limit; i>=0; i--)
     {
      double price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);
      e1 = w1*price + w2*ae1[i+1];
      e2 = w1*e1    + w2*ae2[i+1];
      e3 = w1*e2    + w2*ae3[i+1];

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

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

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

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

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

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

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