i-regr mtf.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «i-regr mtf.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор выполняет полиномиальную регрессию цены и отображает результат на графике MetaTrader 5. Рассчитывается линия регрессии заданной степени, а также верхняя и нижняя полосы отклонения, основанные на стандартном отклонении. Поддерживается работа на разных таймфреймах: при выборе интервала, отличного от текущего, данные запрашиваются через вызов iCustom с другого таймфрейма.
Расчёт строится на методе наименьших квадратов с решением системы линейных уравнений методом Гаусса. Полином задаётся пользователем через параметр степени. Линия регрессии и полосы отклонения отрисовываются в виде трёх индикаторных буферов.
Индикатор обновляет значения не чаще одного раза в 60 секунд. Обработка ограничивается заданным количеством баров. При недостаточном количестве баров на графике расчёт не выполняется.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Временной интервал для расчёта индикатора. Если задан интервал, отличный от текущего графика, индикатор получает данные с указанного таймфрейма через iCustom. |
| degree | Степень полинома регрессии. Определяет порядок аппроксимирующей кривой. Значение 3 означает кубическую регрессию. |
| kstd | Множитель стандартного отклонения. Определяет ширину верхней и нижней полос отклонения вокруг линии регрессии. |
| bars | Количество баров, используемых для расчёта регрессии. Если на графике баров меньше этого значения, расчёт не выполняется. |
| shift | Сдвиг индикаторной линии в барах относительно текущего бара. Положительное значение сдвигает линию влево. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Aquamarine
#property indicator_color2 SteelBlue
#property indicator_color3 SteelBlue
extern string TimeFrame = "Current time frame";
extern int degree = 3;
extern double kstd = 1.5;
extern int bars = 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;
/*
void clear()
{
int total = ObjectsTotal();
for (int i=total-1; i >= 0; i--)
{
string name = ObjectName(i);
if (StringFind(name, prefix) == 0) ObjectDelete(name);
}
}
*/
string indicatorFileName;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
datetime LastUpdate;
int start()
{
// код доступен только после оплаты
}
if (TimeCurrent() - LastUpdate < 60) return(0); //Checks to see last update
LastUpdate = TimeCurrent();
if (timeFrame!=Period())
{
int limit = MathMin(Bars-1,bars*timeFrame/Period());
for (int i=limit; i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
fx[i] = iCustom(NULL,timeFrame,indicatorFileName,"",degree,kstd,bars,0,0,y);
sqh[i] = iCustom(NULL,timeFrame,indicatorFileName,"",degree,kstd,bars,0,1,y);
sql[i] = iCustom(NULL,timeFrame,indicatorFileName,"",degree,kstd,bars,0,2,y);
}
SetIndexDrawBegin(0, MathMin(Bars-limit-1,0));
SetIndexDrawBegin(1, MathMin(Bars-limit-1,0));
SetIndexDrawBegin(2, MathMin(Bars-limit-1,0));
return(0);
}
if (Bars < bars) return(0);
int mi; // ?????????? ?????????????? ?????? ? start
ip = bars;
p=ip; // ???? ????????????
sx[1]=p+1; // ?????????? - [] - ???????? ??????
nn = degree+1;
SetIndexDrawBegin(0, Bars-p-1);
SetIndexDrawBegin(1, Bars-p-Показано первые 50% кода (символов: 3582)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.