rsi_-_ma200_mtf.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_-_ma200_mtf.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для платформы MetaTrader 5 рассчитывает значение Relative Strength Index (RSI) на выбранном пользователем таймфрейме и отображает его в отдельном окне графика. К additionally вычисляется экспоненциальное скользящее среднее (EMA) от значений RSI, что позволяет анализировать динамику импульса.
Индикатор визуализирует зоны перекупленности и перепроданности с помощью верхней и нижней граничных линий. При пересечении RSI этих уровней на графике могут отображаться стрелки, сигнализирующие о потенциальных разворотах.
Индикатор поддерживает систему уведомлений: всплывающие сообщения, звуковые сигналы и email-оповещения, которые срабатывают при пересечении RSI заданных пороговых уровней.
Настройки программы
| Настройка | Описание |
|---|---|
| RSIPeriod | Период расчёта индикатора RSI. По умолчанию равен 50. |
| EMAPeriod | Период экспоненциального скользящего среднего, рассчитываемого от значений RSI. По умолчанию равен 200. |
| PriceType | Тип цены для расчёта RSI: 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted. |
| note3 | Информационная подсказка: указывает, что параметр timeFrame задаёт таймфрейм графика. |
| note4 | Информационная подсказка: перечисляет доступные минутные таймфреймы (M1, M5, M15, M30). |
| note5 | Информационная подсказка: перечисляет доступные часные и дневные таймфреймы (H1, H4, D1). |
| note6 | Информационная подсказка: перечисляет доступные недельные и месячные таймфреймы (W1, MN1). |
| timeFrame | Строковый параметр, задающий таймфрейм для расчёта RSI. Поддерживает значения: Current time frame, M1, M5, M15, M30, H1, H4, D1, W1, MN1. |
| overBought | Уровень перекупленности RSI. Значения RSI выше этого уровня отображаются как верхняя граничная линия. По умолчанию равен 50. |
| overSold | Уровень перепроданности RSI. Значения RSI ниже этого уровня отображаются как нижняя граничная линия. По умолчанию равен 50. |
| showArrows | Включает отображение стрелок на графике при пересечении RSI пороговых уровней. |
| alertsOn | Включает или отключает систему уведомлений индикатора. |
| alertsMessage | Включает отображение всплывающих сообщений при пересечении RSI пороговых уровней. |
| alertsSound | Включает воспроизведение звукового сигнала при пересечении RSI пороговых уровней. |
| alertsEmail | Включает отправку email-уведомлений при пересечении RSI пороговых уровней. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_minimum 30
#property indicator_maximum 70
#property indicator_color1 DimGray
#property indicator_color2 Lime
#property indicator_color3 Red
#property indicator_color4 Blue
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 1
#property indicator_style4 STYLE_SOLID
#property indicator_level1 50
#property indicator_levelcolor Black
#property indicator_levelstyle 0
extern int RSIPeriod = 50;
extern int EMAPeriod = 200;
extern string note1 = "0=close;1=open;2=hi;3=low";
extern string note2 = "4=median;5=typical;6=weighted";
extern int PriceType = 3;
extern string note3 = "Chart Time Frame";
extern string note4 = "1=M1, 5=M5, 15=M15, 30=M30";
extern string note5 = "60=H1, 240=H4, 1440=D1";
extern string note6 = "10080=W1, 43200=MN1";
extern string timeFrame = "Current time frame";
extern int overBought = 50;
extern int overSold = 50;
extern bool showArrows = false;
extern bool alertsOn = false;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
double RSIBuffer[];
double EMABuffer[];
double Upper[];
double Lower[];
int TimeFrame;
datetime TimeArray[];
int maxArrows;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
DeleteArrows();
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int limit;
int i,y;
if(counted_bars<0) return(-1);
limit=Bars-counted_bars;
ArrayCopySeries(TimeArray ,MODE_TIME ,NULL,TimeFrame);
for(i=0,y=0; i<limit; i++)
{
if(Time[i]<TimeArray[y]) y++;
{
RSIBuffer[i] = iRSI(NULL,TimeFrame,RSIPeriod,PriceType,y);
}
}
for(i=0,y=0; i<limit; i++)
{
if(Time[i]<TimeArray[y]) y++;
{
EMABuffer[i] = iMAOnArray(RSIBuffer,Bars,EMAPeriod,0,MODE_EMA,i);
}
}
for(i=limit; i>=0; i--)
{
if (RSIBuffer[i] > overBought)
{
Upper[i] = RSIBuffer[i]; Upper[i+1] = RSIBuffer[i+1];
}
else
{ Upper[i] = EMPTY_VALUE;
if (Upper[i+2] == EMPTY_VALUE)
{
Upper[i+1] = EMPTY_VALUE;
}
if (RSIBuffer[i] < overSold)
{
Lower[i] = RSIBuffer[i]; Lower[i+1] = RSIBuffer[i+1];
}
else
{
Lower[i] = EMPTY_VALUE;
if (Lower[i+2] == EMPTY_VALUE)
{
Lower[i+1] = EMPTY_VALUE;
}
}
}
}
if (showArrows)
for (i=0; i<WindowBarsPerChart() ;i++)
{
if (RSIBuffer[i]>overBought && RSIBuffer[i+1]<overBought)
{
DrawArrow(i,"down");
}
if (RSIBuffer[i]<overSold && RSIBuffer[i+1]>overSold)
{
DrawArrow(i,"up");
}
}
if (aleПоказано первые 50% кода (символов: 5240)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.