← К каталогу
Исходный код · ID 1937

rapid_rsi__filtered.mq5

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор для 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 и перейдите к оплате.

Стоимость полного кода
930,80₽ ≈ $11.38