rsi_-_mtf__alerts_nmc.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi_-_mtf__alerts_nmc.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Параметр TimeFrame задаёт таймфрейм для расчёта индикатора. По умолчанию используется текущий таймфрейм, но также доступны все стандартные периоды (M1–MN). Параметр Length определяет период расчёта RSI, а Price выбирает тип цены (Close, Open, High, Low и др.). RSIModifier позволяет умножить полученное значение RSI на заданный коэффициент.
Индикатор отображает два уровня — LevelUp и LevelDown — и рисует линии тренда при пересечении RSI этих уровней. Зоны выше LevelUp и ниже LevelDown выделены цветом, что позволяет визуально оценить силу тренда.
Система уведомлений поддерживает срабатывание при входе и выходе из зон (alertsOnZoneEnter, alertsOnZoneExit). Можно выбрать, на каком баре срабатывает оповещение (текущий или предыдущий). Доступны различные типы уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email.
Реализована поддержка мультитаймфреймного режима через специальные режимы работы calculateValue и returnBars, позволяющие передавать данные между таймфреймами.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм для расчёта индикатора. Может принимать названия периодов (M1, M5, M15, M30, H1, H4, D1, W1, MN) или специальные значения calculateValue и returnBars для межтаймфреймной передачи данных. По умолчанию — текущий таймфрейм. |
| Length | Период расчёта индикатора RSI. Устанавливается целым числом, по умолчанию 14. Значение автоматически ограничивается снизу до 1. |
| Price | Тип цены для расчёта RSI. 0 — Close, 1 — Open, 2 — High, 3 — Low, 4 — Median, 5 — Typical, 6 — Weighted. По умолчанию 0 (Close). |
| RSIModifier | Множитель для значения RSI. Позволяет скорректировать результат расчёта. Устанавливается числом, по умолчанию 1.0. |
| LevelUp | Верхний уровень RSI. При значении индикатора выше этого уровня определяется медвежий тренд. Устанавливается числом, по умолчанию 50. |
| LevelDown | Нижний уровень RSI. При значении индикатора ниже этого уровня определяется бычий тренд. Устанавливается числом, по умолчанию 50. |
| alertsOn | Главный переключатель системы уведомлений. При значении false все алерты отключены. Переключатель, по умолчанию включён (true). |
| alertsOnZoneEnter | Включает срабатывание алертов при входе RSI в зону (пересечение уровня вверх или вниз). Переключатель, по умолчанию включён (true). |
| alertsOnZoneExit | Включает срабатывание алертов при выходе RSI из зоны (пересечение уровня в обратном направлении). Переключатель, по умолчанию включён (true). |
| alertsOnCurrent | Определяет, на каком баре срабатывают алерты: true — на текущем баре, false — на предыдущем. Переключатель, по умолчанию включён (true). |
| alertsMessage | Включает или отключает всплывающие сообщения при срабатывании алертов. Переключатель, по умолчанию включён (true). |
| alertsSound | Включает или отключает звуковой сигнал при срабатывании алертов. Переключатель, по умолчанию включён (true). |
| alertsNotify | Включает или отключает push-уведомления при срабатывании алертов. Переключатель, по умолчанию отключён (false). |
| alertsEmail | Включает или отключает отправку email-уведомлений при срабатывании алертов. Переключатель, по умолчанию отключён (false). |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Gray
#property indicator_color2 LimeGreen
#property indicator_color3 LimeGreen
#property indicator_color4 Orange
#property indicator_color5 Orange
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_minimum 0
#property indicator_maximum 100
extern string TimeFrame = "Current time frame";
extern int Length = 14;
extern int Price = PRICE_CLOSE;
extern double RSIModifier = 1.0;
extern double LevelUp = 50;
extern double LevelDown = 50;
extern bool alertsOn = true;
extern bool alertsOnZoneEnter = true;
extern bool alertsOnZoneExit = true;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsNotify = false;
extern bool alertsEmail = false;
double rsi[];
double rsiUa[];
double rsiUb[];
double rsiDa[];
double rsiDb[];
double trend[];
string indicatorFileName;
bool returnBars;
bool calculateValue;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { rsi[0] = MathMin(limit+1,Bars-1); return(0); }
if (calculateValue || timeFrame == Period())
{
if (!calculateValue && trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
if (!calculateValue && trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for(int i=limit; i >= 0; i--)
{
rsi[i] = RSIModifier*iRSI(NULL,0,Length,Price,i);
rsiUa[i] = EMPTY_VALUE;
rsiUb[i] = EMPTY_VALUE;
rsiDa[i] = EMPTY_VALUE;
rsiDb[i] = EMPTY_VALUE;
trend[i] = trend[i+1];
if (rsi[i]>LevelUp) trend[i]= 1;
if (rsi[i]<LevelDown) trend[i]=-1;
if (rsi[i]<LevelUp && rsi[i]>LevelDown) trend[i]= 0;
if (!calculateValue && trend[i] == 1) PlotPoint(i,rsiUa,rsiUb,rsi);
if (!calculateValue && trend[i] == -1) PlotPoint(i,rsiDa,rsiDb,rsi);
}
manageAlerts();
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if (trend[limit]== 1) CleanPoint(limit,rsiUa,rsiUb);
if (trend[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for (i=limit;i>=0;i--)
{
int y = iBarShift(NULL,timeFrame,Time[i]);
Показано первые 50% кода (символов: 5894)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.