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

rsioma

rsioma_nrp_mtfalerts.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. Индикатор поддерживает работу на текущем или заданном таймфрейме, а также может использоваться как источник данных для других инструментов через вызовы iCustom. В коде предусмотрены уведомления о смене направления тренда: всплывающие сообщения, звуковой сигнал и отправка email. Настройки позволяют выбрать таймфрейм, параметры RSI и скользящей средней, уровни перекупленности/перепроданности, а также включить или отключить отдельные типы оповещений.

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

НастройкаОписание
TimeFrame Таймфрейм для расчёта индикатора. Может быть задан строкой (например, "Current time frame", "M15") или специальными значениями "calculateValue" и "returnBars".
RsiOma_Period Период скользящей средней, применяемой к ценам для последующего расчёта RSI.
RsiOma_Price Тип цены, используемый для расчёта скользящей средней (например, PRICE_CLOSE).
RsiOma_Mode Метод сглаживания скользящей средней, используемой для предварительной обработки цен перед расчётом RSI.
MaPeriod Период скользящей средней, применяемой к значениям RSI.
MaType Метод сглаживания скользящей средней (например, MODE_LWMA).
levelOb Уровень перекупленности, отображаемый в отдельном окне индикатора.
levelOs Уровень перепроданности, отображаемый в отдельном окне индикатора.
alertsOn Включает или отключает все оповещения индикатора.
alertsOnCurrent Если включено, оповещения проверяются на текущем (незакрытом) баре; если выключено — на предыдущем закрытом баре.
alertsMessage Включает всплывающие сообщения (Alert) при смене тренда.
alertsSound Включает звуковой сигнал при смене тренда.
alertsEmail Включает отправку уведомлений по электронной почте при смене тренда.
soundfile Имя звукового файла для воспроизведения при срабатывании звукового оповещения.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers    4
#property indicator_color1     Lime
#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         = 50;
extern double levelOs         = 50;

extern string note            = "turn on Alert = true; turn off = false";
extern bool   alertsOn        = false;
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,MaType,0,y);
            rsida[i] = EMPTY_VALUE;
   

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

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

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

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

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

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

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