!!rsi - nrp mtf + divergence + alerts.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!!rsi - nrp mtf + divergence + alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает значение RSI сглаженным методом и отображает его в отдельном окне графика. Поддерживает работу на различных таймфреймах, включая межтаймфреймовой режим, в котором данные старшего таймфрейма интерполируются на текущий график.
Индикатор определяет классические и скрытые дивергенции — бычьи и медвежьи — между движением цены и значениями RSI. При обнаружении дивергенций рисуются линии тренда на графике цены и в окне индикатора, а также отображаются стрелки-маркеры.
Предусмотрены уровни перекупленности и перепроданности с возможностью уведомлений при их пересечении. Система оповещений поддерживает всплывающие сообщения, звуковые сигналы, push-уведомления и электронную почту как для дивергенций, так и для общих событий индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм, на котором работает индикатор. Возможна передача строки «calculateValue» или «returnBars» для специальных режимов работы. |
| RsiPeriod | Период расчёта индикатора RSI. |
| Price | Тип цены, используемый для расчёта значения RSI. |
| DivergearrowSize | Размер стрелок-маркеров дивергенций на графике. |
| drawDivergences | Включает или отключает отображение стрелок-маркеров дивергенций на графике. |
| ShowClassicalDivergence | Отображение классических дивергенций (бычьих и медвежьих). |
| ShowHiddenDivergence | Отображение скрытых дивергенций (бычьих и медвежьих). |
| drawIndicatorTrendLines | Рисование линий тренда в окне индикатора для дивергенций. |
| drawPriceTrendLines | Рисование линий тренда на графике цены для дивергенций. |
| divergenceBullishColor | Цвет маркеров и линий бычьих дивергенций. |
| divergenceBearishColor | Цвет маркеров и линий медвежьих дивергенций. |
| drawLinesIdentificator | Идентификатор-префикс для имен объектов линий тренда на графике. |
| divergenceAlert | Включает или отключает уведомления при обнаружении дивергенций. |
| divergenceAlertsMessage | Всплывающие сообщения при обнаружении дивергенций. |
| divergenceAlertsSound | Звуковой сигнал при обнаружении дивергенций. |
| divergenceAlertsEmail | Отправка уведомлений на электронную почту при обнаружении дивергенций. |
| divergenceAlertsNotify | Push-уведомления при обнаружении дивергенций. |
| divergenceAlertsSoundName | Имя звукового файла для уведомлений о дивергенциях. |
| alertsOn | Включает или отключает систему общих уведомлений индикатора. |
| alertsOnCurrent | Определяет, на каком баре отслеживать событие: на текущем или на предыдущем. |
| alertsMessage | Всплывающие сообщения при срабатывании общих событий индикатора. |
| alertsSound | Звуковой сигнал при срабатывании общих событий индикатора. |
| alertsNotify | Push-уведомления при срабатывании общих событий индикатора. |
| alertsEmail | Отправка уведомлений на электронную почту при срабатывании общих событий индикатора. |
| soundFile | Имя звукового файла для общих уведомлений индикатора. |
| Interpolate | Включает или отключает интерполяцию значений RSI между барами старшего таймфрейма при межтаймфреймовой работе. |
| levelOb | Уровень перекупленности для индикатора RSI. |
| levelOs | Уровень перепроданности для индикатора RSI. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 7
#property indicator_color1 Aqua
#property indicator_color2 Magenta
#property indicator_color3 SteelBlue
#property indicator_color4 LimeGreen
#property indicator_color5 LimeGreen
#property indicator_color6 Orange
#property indicator_color7 Orange
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 2
#property indicator_width6 2
#property indicator_width7 2
#property indicator_levelcolor DarkSlateGray
extern string TimeFrame = "Current time frame";
extern int RsiPeriod = 14;
extern int Price = 0;
extern int DivergearrowSize = 0;
extern bool drawDivergences = true;
extern bool ShowClassicalDivergence = true;
extern bool ShowHiddenDivergence = true;
extern bool drawIndicatorTrendLines = true;
extern bool drawPriceTrendLines = true;
extern color divergenceBullishColor = Lime;
extern color divergenceBearishColor = Magenta;
extern string drawLinesIdentificator = "rsidiverge1";
extern bool divergenceAlert = true;
extern bool divergenceAlertsMessage = true;
extern bool divergenceAlertsSound = true;
extern bool divergenceAlertsEmail = false;
extern bool divergenceAlertsNotify = false;
extern string divergenceAlertsSoundName = "alert1.wav";
extern bool alertsOn = true;
extern bool alertsOnCurrent = false;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsNotify = false;
extern bool alertsEmail = false;
extern string soundFile = "alert2.wav";
extern bool Interpolate = true;
extern double levelOb = 70;
extern double levelOs = 30;
double bullishDivergence[],bearishDivergence[],rsi[],valUa[],valUb[],valDa[],valDb[],valc[];
string indicatorName,labelNames,indicatorFileName;
bool calculateValue,returnBars;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
int length=StringLen(labelNames);
for(int i=ObjectsTotal()-1; i>=0; i--)
{
string name = ObjectName(i);
if(StringSubstr(name,0,length) == labelNames) ObjectDelete(name);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
double workRsi[][3];
#define _price 0
#define _change 1
#define _changa 2
double iRsi(double price, double period, int shift, int forz=0)
{
if (ArrayRange(workRsi,0)!=Bars) ArrayResize(workRsi,Bars);
int z = forz*3;
int i = Bars-shift-1;
double alpha = 1.0/period;
workRsi[i][_price+z] = price;
if (i<period)
{
int k; double sum = 0; for (k=0; k<period && (i-k-1)>=0; k++) sum += MathAbs(workRsi[i-k][_price+z]-workRsi[i-k-1][_price+z]);
workRsi[i][_change+z] = (workRsi[i][_price+z]-workRsi[0][_price+z])/MathMax(k,1);
workRsi[i][_changa+z] = sum/MathMax(k,1);
Показано первые 50% кода (символов: 13851)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.