Waddah Attar RSI Level
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «11_rsi_levels.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор отображает на графике ценовые уровни, соответствующие значениям RSI (20, 30, 40, 50, 60, 70, 80), рассчитанные на выбранном таймфрейме. Для каждого уровня выполняется линейная интерполяция на основе текущих и предыдущих значений RSI и цен закрытия, после чего уровни отрисовываются горизонтальными линиями с текстовыми метками. Индикатор использует 8 буферов и работает в основном окне графика.
Расчёт выполняется для каждого бара с учётом сдвига к указанному таймфрейму через функцию iBarShift. Значения RSI и цены закрытия берутся на двух соседних барах выбранного таймфрейма. В случае нулевой разницы RSI или цен закрытия применяются дополнительные проверки с переходом на более ранние бары.
Настраиваемые параметры включают период RSI и таймфрейм расчёта. Уровни удаляются при деинициализации индикатора. Индикатор не использует торговые API и не взаимодействует с позициями или ордерами.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIDayPeriod | Период расчёта индикатора RSI, используемый в функциях iRSI для получения значений RSI на выбранном таймфрейме. |
| TimeFrame | Таймфрейм, на котором выполняется расчёт значений RSI и цен закрытия для определения ценовых уровней. По умолчанию соответствует H4 (240). |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Gray // RSI 50
#property indicator_color2 DarkGreen // RSI 40
#property indicator_color3 Maroon // RSI 60
#property indicator_color4 Green // RSI 30
#property indicator_color5 Crimson // RSI 70
#property indicator_color6 Lime // RSI 20
#property indicator_color7 Red // RSI 80
extern int RSIDayPeriod = 8;
extern int TimeFrame = 240;
double P1Buffer[]; // RSI 50
double P2Buffer[]; // RSI 40
double P3Buffer[]; // RSI 60
double P4Buffer[]; // RSI 30
double P5Buffer[]; // RSI 70
double P6Buffer[]; // RSI 20
double P7Buffer[]; // RSI 80
int myPeriod = PERIOD_D1;
double L80, L70, L60, L50, L40, L30, L20;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectDelete("rsi20" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi20" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("rsi30" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi30" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("rsi40" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi40" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("rsi50" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi50" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("rsi60" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi60" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("rsi70" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi70" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("rsi80" + DoubleToStr(RSIDayPeriod, 0));
ObjectDelete("txtrsi80" + DoubleToStr(RSIDayPeriod, 0));
Comment("");
return(0);
}
int start()
{
// код доступен только после оплаты
}
int i, dayi, counted_bars = IndicatorCounted();
double rsi1, rsi2, c1, c2, drsi, dc;
if(counted_bars < 0)
return(-1);
if(counted_bars > 0)
counted_bars--;
int limit = Bars - counted_bars;
for(i = limit - 1; i >= 0; i--)
{
dayi = iBarShift(Symbol(), TimeFrame, Time[i],true);
if(dayi != -1)
{
rsi1 = iRSI(Symbol(), TimeFrame, RSIDayPeriod, PRICE_CLOSE, dayi + 1);
rsi2 = iRSI(Symbol(), TimeFrame, RSIDayPeriod, PRICE_CLOSE, dayi + 2);
c1 = iClose(Symbol(), TimeFrame, dayi + 1);
c2 = iClose(Symbol(), TimeFrame, dayi + 2);
drsi = rsi1 - rsi2;
if(drsi == 0)
{
rsi2 = iRSI(Symbol()Показано первые 50% кода (символов: 5027)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.