rsi 3 time frames & alerts.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rsi 3 time frames & alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает значения RSI на трёх настраиваемых таймфреймах и отображает их в отдельном окне. Каждая RSI-линия использует собственный период и тип цены, а таймфреймы задаются либо относительно текущего (например, текущий+1, текущий+2), либо в виде абсолютных значений.
Он отслеживает совпадение трендов на всех трёх таймфреймах и отмечает конвергенции стрелочными сигналами. Два пользовательских уровня (верхний и нижний) определяют зоны для классификации тренда каждой RSI.
Встроенная система оповещений поддерживает триггеры на пробое уровней, откаты от уровней и выравнивание относительно уровня 50. Уведомления могут выводиться в виде сообщений, звуковых сигналов и email-рассылок.
Настройки программы
| Настройка | Описание |
|---|---|
| RsiTimeFrame1 | Таймфрейм RSI 1 — Указывает таймфрейм для первой RSI-линии (например, "c+1" для следующего от текущего или абсолютное название). |
| RsiPeriod1 | Период RSI 1 — Период расчёта первой RSI. |
| RsiPrice1 | Тип цены RSI 1 — Тип цены для первой RSI (например, PRICE_CLOSE). |
| RsiTimeFrame2 | Таймфрейм RSI 2 — Указывает таймфрейм для второй RSI-линии. |
| RsiPeriod2 | Период RSI 2 — Период расчёта второй RSI. |
| RsiPrice2 | Тип цены RSI 2 — Тип цены для второй RSI. |
| RsiTimeFrame3 | Таймфрейм RSI 3 — Указывает таймфрейм для третьей RSI-линии. |
| RsiPeriod3 | Период RSI 3 — Период расчёта третьей RSI. |
| RsiPrice3 | Тип цены RSI 3 — Тип цены для третьей RSI. |
| LevelUp | Верхний уровень — Верхний пороговый уровень для классификации тренда RSI. |
| LevelDown | Нижний уровень — Нижний пороговый уровень для классификации тренда RSI. |
| Interpolate | Интерполяция — Включает или выключает интерполяцию значений между барами разных таймфреймов. |
| alertsOnLevelsBreak | Оповещение о пробое уровней — Разрешает оповещения при пробое верхнего или нижнего уровня RSI. |
| alertsOnLevelsRetrace | Оповещение об откате от уровней — Разрешает оповещения при откате RSI от верхнего или нижнего уровня. |
| alertsOn50Align | Оповещение о выравнивании на 50 — Разрешает оповещения при одновременном выравнивании всех трёх RSI по уровню 50. |
| alertsOn | Включить оповещения — Главный переключатель системы оповещений. |
| alertsOnCurrent | Оповещение на текущем баре — Определяет, на каком баре (текущем или предыдущем) отслеживать события. |
| alertsMessage | Оповещение сообщением — Выводить оповещения в виде сообщений на графике. |
| alertsSound | Оповещение звуком — Воспроизводить звуковой сигнал при срабатывании оповещения. |
| alertsEmail | Оповещение по email — Отправлять email-уведомление при срабатывании оповещения. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Blue
#property indicator_color3 PaleVioletRed
#property indicator_color4 Gold
#property indicator_color5 PaleVioletRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 3
#property indicator_width5 3
#property indicator_minimum 0
#property indicator_maximum 100
extern string RsiTimeFrame1 = "c+1";
extern int RsiPeriod1 = 2;
extern int RsiPrice1 = PRICE_CLOSE;
extern string RsiTimeFrame2 = "c+2";
extern int RsiPeriod2 = 2;
extern int RsiPrice2 = PRICE_CLOSE;
extern string RsiTimeFrame3 = "c+3";
extern int RsiPeriod3 = 2;
extern int RsiPrice3 = PRICE_CLOSE;
extern double LevelUp = 93;
extern double LevelDown = 7;
extern bool Interpolate = true;
extern bool alertsOnLevelsBreak = false;
extern bool alertsOnLevelsRetrace = false;
extern bool alertsOn50Align = true;
extern bool alertsOn = false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = false;
extern bool alertsEmail = false;
double rsi1[];
double rsi2[];
double rsi3[];
double arrowMidUp[];
double arrowMidDn[];
string indicatorFileName;
int timeFrame1;
int timeFrame2;
int timeFrame3;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
double trends[][7];
#define trendm1 0
#define trendm2 1
#define trendm3 2
#define trendl1 3
#define trendl2 4
#define trendl3 5
#define trendmm 6
int start()
{
// код доступен только после оплаты
}
void setTrends(double& rsi[], int trendm,int trendl, int i)
{
int r = Bars-i-1;
trends[r][trendm] = trends[r-1][trendm];
trends[r][trendl] = trends[r-1][trendl];
if (rsi[i]>LevelUp) trends[r][trendl] = -1;
if (rsi[i]<LevelDown) trends[r][trendl] = -1;
if (rsi[i]<LevelUp && rsi[i]>LevelDown) trends[r][trendl] = 0;
if (rsi[i]>50) trends[r][trendm] = 1;
if (rsi[i]<50) trends[r][trendm] = -1;
}
void interpolate(double& buffer[], datetime time, int i)
{
for (int n = 1; (i+n) < Bars && Time[i+n] >= time; n++) continue;
if (buffer[i] == EMPTY_VALUE || buffer[i+n] == EMPTY_VALUE) n=-1;
double increment = (buffer[i+n] - buffer[i])/ n;
for (int k = 1; k < n; k++) buffer[i+k] = buffer[i] + k*increment;
}
void manageAlerts()
{
if (alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1;
if (alertsOnLevelsBreak || alertsOnLevelsRetrace)
{
static datetime time1 = 0;
static string mess1 = "";
int tfBar = iBarShift(NULL,0,iTime(NULL,timeFrame1,whichBar));
int forBar = Bars-whichBar-1;
Показано первые 50% кода (символов: 9034)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.