d_rsi.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «d_rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает и отображает индикатор относительной силы (RSI) в отдельном окне графика MetaTrader 4. Значения индикатора ограничены диапазоном от 0 до 100 и отрисовываются в виде линии. На уровне 30 и 70 проведены горизонтальные уровни для визуальной оценки перекупленности и перепроданности.
Параметр RSIPeriod задаёт период расчёта индикатора. Индикатор использует внутренние буферы для накопления данных и сглаживания результатов перед отрисовкой. Обработка выполняется для каждого видимого бара при обновлении графика.
Индикатор предназначен для аналитических целей и не выполняет торговых действий.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIPeriod | Период RSI — Целочисленный период расчёта индикатора относительной силы |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_level1 30
#property indicator_level2 70
extern int RSIPeriod=11;
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=Close[k]-Close[k+1];
if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIPeriod;
negative=sumn/RSIPeriod;
}
else
{
rel=Close[i]-Close[i+1];
if(rel>0) sump=rel;
else sumn=-rel;
positive=(PosBuffer[i+1]*(RSIPeriod-2)+sump)/RSIPeriod;
negative=(NegBuffer[i+1]*(RSIPeriod-2)+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);
RSIBuffer[i] =
0.433154403793*RSIBuffer[i+0]
+0.364936248838*RSIBuffer[i+1]
+0.2483161287091*RSIBuffer[i+2]
+0.1159127094262*RSIBuffer[i+3]
+0.001920177025782*RSIBuffer[i+4]
-0.0690619159350*RSIBuffer[i+5]
-0.0890366343384*RSIBuffer[i+6]
-0.0670352313955*RSIBuffer[i+7]
-0.02354570920082*RSIBuffer[i+8]
+0.01860246173456*RSIBuffer[i+9]
+0.0426761569010*RSIBuffer[i+10]
+0.0429876844454*RSIBuffer[i+11]
+0.02477765082083*RSIBuffer[i+12]
-0.0001576627378414*RSIBuffer[i+13]
-0.01967662445848*RSIBuffer[i+14]
-0.02646547548004*RSIBuffer[i+15]
-0.02024560032283*RSIBuffer[i+16]
-0.00623702818584*RSIBuffer[i+17]
+0.00780018663194*RSIBuffer[i+18]
+0.01584087110996*RSIBuffer[i+19]
+0.01529850741755*RSIBuffer[i+20]
+0.00776771039355*RSIBuffer[i+21]
-0.002822554123202*RSIBuffer[i+22Показано первые 50% кода (символов: 4417)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.