RSI
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «f-rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader, рассчитывающий аналитический показатель RSI (Relative Strength Index). Индикатор отображает значения в отдельном подокне в диапазоне от 0 до 100 и использует три буфера для построения основной линии и вспомогательных линий положительной и отрицательной динамики.
Индикатор поддерживает три режима расчёта, выбираемые параметром Type. В стандартном режиме выполняется классический расчёт RSI на основе разниц цен закрытия. В режиме Shaff-RSI для определения динамики используется встроенная функция MACD с заданными параметрами быстрой и медленной скользящих. В режиме FATL-RSI применяется собственная функция фильтрации ценовых данных.
Индикатор рассчитывает начальные значения за период, заданный параметром RSIPeriod, после чего переходит на скользящее среднее для последующих баров. Подходит для анализа ценовых данных и технических показателей в среде MetaTrader.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIPeriod | Период расчёта индикатора RSI, определяющий количество баров для начального накопления данных. |
| FastMA | Период быстрой скользящей средней, используемой при расчёте в режиме Shaff-RSI. |
| SlowMA | Период медленной скользящей средней, используемой при расчёте в режиме Shaff-RSI. |
| Signal | Период сигнальной линии, используемый при расчёте в режиме Shaff-RSI. |
| Type | Тип расчёта индикатора: 0 — стандартный RSI, 1 — Shaff-RSI, 2 — FATL-RSI. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
extern int RSIPeriod=9;
extern int FastMA=23;
extern int SlowMA=50;
extern int Signal=5;
extern int Type=1;
double RSIBuffer[];
double PosBuffer[];
double NegBuffer[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int i,counted_bars=IndicatorCounted();
double rel,negative,positive;
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;
while(i>=0)
{
double sumn=0.0,sump=0.0;
if(i==Bars-RSIPeriod-1)
{
int k=Bars-2;
while(k>=i)
{
rel=GetValue(i);
if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIPeriod;
negative=sumn/RSIPeriod;
}
else
{
rel=GetValue(i);
if(rel>0) sump=rel;
else sumn=-rel;
positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
}
PosBuffer[i]=positive;
NegBuffer[i]=negative;
if(negative==0.0) RSIBuffer[i]=0.0;
else RSIBuffer[i]=100.0-100.0/(1+positive/negativeПоказано первые 50% кода (символов: 2801)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.