Rsiv
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsiv.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Rsiv — это пользовательский индикатор для MetaTrader 5, отображаемый в отдельном окне с тремя буферами данных. Он рассчитывает соотношение набранных очков роста и падения цены за заданный период RsivPeriod и преобразует его в процентный индикатор, аналогичный RSI, но с иной формулой нормализации.
Индикатор использует линейную регрессию (LinearRegressionPeriod) для оценки тренда и волатильность на основе ATR и EMA (VolatilityPeriod) для построения динамических уровней верхней и нижней границ. Базовые уровни задаются параметрами BasicLevelUp и BasicLevelDown.
Результат расчёта выводится в три линии: основная линия Rsiv (bufferMi), верхний уровень (bufferUp) и нижний уровень (bufferDn). Все вычисления выполняются на каждом тике в функции start().
Настройки программы
| Настройка | Описание |
|---|---|
| RsivPeriod | Период Rsiv — Период усреднения для расчёта соотношения очков роста и падения в основном индикаторе. |
| LinearRegressionPeriod | Период линейной регрессии — Период расчёта линейной регрессии, используемой для оценки склона цены. |
| VolatilityPeriod | Период волатильности — Период расчёта волатильности на основе ATR и EMA для формирования динамических уровней. |
| Price | Тип цены — Тип цены, используемый в расчётах индикатора (например, PRICE_CLOSE). |
| BasicLevelUp | Верхний базовый уровень — Верхний базовый уровень для отображения динамической верхней границы индикатора. |
| BasicLevelDown | Нижний базовый уровень — Нижний базовый уровень для отображения динамической нижней границы индикатора. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 DeepSkyBlue
#property indicator_color2 PaleVioletRed
#property indicator_color3 DeepSkyBlue
#property indicator_width3 2
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
extern int RsivPeriod = 30;
extern int LinearRegressionPeriod = 40;
extern int VolatilityPeriod = 7;
extern int Price = PRICE_CLOSE;
extern double BasicLevelUp = 70;
extern double BasicLevelDown = 30;
double bufferUp[];
double bufferDn[];
double bufferMi[];
double prices[];
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
double work[][7];
#define _diff 0
#define _upScore 1
#define _upDiff 2
#define _dnScore 3
#define _dnDiff 4
#define _lrValue 5
#define _levelMo 6
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int limit,r,i;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=MathMin(Bars-counted_bars,Bars-1);
if (ArrayRange(work,0)!=Bars) ArrayResize(work,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
work[r][_lrValue] = 3.0*iMA(NULL,0,LinearRegressionPeriod,0,MODE_LWMA,Price,i)-2.0*iMA(NULL,0,LinearRegressionPeriod,0,MODE_SMA,Price,i);
work[r][_diff] = price - work[r][_lrValue];
work[r][_upScore] = 0;
work[r][_upDiff] = 0;
work[r][_dnScore] = 0;
work[r][_dnDiff] = 0;
if (work[r][_diff]>work[r-1][_diff])
{
work[r][_upScore] = 1;
work[r][_upDiff] = work[r][_diff]Показано первые 50% кода (символов: 2772)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.