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

!!! rsi ma simple+arrows 1.2 (mtf).mq5

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.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 общих теговpro +.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор рассчитывает значение RSI (Relative Strength Index) с выбором различных методов расчёта и отображает его в отдельном окне с цветовой индикацией состояний: рост, падение и нейтральность. К значениям RSI применяется скользящая средняя заданного типа и периода, которая может отображаться на графике отдельной линией. Поддерживается мультитаймфреймный анализ — индикатор может использовать данные с более высоких таймфреймов с возможностью интерполяции. Индикатор позволяет задавать горизонтальные уровни UP и DOWN и окрашивать линии RSI в зависимости от их положения относительно этих уровней.

При смене тренда RSI индикатор может отображать стрелки вверх и вниз с настраиваемыми параметрами визуализации (цвет, размер, код, зазор относительно цены). Стрелки и окраска активируются в зависимости от выбранного условия: пересечение заданного уровня, пересечение уровня 50, пересечение RSI скользящей средней или изменение наклона. Все визуальные элементы настраиваются через соответствующие параметры.

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

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитывается индикатор. Возможен выбор более высоких таймфреймов для мультитаймфреймного анализа.
RsiPeriod Период расчёта индикатора RSI (количество свечей).
RsiMethod Метод расчёта RSI: обычный RSI, медленный RSI, быстрый RSI, RSI Харриса, RSX или RSI Каттлера.
RsiPrice Тип цены, используемой для расчёта RSI (Close, Open, High, Low, Median, Typical и другие).
AveragePeriod Период скользящей средней, применяемой к значениям RSI для сглаживания сигнала.
AverageType Тип скользящей средней, используемой для сглаживания RSI (SMA, EMA, SMMA, LWMA или TEMA).
ShowAverage Включает или отключает отображение линии скользящей средней RSI на графике.
Averagestyle Стиль отображения линии скользящей средней RSI (сплошная, пунктир и т.д.).
Average_color_lines Цвет линии скользящей средней RSI на графике.
UpcolorRSI Цвет линии RSI в состоянии роста.
DncolorRSI Цвет линии RSI в состоянии падения.
NecolorRSI Цвет линии RSI в нейтральном состоянии (между верхним и нижним уровнями).
LineWidthRSI Толщина линий RSI на графике.
ShowHorlev Включает или отключает отображение горизонтальных уровней на графике.
levelstyle Стиль отображения горизонтальных уровней на графике.
Level_color_lines Цвет горизонтальных уровней на графике.
LevelUp Значение верхнего горизонтального уровня RSI.
LevelDown Значение нижнего горизонтального уровня RSI.
ColorOn Условие, при котором активируются стрелки и цветовая индикация: пересечение заданного уровня, пересечение уровня 50, пересечение RSI скользящей средней или изменение наклона.
AlertsOn Включает или отключает систему уведомлений индикатора.
AlertsOnCurrent Определяет, будут ли уведомления срабатывать на текущей (незакрытой) свече или только на закрытых.
AlertsMessage Включает или отключает отображение всплывающего текстового сообщения при смене тренда RSI.
AlertsSound Включает или отключает воспроизведение звукового сигнала при смене тренда RSI.
AlertsNotify Включает или отключает отправку push-уведомлений на устройство при смене тренда RSI.
AlertsEmail Включает или отключает отправку уведомлений по электронной почте при смене тренда RSI.
AlertsSoundFile Путь к звуковому файлу, который воспроизводится при срабатывании звукового уведомления.
arrowsVisible Включает или отключает отображение стрелок на графике.
arrowsIdentifier Уникальный идентификатор для стрелок-объектов на графике, используемый для их именования и удаления.
arrowsOnNewest Включает отображение стрелок на самой последней (незакрытой) свече.
arrowsUpperGap Зазор стрелки вверх относительно максимальной цены свечи, измеряемый в единицах ATR(20).
arrowsLowerGap Зазор стрелки вниз относительно минимальной цены свечи, измеряемый в единицах ATR(20).
arrowsUpColor Цвет стрелок, указывающих на изменение тренда вверх.
arrowsDnColor Цвет стрелок, указывающих на изменение тренда вниз.
arrowsUpCode Код стрелки вверх (номер символа стрелки из стандартной библиотеки MetaTrader).
arrowsDnCode Код стрелки вниз (номер символа стрелки из стандартной библиотеки MetaTrader).
arrowsUpSize Размер стрелок вверх на графике.
arrowsDnSize Размер стрелок вниз на графике.
Interpolate Включает или отключает интерполяцию данных при мультитаймфреймном анализе для более плостного отображения линий.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 8

