jx_parabolicregression_stopandreverse.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «jx_parabolicregression_stopandreverse.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это пользовательский индикатор для MetaTrader 5, который отображает на графике линии регрессии, каналы отклонения и уровни стоп-разворота. Индикатор рассчитывает полиномиальную регрессию по ценам закрытия и строит линии поддержки и сопротивления на основе отклонений от регрессии. Также отображаются две линии стоп-разворота, которые меняют цвет в зависимости от направления тренда. Индикатор работает в окне графика и использует четыре буфера для отрисовки стрелок уровней. Настройки позволяют изменять степень регрессии, коэффициент отклонения канала и цвета линий.
Настройки программы
| Настройка | Описание |
|---|---|
| _RegressionDegree | Степень регрессии — Степень полинома для расчета линии регрессии. Определяет сложность аппроксимирующей кривой. |
| _K_DeviationChannel | Коэффициент отклонения канала — Коэффициент отклонения для расчета ширины канала регрессии. Влияет на расстояние линий поддержки и сопротивления от линии регрессии. |
| _TrendLineColor | Цвет линии тренда — Цвет основной линии регрессии, отображаемой на графике. |
| _ResLineColor | Цвет линии сопротивления — Цвет линии сопротивления второго уровня, отображаемой на графике. |
| _SupLineColor | Цвет линии поддержки — Цвет линии поддержки второго уровня, отображаемой на графике. |
| _RegressionColor1 | Цвет регрессии 1 — Цвет линии регрессии и канала при восходящем направлении на текущем баре. |
| _RegressionColor2 | Цвет регрессии 2 — Цвет линии регрессии и канала при нисходящем направлении на текущем баре. |
| _RegressionColor3 | Цвет регрессии 3 — Цвет линии регрессии и канала при восходящем направлении на прогнозных барах. |
| _RegressionColor4 | Цвет регрессии 4 — Цвет линии регрессии и канала при нисходящем направлении на прогнозных барах. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Aqua
#property indicator_color2 Orange
#property indicator_color3 DeepSkyBlue
#property indicator_color4 Red
extern int _RegressionDegree=2;
extern double _K_DeviationChannel=2;
extern color _TrendLineColor=Gold;
extern color _ResLineColor = OrangeRed;
extern color _SupLineColor = DeepSkyBlue;
extern color _RegressionColor1 = Yellow;
extern color _RegressionColor2 = Lime;
extern color _RegressionColor3 = Red;
extern color _RegressionColor4 = RoyalBlue;
double _K_Fibo1 = 1.618;
double _K_Fibo2 = 2.618;
double fx,fx1;
double a[10,10],b[10],x[10],sx[20];
double sum,sum1,sq;
int p,nn,kt;
int i0,ip,pn,i0n,ipn;
long t0,tp,te,te1;
long _N_Time,_Cur_Period;
double Support1[];
double Support2[];
double Resist1[];
double Resist2[];
bool objects_initialized=false;
int init()
{
// код доступен только после оплаты
}
bool ObjectsInitialize()
{
if(p>Bars)
{
Comment("\n\n ERROR - TOO SMALL HISTORY, RETURN NOW!");
return(false); // then exit
}
kt = Period()*60;
nn = _RegressionDegree + 1;
t0 = Time[0];
i0 = iBarShift(Symbol(), Period(), t0);
ip = i0 + p;
tp = Time[ip];
pn = p;
for(int j=-p/2; j<p; j++)
{
if(i0+j>=0)
{
ObjectCreate("ar"+(string)j,2,0,Time[i0+1+j],0,Time[i0+j],0);
ObjectSet("ar"+(string)j,OBJPROP_RAY,0);
ObjectCreate("arH"+(string)j,2,0,Time[i0+1+j],0,Time[i0+j],0);
ObjectSet("arH"+(string)j,OBJPROP_RAY,0);
ObjectCreate("arL"+(string)j,2,0,Time[i0+1+j],0,Time[i0+j],0);
ObjectSet("arL"+(string)j,OBJPROP_RAY,0);
}
}
ObjectCreate("LR",OBJ_TREND,0,Time[0],0,Time[0],0);
ObjectSet("LR",OBJPROP_COLOR,_TrendLineColor);
ObjectSet("LR",OBJPROP_RAY,1);
ObjectSet("LR",OBJPROP_STYLE,STYLE_DASH);
ObjectCreate("2-nd Level ResLine",OBJ_TREND,0,Time[0],0,
Time[0],0);
ObjectSet("2-nd Level ResLine",OBJPROP_COLOR,_ResLineColor);
ObjectSet("2-nd Level ResLine",OBJPROP_RAY,1);
ObjectSet("2-nd Level ResLine",OBJPROP_STYLE,STYLE_DASH);
ObjectCreate("2-nd Level SupLine",OBJ_TREND,0,Time[0],0,
Time[0],0);
ObjectSet("2-nd Level SupLine",OBJPROP_COLOR,_SupLineColor);
ObjectSet("2-nd Level SupLine",OBJPROP_RAY,1);
ObjectSet("2-nd Level SupLine",OBJPROP_STYLE,STYLE_DASH);
return(true);
}
int deinit()
{
for(int j=p; j>=-p/2; j--)
{
ObjectDelete("ar"+(string)j);
ObjectDelete("arH"+(string)j);
ObjectDelete("arL"+(string)j);
}
ObjectDelete("LR");
ObjectDelete("2-nd Level ResLine");
ObjectDelete("2-nd Level SupLine");
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
if(!objects_initialized)
objects_initialized=ObjectsInitialize();
if(_N_Time!=Time[0] || _Cur_Period!=Period())
{
int i,n,k;
if(i0n!=i0 || ipn!=ip)
{
p=ip-i0;
i0n = ip;
ipn = ip;
if(pn<p)
{
for(int j=pn; j<=p; j++)
{
ObjectCreate("ar"+(string)j,2,0,Time[i0+1+j],0,
Time[i0+j],0);
ObjectSet("ar"+(string)j,OBJPROP_RAY,0);
ObjectCreate("arH"+(string)j,2,0,Time[i0+1+j],0,
Time[i0+j],0);
ObjectSet("arH"+(string)j,OBJPROP_RAY,0);
ObjectCreate("arL"+(string)j,2,0,Time[i0+1+j],0,
Time[i0+j],0);
ObjectSet("arL"+(string)j,OBJPROP_RAY,0);
}
for(j=-pn/2; j>=-p/2; j--)
{
ObjectCreate("ar"+(string)j,2,0,Time[i0+1+j],0,
Time[i0+j],0);
ObjectSet("ar"+(string)j,OBJPROP_RAY,0);
ObjectCreate("arH"+(string)j,2,0,Time[i0+1+j],0,
Time[i0+j],0);
ObjectSet("arH"+(string)j,OBJPROP_RAY,0);
ObjectCreate("arL"+(string)j,2,0,Time[i0+1+j],0,
Time[i0+j],0);
ObjectSet("arL"+(string)j,OBJPROP_RAY,0);
}
pn=p;
}
if(pn>p)
{
for(j=pn; j>=p; j--)
{
ObjectDelete("ar"+(string)j);
ObjectDelete("arH"+(string)j);
ObjectDelete("arL"+(string)j);
}
for(j=-p/2; j>=-pn/2; j--)
{
ObjectDelete("ar"+(string)j);
ObjectDelete("arH"+(string)j);
ObjectDelete("arL"+(string)j);
}
pn=p;
}
}
sx[1]=p+1;
for(i=1; i<=nn*2-2; i++)
{
sum=0.0;
for(n=i0; n<=i0+p; n++)
sum+= MathPow(n,i);
sx[i+1]= sum;
}
for(i=1; i<=nn; i++)
{
sum=0.0;
for(n=i0; n<=i0+p; n++)
{
if(i==1)
sum+=Close[n];
else
sum+=Close[n]*MathPow(n,i-1);
}
b[i]=sum;
}
for(j=1; j<=nn; j++)
{
for(i=1; i<=nn; i++)
{
k=i+j-1;
a[i,j]=sx[k];
}
}
Print("nn=",nn);
af_Gauss(nn,a,b,x);
sq=0.0;
for(n=p; n>=0; n--)
{
sum=0.0;
for(k=1; k<=_RegressionDegree; k++)
{
sum+=x[k+1]*MathPow(i0+n,k);
sum1+=x[k+1]*MathPow(i0+n+1,k);
}
fx = x[1]+ sum;
sq+= MathPow(Close[n+i0] - fx,2);
}
sq=_K_DeviationChannel*MathSqrt(sq/(p+1));
for(n=p; n>=-p/2; n--)
{
sum=0.0;
sum1=0.0;
for(k=1; k<=_RegressionDegree; k++)
{
sum+=x[k+1]*MathPow(i0+n,k);
sum1+=x[k+1]*MathPow(i0+n+1,k);
}
fx=x[1]+sum;
fx1=x[1]+sum1;
if(n>=0 && n<p)
{
ObjectMove("ar"+(string)n,0,Time[n+i0+1],fx1);
ObjectMove("ar"+(string)n,1,Time[n+i0],fx);
ObjectMove("arH"+(string)n,0,Time[n+i0+1],fx1+sq);
ObjectMove("arH"+(string)n,1,Time[n+i0],fx+sqПоказано первые 50% кода (символов: 9413)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.