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

rsioma prp_mtf+alerts.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). Индикатор отображает четыре буфера в отдельном окне и поддерживает работу на различных таймфреймах.

Основная функциональность заключается в расчёте сглаженного RSI с последующим наложением дополнительной скользящей средней на результат. Индикатор отслеживает направление изменения значений и соотношение с дополнительной средней, визуализируя точки пересечения и смену тренда.

Индикатор оснащён системой уведомлений, которая срабатывает при смене состояния тренда на текущем или заданном таймфрейме. Поддерживаются звуковые, почтовые и текстовые уведомления, а также воспроизведение звукового файла.

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

НастройкаОписание
TimeFrame Задаёт таймфрейм для расчёта индикатора. Может принимать название таймфрейма (например, M1, H1, D1) или специальные значения для внутреннего режима работы.
RsiOma_Period Период расчёта скользящей средней, применяемой перед вычислением RSI.
RsiOma_Price Тип цены, используемой при расчёте скользящей средней перед RSI.
RsiOma_Mode Режим (тип) скользящей средней, применяемой при расчёте предварительной средней для RSI.
MaPeriod Период дополнительной скользящей средней, накладываемой на значения RSI.
MaType Режим (тип) дополнительной скользящей средней, применяемой к результату RSI.
levelOb Верхний уровень осциллятора, обозначающий зону перекупленности.
levelOs Нижний уровень осциллятора, обозначающий зону перепроданности.
alertsOn Включает или отключает систему уведомлений индикатора.
alertsOnCurrent Определяет, отслеживать ли изменения на текущем графике или на указанном таймфрейме.
alertsMessage Включает отправку текстовых уведомлений (алертов) в окно терминала.
alertsSound Включает воспроизведение звукового сигнала при срабатывании уведомления.
alertsEmail Включает отправку уведомлений по электронной почте.
soundfile Путь к звуковому файлу, который воспроизводится при срабатывании звукового уведомления.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers    4
#property indicator_color1     LimeGreen
#property indicator_color2     Red
#property indicator_color3     Red
#property indicator_color4     White
#property indicator_width1     2
#property indicator_width2     2
#property indicator_width3     2
#property indicator_width4     2
#property indicator_levelcolor MediumOrchid

extern string TimeFrame       = "Current time frame";
extern int    RsiOma_Period   = 14;
extern int    RsiOma_Price    = 0;
extern int    RsiOma_Mode     = MODE_LWMA;
extern int    MaPeriod        = 10;
extern int    MaType          = MODE_LWMA;
extern double levelOb         = 70;
extern double levelOs         = 30;

extern string note            = "turn on Alert = true; turn off = false";
extern bool   alertsOn        = true;
extern bool   alertsOnCurrent = true;
extern bool   alertsMessage   = true;
extern bool   alertsSound     = false;
extern bool   alertsEmail     = false;
extern string soundfile       = "alert2.wav";

double rsi[];
double rsida[];
double rsidb[];
double ma[];
double mab[];
double trend[];
double slope[];

string indicatorFileName;
int    timeFrame;
bool   returnBars;
bool   calculateValue;

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

int deinit() { return(0); }

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { rsi[0] = limit+1; return(0); }

   if (calculateValue || timeFrame==Period())
   {

     if  (slope[limit] == -1) ClearPoint(limit,rsida,rsidb);
     for (i=limit; i >= 0; i--) mab[i] = iMA(NULL,0,RsiOma_Period,0,RsiOma_Mode,RsiOma_Price,i);
     for (i=limit; i >= 0; i--) rsi[i] = iRSIOnArray(mab,0,RsiOma_Period,i);
     for (i=limit; i >= 0; i--)
     {
        ma[i] = iMAOnArray(rsi,0,MaPeriod,0,MaType,i);
        rsida[i] = EMPTY_VALUE;
        rsidb[i] = EMPTY_VALUE;
        slope[i] = slope[i+1];
        trend[i] = trend[i+1]; 

	     if (rsi[i] > rsi[i+1]) slope[i]= 1; 
	     if (rsi[i] < rsi[i+1]) slope[i]=-1;
	     if (rsi[i] > ma[i])    trend[i]= 1; 
	     if (rsi[i] < ma[i])    trend[i]=-1;
	     if (slope[i] == -1) PlotPoint(i,rsida,rsidb,rsi);

     }
     manageAlerts();  
    return(0);
    }

    limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
    if (slope[limit]==-1) ClearPoint(limit,rsida,rsidb);
    for (i=limit;i>=0; i--)
    {
       int y = iBarShift(NULL,timeFrame,Time[i]);
            rsi[i]   = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,Ma

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

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

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

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

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

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

Стоимость полного кода
524,10₽ ≈ $6.41