!!! rsi ma simple+arrows 1.2 (mtf).mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!!! rsi ma simple+arrows 1.2 (mtf).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает значение 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.