nonlagrsi_nrp_mtfalerts.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «nonlagrsi_nrp_mtfalerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой индикатор для MetaTrader 5, рассчитывающий аналитический показатель NonLag RSI — модифицированный индекс относительной силы с уменьшением задержки за счёт скользящего среднего без запаздывания. Индикатор отображает значение RSI в отдельном подокне и отмечает точки изменения тренда.
Поддерживается работа на различных таймфреймах, включая мультитаймфреймный режим, когда данные берутся с более высокого таймфрейма. Индикатор позволяет задавать периоды расчёта RSI и нелающего скользящего среднего, а также применять фильтр на основе стандартного отклонения изменений.
Встроена система уведомлений, поддерживающая несколько типов оповещений: всплывающие сообщения, звуковые сигналы, email-уведомления и push-уведомления. Оповещения срабатывают при изменении направления тренда индикатора.
Индикатор рисует три буфера: линию RSI и два буфера для отметок точек разворота тренда, с настраиваемыми уровнями перекупленности и перепроданности.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором рассчитывается индикатор. Допускается указание мультитаймфрейма или специальных значений для режимов расчёта и возврата баров. |
| RsiPeriod | Период расчёта индекса относительной силы (RSI). |
| NlmPeriod | Период расчёта нелающего скользящего среднего, применяемого к значениям RSI для уменьшения задержки сигнала. |
| Price | Тип цены, используемый для расчёта индикатора (0 — Close, 1 — Open, 2 — High, 3 — Low и т. д.). |
| PctFilter | Фильтр в процентах от стандартного отклонения изменений RSI. При значении больше нуля сглаживает показатель, если текущее изменение меньше порогового значения. |
| alertsOn | Включает или отключает систему оповещений индикатора. |
| alertsOnCurrent | Определяет, на каком баре отслеживать изменение тренда: на текущем (true) или на предыдущем (false). |
| alertsMessage | Включает всплывающие сообщения в терминале при срабатывании оповещений. |
| alertsSound | Включает воспроизведение звукового сигнала при срабатывании оповещений. |
| alertsEmail | Включает отправку email-уведомлений при срабатывании оповещений. |
| alertsNotify | Включает отправку push-уведомлений при срабатывании оповещений. |
| levelOb | Уровень перекупленности для линии RSI, отображается как горизонтальная линия на графике. |
| levelOs | Уровень перепроданности для линии RSI, отображается как горизонтальная линия на графике. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 PaleVioletRed
#property indicator_color3 PaleVioletRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_levelcolor DarkSlateGray
extern string TimeFrame = "Current time frame";
extern int RsiPeriod = 21;
extern int NlmPeriod = 5;
extern int Price = 0;
extern double PctFilter = 0;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
extern bool alertsNotify = false;
extern double levelOb = 70;
extern double levelOs = 30;
double rsi[];
double nlmDa[];
double nlmDb[];
double trend[];
string indicatorFileName;
bool returnBars;
bool calculateValue;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
double work[][2];
#define _bchang 0
#define _achang 1
int start()
{
// код доступен только после оплаты
}
void manageAlerts()
{
if (alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1;
if (trend[whichBar] != trend[whichBar+1])
{
if (trend[whichBar] == 1) doAlert(whichBar,"up");
if (trend[whichBar] == -1) doAlert(whichBar,"down");
}
}
}
void doAlert(int forBar, string doWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;
if (previousAlert != doWhat || previousTime != Time[forBar]) {
previousAlert = doWhat;
previousTime = Time[forBar];
message = timeFrameToString(Period())+" "+Symbol()+" at "+TimeToStr(TimeLocal(),TIME_SECONDS)+" NonLag Rsi trend changed to "+doWhat;
if (alertsMessage) Alert(message);
if (alertsNotify) SendNotification(StringConcatenate(Symbol(), Period() ," NonLag RПоказано первые 50% кода (символов: 7140)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.