enum enRsiTypes
{
   rsi_rsi,  // Regular RSI
   rsi_wil,  // Slow RSI
   rsi_rap,  // Rapid RSI
   rsi_har,  // Harris RSI
   rsi_rsx,  // RSX
   rsi_cut   // Cuttlers RSI
};

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_tbiased2,   // Trend biased (extreme) 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
   pr_hatbiased2, // Heiken ashi trend biased (extreme) price
   pr_habclose,   // Heiken ashi (better formula) close
   pr_habopen ,   // Heiken ashi (better formula) open
   pr_habhigh,    // Heiken ashi (better formula) high
   pr_hablow,     // Heiken ashi (better formula) low
   pr_habmedian,  // Heiken ashi (better formula) median
   pr_habtypical, // Heiken ashi (better formula) typical
   pr_habweighted,// Heiken ashi (better formula) weighted
   pr_habaverage, // Heiken ashi (better formula) average
   pr_habmedianb, // Heiken ashi (better formula) median body
   pr_habtbiased, // Heiken ashi (better formula) trend biased price
   pr_habtbiased2 // Heiken ashi (better formula) trend biased (extreme) price
};

enum enMaTypes
{
   ma_sma,    // Simple moving average
   ma_ema,    // Exponential moving average
   ma_smma,   // Smoothed MA
   ma_lwma,   // Linear weighted MA
   ma_tema    // Tripple exponential moving average
};

enum enArrowOn
{
   cc_onRSIcrosslevel,   // Color + alerts/arrows RSI cross level
   cc_onRSIcross50level, // Color + alerts/arrows RSI cross 50 level
   cc_RSIcrossMA,        // Color + alerts/arrows RSI cross MA 
   cc_onSLOPE,           // Color + alerts/arrows RSI slope

};

enum enTimeFrames
{
   tf_cu  = PERIOD_CURRENT, // Current time frame
   tf_m1  = PERIOD_M1,      // 1 minute
   tf_m5  = PERIOD_M5,      // 5 minutes
   tf_m15 = PERIOD_M15,     // 15 minutes
   tf_m30 = PERIOD_M30,     // 30 minutes
   tf_h1  = PERIOD_H1,      // 1 hour
   tf_h4  = PERIOD_H4,      // 4 hours
   tf_d1  = PERIOD_D1,      // Daily
   tf_w1  = PERIOD_W1,      // Weekly
   tf_mn1 = PERIOD_MN1,     // Monthly
   tf_n1  = -1,             // First higher time frame
   tf_n2  = -2,             // Second higher time frame
   tf_n3  = -3              // Third higher time frame
};

