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

i-regr.mq5

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

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

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

О программе

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

Внутренне индикатор решает систему нормальных уравнений регрессии методом Гаусса с выбором ведущего элемента по столбцу, после чего вычисляет значения регрессионной линии и граничных отклонений для каждого бара в рабочем диапазоне. Обновление данных происходит не чаще одного раза в 15 минут.

Индикатор использует три буфера: линию регрессии (цвет Coral) и две линии отклонений — верхнюю и нижнюю (цвет SlateBlue), отображаемые пунктирными линиями. Все буферы имеют пустое значение 0.0 и сдвиг по индексу, задаваемый пользователем.

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

НастройкаОписание
degree Степень полинома регрессии. Задаёт сложность аппроксимирующей кривой: значение 3 соответствует кубической регрессии.
kstd Множитель стандартного отклонения остатков, определяющий ширину полос отклонения вокруг линии регрессии.
bars Количество баров, используемых для расчёта полиномиальной регрессии. Определяет глубину анализируемого ценового диапазона.
shift Сдвиг индикаторной линии по индексу бара относительно текущего бара на графике.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Coral
#property indicator_color2 SlateBlue
#property indicator_color3 SlateBlue

extern int degree = 3;
extern double kstd = 1.5;//1.8
extern int bars = 240;//240
extern int shift = 0;

double fx[],sqh[],sql[];

double ai[10,10],b[10],x[10],sx[20];
double sum; 
int ip,p,n,f;
double qq,mm,tt;
int ii,jj,kk,ll,nn;
double sq;

int i0 = 0;

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

int deinit()
{

  return(0);
}

datetime LastUpdate;

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

   if (TimeCurrent() - LastUpdate < 900) return(0);
   LastUpdate = TimeCurrent();

  int mi; // ?????????? ?????????????? ?????? ? start
  ip = bars;
  p=ip; // ???? ????????????
  sx[1]=p+1; // ?????????? - [] - ???????? ??????
  nn = degree+1;

  SetIndexDrawBegin(0, Bars-p-1);
  SetIndexDrawBegin(1, Bars-p-1);
  SetIndexDrawBegin(2, Bars-p-1); 

  for(mi=1;mi<=nn*2-2;mi++) // ?????????????? ????????? - ??? ???? mi ?? 1 ?? nn*2-2 
  {
    sum=0;
    for(n=i0;n<=i0+p;n++)
    {
       sum+=MathPow(n,mi);
    }
    sx[mi+1]=sum;
  }  

  for(mi=1;mi<=nn;mi++)

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

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

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

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

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

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

Стоимость полного кода
219,40₽ ≈ $2.68