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

StepMA of RSI Adaptive EMA

stepma_of_rsi_adaptive_ema_2.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

StepMA of RSI Adaptive EMA — это пользовательский индикатор для MetaTrader 4, отображаемый в отдельном окне. Он рассчитывает модифицированный RSI на выбранной цене и применяет к нему адаптивную StepMA-линию с настраиваемыми параметрами чувствительности и шага. Индикатор строит четыре графика: линию RSI, линию StepMA и два буфера точек для визуализации смены тренда.

Индикатор отслеживает изменение направления тренда и может уведомлять пользователя через различные каналы: всплывающие сообщения, push-уведомления, звуковые сигналы и электронную почту. Доступна настройка срабатывания алертов на текущем или закрытом баре.

Поддерживается широкий набор типов цен для расчёта, включая стандартные (Close, Open, High, Low) и цены Хаинкина Аши (Heikin Ashi). Параметры длины RSI, чувствительности и шага задаются пользователем непосредственно в настройках индикатора.

Настройки программы

НастройкаОписание
Rsi length (RsiLength) Длина RSI — Длина периода RSI, используемого в расчёте индикатора.
Rsi price (RsiPrice) Цена RSI — Тип цены, используемый для расчёта RSI. Поддерживаются стандартные типы цен и цены Хаинкина Аши.
Sensivity Factor (Sensitivity) Чувствительность — Коэффициент чувствительности, влияющий на ширину адаптивных зон StepMA.
Constant Step Size (StepSize) Размер шага — Константа шага, определяющая величину смещения линии StepMA.
Turn alerts on (alertsOn) Включить алерты — Общий переключатель для включения или отключения всех уведомлений.
Alerts on still opened bar (alertsOnCurrent) Алерты на текущем баре — Определяет, будут ли алерты срабатывать на текущем открытом баре или на закрытом.
Alerts should show message (alertsMessage) Всплывающие сообщения — Включает или отключает всплывающие сообщения при смене тренда.
Alerts should send notification (alertsNotification) Push-уведомления — Включает или отключает отправку push-уведомлений при смене тренда.
Alerts should play a sound (alertsSound) Звуковой сигнал — Включает или отключает звуковой сигнал при смене тренда.
Alerts should send email (alertsEmail) Email-алерты — Включает или отключает отправку email-уведомлений при смене тренда.
Получить полный код

Поиск по коду файла

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DarkGray
#property indicator_color2 LimeGreen
#property indicator_color3 Orange
#property indicator_color4 Orange
#property indicator_width1 2
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 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 int      RsiLength   = 14;          // Rsi length
extern enPrices RsiPrice    = pr_close;    // Rsi price
extern double   Sensitivity = 4;           // Sensivity Factor
extern double   StepSize    = 5;           // Constant Step Size
extern bool     alertsOn           = false; // Turn alerts on
extern bool     alertsOnCurrent    = true;  // Alerts on still opened bar
extern bool     alertsMessage      = true;  // Alerts should show message
extern bool     alertsNotification = false; // Alerts should send notification
extern bool     alertsSound        = false; // Alerts should play a sound
extern bool     alertsEmail        = false; // Alerts should send email

double rsi[];
double LineBuffer[];
double DnBuffera[];
double DnBufferb[];
double smin[];
double smax[];
double trend[];

int init()
{
      // код доступен только после оплаты
   }
int deinit() { return(0); }     

int start()
{
      // код доступен только после оплаты
   }

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; 
         if (r<period)
            {
               int k; double sum = 0; for (k=0; k<period && (r-k-1)>=0; k++) sum += MathAbs(workRsi[r-k][z+_price]-workRsi[r-k-1][z+_price]);
                  workRsi[r][z+_change] = (workRsi[r][z+_price]-workRsi[0][z+_price])/MathMax(k,1);
                  workRsi[r][z+_changa] =                                         sum/MathMax(k,1);
            }
         else
            {
               double change = workRsi[r][z+_price]-workRsi[r-1][z+_price];
                               workRsi[r][z+_change] = workRsi[r-1][z+_change] + alpha*(        change  - workRsi[r-1][z+_change]);
                               workRsi[r][z+_changa] = workRsi[r-1][z+_changa] + alpha*(MathAbs(change) - workRsi[r-1][z+_changa]);
            }
         if (workRsi[r][z+_changa] != 0)
               return(50.0*(workRsi[r][z+_change]/workRsi[r][z+_changa]+1));
         else  return(50.0);

}

double workStep[][3];
#define _smin   0
#define _smax   1
#define _trend  2

double iStepMa(double sensitivity, double stepSize, double stepMulti, double phigh, double plow, double pprice, int r)
{
   if (ArrayRange(workStep,0)!=Bars) ArrayResize(workStep,Bars);
   if (sensitivity == 0) sensitivity = 0.0001; r = Bars-r-1;
 

Показано первые 50% кода (символов: 7309)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
730,90₽ ≈ $8.93