Unsmoothed RSI
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «unsmoothed_rsi_3.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный исходный код представляет собой пользовательский индикатор для MetaTrader 5, написанный на языке MQL5. Индикатор отображается в отдельном окне и рассчитывает осциллятор, который в коде называется "Unsmoothed RSI". Индикатор строит одну линию, значения которой ограничены диапазоном от 0 до 100.
В основе расчёта лежит анализ изменения цены выбранного типа (Applied price) за один бар. Положительные и отрицательные изменения накапливаются отдельно, после чего вычисляется их соотношение. Итоговое значение дополнительно сглаживается с использованием настраиваемого параметра Smooth. При отсутствии отрицательных изменений индикатор принимает максимальное значение.
Индикатор предоставляет три входных параметра: Length (период усреднения), Price (тип цены) и Smooth (степень сглаживания). Все параметры объявлены как extern и доступны для изменения в настройках индикатора. Индикатор не содержит торговых функций и предназначен исключительно для визуального анализа.
Настройки программы
| Настройка | Описание |
|---|---|
| Length | Период усреднения для расчёта положительных и отрицательных изменений цены. Определяет количество баров, участвующих в вычислении соотношения. Значение по умолчанию 14. |
| Price | Тип цены, используемой для расчёта. Значения: 0 - Close, 1 - Open, 2 - High, 3 - Low, 4 - Median, 5 - Typical, 6 - Weighted. Значение по умолчанию 0 (Close). |
| Smooth | Параметр сглаживания итогового значения индикатора. Чем выше значение, тем сильнее сглаживание. Значение по умолчанию 5. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Yellow
#property indicator_minimum 0
#property indicator_maximum 100
extern int Length=14;
extern int Price=0; // Applied price
extern double Smooth = 5;
double U_RSI[];
double Pos[], Neg[];
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for (int pos=limit; pos>=0; pos--)
{
double Diff=iMA(NULL, 0, 1, 0, MODE_SMA, Price, pos)-iMA(NULL, 0, 1, 0, MODE_SMA, Price, pos+1);
if (Diff>0)
{ Pos[pos]=Diff; Neg[pos]=0; }
else { Pos[pos]=0; Neg[pos]=-Diff; }
}
for (pos=limit; pos>=0; pos--)
{
double P=iMAOnArray(Pos, 0, Length, 0, MODE_SMA, pos);
double N=iMAOnArray(Neg, 0, Length, 0, MODE_SMA, pos);
if (N==0)
U_RSI[posПоказано первые 50% кода (символов: 1962)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.