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

stepma_of_rsi_adaptive_ema_2_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 4, отображающий скользящую среднюю на основе адаптивно сглаженного RSI. Расчёт выполняется в окне графика с использованием семи буферов: основная линия индикатора и два дополнительных буфера для отметок смены направления. Индикатор поддерживает выбор различных ценовых источников для расчёта RSI и настраиваемые параметры чувствительности и размера шага.

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

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

НастройкаОписание
Rsi length (RsiLength) Длина RSI — Период расчёта RSI, определяет количество баров, используемых для вычисления индикатора
Rsi price (RsiPrice) Цена для RSI — Ценовой источник, используемый для расчёта RSI: закрытие, открытие, высокая, низкая цена и другие варианты
Sensivity Factor (Sensitivity) Чувствительность — Множитель чувствительности, влияющий на скорость реакции индикатора на изменения цены
Constant Step Size (StepSize) Размер шага — Базовый размер шага для построения линии индикатора
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) Электронная почта — Включает отправку электронного письма при смене тренда
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 Orange
#property indicator_width1 2
#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 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;
   if (stepSize    == 0) stepSize   

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

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

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

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

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

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

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