rapid_rsi__filtered.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «rapid_rsi__filtered.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, отображающий значение RSI, рассчитанное на основе сглаженной цены. Работает в отдельном окне графика и поддерживает отображение линий с настраиваемой толщиной. Использует несколько буферов для построения линий индикатора и промежуточных расчётных данных.
Поддерживает многопериодный анализ: при работе на таймфрейме, отличном от текущего, индикатор может запрашивать данные с более высоких таймфреймов и при необходимости интерполировать значения между барами. Доступен выбор источника цены для расчётов из большого набора вариантов, включая цены Хайкин Аши.
Встроенная система уведомлений позволяет настраивать вывод всплывающих сообщений, звуковых оповещений, отправку электронной почты и push-уведомлений при изменении направления индикатора. Все виды оповещений управляются отдельными параметрами.
Настройки программы
| Настройка | Описание |
|---|---|
| Time frame to use (TimeFrame) | Таймфрейм — Выбор таймфрейма для расчётов индикатора; при значении PERIOD_CURRENT используется текущий график. |
| Calculating period (pperiod) | Период расчёта — Период, используемый для расчёта RSI. |
| Price (pprice) | Источник цены — Выбор цены или расчётного значения, используемого в качестве входных данных для индикатора. |
| Filter period (filter) | Период фильтра — Период сглаживания, применяемый к цене перед расчётом RSI. |
| Filter type (filterType) | Тип фильтра — Метод скользящего среднего, используемый для фильтрации цены. |
| Turn alerts on (alertsOn) | Включить оповещения — Включает или отключает систему уведомлений индикатора. |
| Alerts on current (still opened) bar (alertsOnCurrent) | Оповещения на текущем баре — Определяет, проверять ли условие изменения направления на ещё не закрытом текущем баре. |
| Alerts should show pop-up message? (alertsMessage) | Всплывающее сообщение — Отображать ли всплывающее уведомление на графике при изменении направления индикатора. |
| Alerts should play alert sound? (alertsSound) | Звуковой сигнал — Воспроизводить ли звуковой сигнал при изменении направления индикатора. |
| Alerts should send email? (alertsEmail) | Отправка email — Отправлять ли электронное письмо при изменении направления индикатора. |
| Alerts should send push notification? (alertsPushNotif) | Push-уведомление — Отправлять ли push-уведомление на мобильное устройство при изменении направления индикатора. |
| Lines width (linesWidth) | Толщина линий — Толщина линий индикатора на графике. |
| Interpolate in multi time frame mode? (Interpolate) | Интерполяция — Выполнять ли интерполяцию значений между барами при работе в многопериодном режиме. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 clrDodgerBlue
#property indicator_color2 clrSandyBrown
#property indicator_color3 clrSandyBrown
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
#property strict
enum enPrices
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_average, // Average (high+low+open+close)/4
pr_medianb, // Average median body (open+close)/2
pr_tbiased, // Trend biased price
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage, // Heiken ashi average
pr_hamedianb, // Heiken ashi median body
pr_hatbiased // Heiken ashi trend biased price
};
extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Time frame to use
extern int pperiod = 14; // Calculating period
extern enPrices pprice = pr_close; // Price
extern int filter = 10; // Filter period
extern ENUM_MA_METHOD filterType = MODE_EMA; // Filter type
extern bool alertsOn = false; // Turn alerts on
extern bool alertsOnCurrent = true; // Alerts on current (still opened) bar
extern bool alertsMessage = true; // Alerts should show pop-up message?
extern bool alertsSound = false; // Alerts should play alert sound?
extern bool alertsEmail = false; // Alerts should send email?
extern bool alertsPushNotif = false; // Alerts should send push notification?
extern int linesWidth = 3; // Lines width
extern bool Interpolate = true; // Interpolate in multi time frame mode?
double buffer[];
double bufferda[];
double bufferdb[];
double trend[];
double prices[];
string indicatorFileName;
bool returnBars;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
void manageAlerts()
{
if (alertsOn)
{
int whichBar = 1; if (alertsOnCurrent) whichBar = 0;
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 adoWhat)
{
static string previousAlert="nothing";
static datetime previousTime;
string message;
if (previousAlert != adoWhat || previousTime != Time[forBar]) {
previousAlert = adoWhat;
previousTime = Time[forBar];
message = timeFrameToString(_Period)+" - "+Symbol()+" at "+TimeToStr(TimeLocal(),TIME_SECONDS)+" rapid rsi slop changed to "+adoWhat;
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(Symbol()+" rapid rsi",message);
if (alertsPushNotif) SendNotification(message);
if (alertsSound) PlaySound("alert2.wav");
}
}
double workRsi[][3];
#define _price 0
#define _change 1
#define _changa 2
double iRsi(double price, double period, int i, int instanceNo=0)
{
if (ArrayRange(workRsi,0)!=Bars) ArrayResize(workRsi,Bars);
int z = instanceNo*3;
int r = Bars-i-1;
workRsi[r][z+_price] = price;
double alpha = 1.0/periodПоказано первые 50% кода (символов: 9308)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.