t3_rsi_zigzag.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «t3_rsi_zigzag.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, рассчитывающий сглаженную версию индикатора RSI с выделением локальных экстремумов в виде ZigZag-линии. Использует пользовательские параметры для настройки периода RSI, коэффициента сглаживания T3 и параметров поиска пиков и впадин. Отображает результат в отдельном окне в виде двух буферов: основная линия сглаженного RSI и линия ZigZag.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIPeriod | Период RSI — Период расчёта индикатора относительной силы RSI. |
| t3_period | Период T3 — Период сглаживающего фильтра T3, применяемого к значениям RSI. |
| b | Коэффициент b — Коэффициент сглаживания фильтра T3 в диапазоне от 0 до 1. |
| ExtDepth | Глубина поиска — Максимальная глубина поиска локальных экстремумов ZigZag в барах. |
| ExtDeviation | Отклонение — Минимальное отклонение в пунктах от предыдущего экстремума для подтверждения нового пика или впадины. |
| ExtBackstep | Шаг отката — Количество баров для отката при проверке и удаления перекрывающихся экстремумов. |
| LowLevel | Нижний уровень — Значение нижнего уровня индикатора. |
| MedLevel | Средний уровень — Значение среднего уровня индикатора. |
| HighLevel | Верхний уровень — Значение верхнего уровня индикатора. |
| Window | Номер окна — Номер окна графика, на котором строится канал между точками ZigZag. |
| Channel | Тип канала — Тип канала: 0 — канал стандартного отклонения, ненулевое значение — регрессионный канал. |
| STD_width | Ширина канала — Множитель ширины канала стандартного отклонения. |
| 0 = Close (Price) | Тип цены — Тип цены для расчёта RSI: 0 = Close, 1 = Open, 2 = High, 3 = Low, 4 = (H+L)/2, 5 = (H+L+C)/3, 6 = (H+L+C+C)/4, другие значения = Close. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
extern int RSIPeriod=14;
extern int t3_period=8;
extern double b=0.7;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
extern int LowLevel=30;
extern int MedLevel=50;
extern int HighLevel=70;
extern int Window=1;
extern int Channel=0;
extern double STD_width=1.0;
extern int Price=0; // 0 = Close
double RSIBuffer[];
double t3_RSIBuffer[];
double ExtMapBuffer[];
double ExtMapBuffer2[];
double e1, e2, e3, e4, e5, e6, c1, c2, c3, c4, n, w1, w2, b2, b3;
int OldLastZigZag, OldPreviousZigZag;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectDelete("Channel");
}
int start()
{
// код доступен только после оплаты
}
int i,counted_bars=IndicatorCounted();
int shift, back,lasthighpos,lastlowpos,index;
double val,res;
double curlow,curhigh,lasthigh,lastlow;
if(Bars<=RSIPeriod) return(0);
if(counted_bars<1)
for(i=1;i<=RSIPeriod;i++) RSIBuffer[Bars-i]=0.0;
i=Bars-RSIPeriod-1;
if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;
if(Price<0 || Price>6) Price=0;
for(; i>=0; i--)
{
RSIBuffer[i]=iRSI(NULL,0,RSIPeriod,Price,i);
}
for(i=Bars-1; i>=0; i--)
{
e1 = w1*RSIBuffer[i] + w2*e1;
e2 = w1*e1 + w2*e2;
e3 = w1*e2 + w2*e3;
e4 = w1*e3 + w2*e4;
e5 = w1*e4 + w2*e5;
e6 = w1*e5 + w2*e6;
t3_RSIBuffer[i] = c1*e6 + c2*e5 + c3*e4 + c4*e3;
}
for(shift=Bars-1; shift>=0; shift--)
{
int n, sn, r, result;
bool ft=true;
for(n=1; n<ExtDepth; n++)
{
sn=shift+n;
if(ft)
{
if(t3_RSIBuffer[shift]<t3_RSIBuffer[sn]) result=shift;
else result=sn;
r=result;
ft=false;
}
else
{
if(t3_RSIBuffer[r]<t3_RSIBuffer[sn]) result=r;
else result=sn;
r=result;
}
}
index=r;
val=t3_RSIBuffer[index];
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((t3_RSIBuffer[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer[shift+back];
if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0;
}
}
}
ExtMapBuffer[shift]=Показано первые 50% кода (символов: 4353)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.