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

stepma of rsi adaptive ema 2_1 histo__1.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 5, который рассчитывает адаптивную версию RSI и применяет к ней алгоритм StepMA (ступенчатого скользящего среднего) с отображением результата в виде гистограмм. Индикатор строит два буфера — восходящий и нисходящий тренды — и окрашивает их в разные цвета для наглядного отображения смены направления движения цены.

В основе расчёта лежит собственная реализация RSI, использующая экспоненциальное сглаживание изменения цены и средней абсолютной величины изменения, что обеспечивает адаптивность показателя. Затем значения пропускаются через алгоритм StepMA, формирующий верхнюю и нижнюю границы на основе параметров чувствительности и шага. При пробое ценой одной из границ фиксируется смена тренда.

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

Продукт предназначен для визуального анализа трендовых изменений и может использоваться как инструмент для отслеживания переключений направления движения на графике цен.

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

НастройкаОписание
Rsi length (RsiLength) Длина RSI — Длина периода расчёта адаптивного RSI.
Rsi price (RsiPrice) Цена RSI — Тип цены, используемый для расчёта адаптивного RSI (Close, Open, High, Low, Median, Typical, Weighted, Average, Heikin Ashi и другие варианты).
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-уведомления — Включает или отключает отправку электронной почты при смене тренда.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  clrDeepSkyBlue
#property indicator_color2  clrSandyBrown
#property indicator_width1  2
#property indicator_width2  2
#property indicator_minimum 0
#property indicator_maximum 1
#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 histoup[];
double histodn[];
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;
   if (stepSize    == 0) step

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

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

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

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

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

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

Стоимость полного кода
725₽ ≈ $8.86