i-regr.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.