rsx_of_super_smoother.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsx_of_super_smoother.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор рассчитывает модифицированный вариант RSI с возможностью дополнительного сглаживания. В основе расчёта лежит анализ ценового импульса и его абсолютной величины, которые преобразуются в диапазон от 0 до 100. При необходимости сглаживания применяется пользовательский алгоритм фильтрации ценовых данных.
Индикатор отображается в отдельном окне и использует уровни для определения направления тренда. Значения выше верхнего уровня и ниже нижнего уровня сигнализируют о смене направления движения цены. Линии отрисовываются раздельно для бычьего и медвежьего трендов.
Рабочие параметры включают длину периода RSI, тип цены для расчёта, верхний и нижний уровни, а также период сглаживания. По умолчанию используются стандартные значения, близкие к классическому RSI. Индикатор предназначен для технического анализа ценовых данных на платформе MetaTrader 5.
Настройки программы
| Настройка | Описание |
|---|---|
| Length | Длина периода расчёта индикатора RSI. Определяет количество баров, используемых для вычисления ценового импульса. Минимальное значение — 1. |
| Price | Тип цены для расчёта. 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted. |
| LevelUp | Верхний уровень индикатора. При значении индикатора выше этого уровня тренд считается направленным вверх. |
| LevelDown | Нижний уровень индикатора. При значении индикатора ниже этого уровня тренд считается направленным вниз. |
| SmoothLength | Период дополнительного сглаживания ценовых данных. Если значение больше 1, перед расчётом RSI цены проходят через алгоритм сглаживания. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Gray
#property indicator_color2 LimeGreen
#property indicator_color3 LimeGreen
#property indicator_color4 Orange
#property indicator_color5 Orange
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 3
#property indicator_width5 3
#property indicator_minimum 0
#property indicator_maximum 100
extern int Length = 14;
extern int Price = PRICE_CLOSE;
extern double LevelUp = 70;
extern double LevelDown = 30;
extern double SmoothLength = 20;
double rsi[];
double rsiUa[];
double rsiUb[];
double rsiDa[];
double rsiDb[];
double prc[];
double trend[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
double wrkBuffer[][13];
int start()
{
// код доступен только после оплаты
}
int i,r,counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);
double Kg = (3.0)/(2.0+Length);
double Hg = 1.0-Kg;
if (trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
if (trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
if (SmoothLength>1)
price = iSsm(price,SmoothLength,i);
wrkBuffer[r][12] = price;
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continue; }
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
double moa = MathAbs(mom);
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
wrkBuffeПоказано первые 50% кода (символов: 4302)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.