extern enTimeFrames    TimeFrame                 = tf_cu; 
extern int             RsiPeriod                 = 14;             // RSI period
extern enRsiTypes      RsiMethod                 = rsi_rsi;        // RSI method
extern enPrices        RsiPrice                  = pr_close;       // Price to use
extern int             AveragePeriod             = 21;             // Average signal period
extern enMaTypes       AverageType               = ma_ema;         // Average signal and MA-RSI type
extern bool            ShowAverage               = true;           // Average signal are visible?
input ENUM_LINE_STYLE  Averagestyle              = STYLE_DOT;     // Average signal style?
input color            Average_color_lines       = clrLightYellow; // Average signal color
input color            UpcolorRSI                = clrSeaGreen;          // RSI UP color
input color            DncolorRSI                = clrCrimson;           // RSI DOWN color
input color            NecolorRSI                = clrGray;              // RSI NEUTRAL color
extern int             LineWidthRSI              = 2;                  // RSI Lines width
extern bool            ShowHorlev                = true;             // Horizontal Levels are visible?
input ENUM_LINE_STYLE  levelstyle                =  STYLE_DOT;       // Zero level style?
input color            Level_color_lines         = clrGray;          // Levels color
input double           LevelUp                   = 60;              // UP level ?
input double           LevelDown                 = 40;               // DOWN level ?
extern enArrowOn       ColorOn                   = cc_onRSIcrosslevel;      // Arrows on:
extern bool            AlertsOn                  = false;          // Turn alerts on?
extern bool            AlertsOnCurrent           = false;          // Alerts on still opened bar?
extern bool            AlertsMessage             = true;           // Alerts should display message?
extern bool            AlertsSound               = false;          // Alerts should play a sound?
extern bool            AlertsNotify              = false;          // Alerts should send a notification?
extern bool            AlertsEmail               = false;          // Alerts should send an email?
extern string          AlertsSoundFile           = "alert2.wav";   // Sound file
input bool             arrowsVisible             = false;              // Arrows visible true/false?
input string           arrowsIdentifier          = " RSI MA";     // Unique ID for arrows
input bool             arrowsOnNewest            = false;
input double           arrowsUpperGap            = 1;                // Upper arrow gap
input double           arrowsLowerGap            = 0.5;                // Lower arrow gap
input color            arrowsUpColor             = clrMediumSeaGreen;       // Up arrow color
input color            arrowsDnColor             = clrCrimson;          // Down arrow color
input int              arrowsUpCode              = 233;                // Up arrow code
input int              arrowsDnCode              = 234;                // Down arrow code
input int              arrowsUpSize              = 2;                  // Up arrow size
input int              arrowsDnSize              = 2;  
input bool             Interpolate               = true;                // Down arrow size

string _avgNames[]={"SMA","EMA","SMMA","LWMA","TEMA"};
double rsi[],maDa[],maDb[],maUa[],maUb[],avg[],valup[],valdn[],trend[],count[];
string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,RsiPeriod,RsiMethod,RsiPrice,AveragePeriod,AverageType,ShowAverage,Averagestyle,Average_color_lines,UpcolorRSI,DncolorRSI,NecolorRSI,LineWidthRSI,ShowHorlev,levelstyle,Level_color_lines,LevelUp,LevelDown,ColorOn,AlertsOn,AlertsOnCurrent,AlertsMessage,AlertsSound,AlertsNotify,AlertsEmail,AlertsSoundFile,arrowsVisible,arrowsIdentifier,arrowsOnNewest,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSize,arrowsDnSize,_buff,_ind)

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

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

#define _maInstances 2
#define _maWorkBufferx1 _maInstances
#define _maWorkBufferx3 _maInstances*3
double iCustomMa(int mode, double price, double length, int r, int bars, int instanceNo=0)
{
   bars = Bars; r=bars-r-1;
   switch (mode)
   {
      case ma_sma   : return(iSma(price,(int)length,r,bars,instanceNo));
      case ma_ema   : return(iEma(price,length,r,bars,instanceNo));
      case ma_smma  : return(iSmma(price,(int)length,r,bars,instanceNo));
      case ma_lwma  : return(iLwma(price,(int)length,r,bars,instanceNo));
      case ma_tema  : return(iTema(price,(int)length,r,bars,instanceNo));
      default       : return(price);
   }
}

double workSma[][_maWorkBufferx1];
double iSma(double price, int period, int r, int _bars, int instanceNo=0)
{
   if (ArrayRange(workSma,0)!= _bars) ArrayResize(workSma,_bars);

   workSma[r][instanceNo+0] = price;
   double sma = price;  int k=1; for(; k<period && (r-k)>=0; k++) sma += workSma[r-k][instanceNo+0];  sma /= (double)k;
   return(sma);
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int _bars, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= _bars) ArrayResize(workEma,_bars);

   workEma[r][instanceNo] = price;
   if (r>0 && period>1)
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+(2.0/(1.0+period))*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}

double workSmma[][_maWorkBufferx1];
double iSmma(double price, double period, int r, int _bars, int instanceNo=0)
{
   if (ArrayRange(workSmma,0)!= _bars) ArrayResize(workSmma,_bars

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

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

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

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

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

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

Стоимость полного кода
1 842,90₽ ≈ $22.53