advanced steprsi v2.3 dz's alerts mtf arrows.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «advanced steprsi v2.3 dz's alerts mtf arrows.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4 на языке MQL4. Он рассчитывает модифицированный индикатор StepRSI с поддержкой нескольких методов расчёта RSI и различных источников цены. Индикатор работает в мультитаймфреймовом режиме, используя вызовы iCustom для получения данных с более высоких таймфреймов, и отображает результаты в отдельном окне графика. Для расчёта динамических зон вероятности используется внешняя DLL-библиотека dynamicZone.dll, подключаемая через импорт.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Выбор таймфрейма для мультитаймфреймового анализа или режима возврата количества баров |
| RsiType | Тип RSI — Метод расчёта RSI: обычный, Вилдерса, RSX или Кэтлера |
| PeriodRSI | Период RSI — Период расчёта индикатора RSI |
| Price to use (Price) | Цена — Источник цены для расчёта RSI |
| StepSizeFast | Размер шага быстрой линии — Величина шага для быстрой линии индикатора |
| StepSizeSlow | Размер шага медленной линии — Величина шага для медленной линии индикатора |
| OverSold | Уровень перепроданности — Пороговое значение для зоны перепроданности |
| OverBought | Уровень перекупленности — Пороговое значение для зоны перекупленности |
| Dynamic zone look back (DzLookBackBars) | Баров динамической зоны — Количество баров для расчёта динамической зоны |
| Dynamic zone buy probability (DzStartBuyProbability) | Вероятность покупки динамической зоны — Вероятность для определения уровня динамической зоны покупки |
| Dynamic zone sell probability (DzStartSellProbability) | Вероятность продажи динамической зоны — Вероятность для определения уровня динамической зоны продажи |
| Turn alerts on? (alertsOn) | Уведомления включены — Включение или выключение системы уведомлений |
| Alerts on current (still opened) bar? (alertsOnCurrent) | Уведомления на текущем баре — Отправка уведомления на ещё не закрытом текущем баре |
| Alerts should show pop-up message? (alertsMessage) | Всплывающее сообщение — Показ всплывающего окна с текстом уведомления |
| Alerts should send push notification? (alertsPushNotif) | Push-уведомление — Отправка push-уведомления на мобильное устройство |
| Alerts should play a sound? (alertsSound) | Звуковой сигнал — Воспроизведение звукового файла при срабатывании уведомления |
| Alerts should send email? (alertsEmail) | Email-уведомление — Отправка электронного письма при срабатывании уведомления |
| Arrows visible? (arrowsVisible) | Стрелки видимы — Отображение стрелок на графике |
| Arrows drawn on newst bar of higher time frame bar? (arrowsOnNewest) | Стрелки на новейшем баре — Размещение стрелок на новейшем баре старшего таймфрейма |
| Unique ID for arrows (arrowsIdentifier) | Идентификатор стрелок — Уникальный идентификатор для объектов-стрелок на графике |
| Upper arrow gap (arrowsUpperGap) | Отступ стрелки вверх — Вертикальный отступ стрелки вверх от цены в единицах ATR |
| Lower arrow gap (arrowsLowerGap) | Отступ стрелки вниз — Вертикальный отступ стрелки вниз от цены в единицах ATR |
| Up arrow color (arrowsUpColor) | Цвет стрелки вверх — Цвет стрелки, указывающей на восходящее направление |
| Down arrow color (arrowsDnColor) | Цвет стрелки вниз — Цвет стрелки, указывающей на нисходящее направление |
| Up arrow code (arrowsUpCode) | Код символа стрелки вверх — Код символа стрелки вверх из библиотеки MetaTrader |
| Down arrow code (arrowsDnCode) | Код символа стрелки вниз — Код символа стрелки вниз из библиотеки MetaTrader |
| Interpolate | Интерполяция — Включение интерполяции значений между барами при мультитаймфреймовом расчёте |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 LimeGreen
#property indicator_color2 Orange
#property indicator_color3 DarkGray
#property indicator_color4 DarkGreen
#property indicator_color5 Crimson
#property indicator_color6 LimeGreen
#property indicator_color7 DimGray
#property indicator_color8 PaleVioletRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width4 2
#property indicator_width5 2
#property indicator_style6 STYLE_DOT
#property indicator_style7 STYLE_DOT
#property indicator_style8 STYLE_DOT
#import "dynamicZone.dll"
double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i,double precision);
double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i,double precision);
#import
enum enRsiTypes
{
rsi_rsi, // Regular RSI
rsi_wil, // Wilders 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
};
extern string TimeFrame = "Current time frame";
extern enRsiTypes RsiType = rsi_rsx;
extern int PeriodRSI = 14;
input enPrices Price = pr_close; // Price to use
extern int StepSizeFast = 5;
extern int StepSizeSlow = 15;
extern double OverSold = 10;
extern double OverBought = 90;
input int DzLookBackBars = 34; // Dynamic zone look back
input double DzStartBuyProbability = 0.05; // Dynamic zone buy probability
input double DzStartSellProbability = 0.05; // Dynamic zone sell probability
extern bool alertsOn = false; // Turn alerts on?
extern bool alertsOnCurrent = true; // Alerts on current (still opened) bar?
extern bool alertsMessage = true; // Alerts should show pop-up message?
extern bool alertsPushNotif = false; // Alerts should send push notification?
extern bool alertsSound = false; // Alerts should play a sound?
extern bool alertsEmail = false; // Alerts should send email?
extern bool arrowsVisible = false; // Arrows visible?
extern bool arrowsOnNewest = false; // Arrows drawn on newst bar of higher time frame bar?
extern string arrowsIdentifier = "asesi Arrows1"; // Unique ID for arrows
extern double arrowsUpperGap = 1.0; // Upper arrow gap
extern double arrowsLowerGap = 1.0; // Lower arrow gap
extern color arrowsUpColor = LimeGreen; // Up arrow color
extern color arrowsDnColor = Orange; // Down arrow color
extern int arrowsUpCode = 241; // Up arrow code
extern int arrowsDnCode = 242; // Down arrow code
extern bool Interpolate = true;
double Line1Buffer[];
double Line2Buffer[];
double Line3Buffer[];
double trendf[];
double trends[];
double arrup[];
double arrdn[];
double trend[];
double maxf[];
double minf[];
double maxs[];
double mins[];
double levelUp[];
double levelMi[];
double levelDn[];
string indicatorFileName;
bool returnBars;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for (int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName = ObjectName(i);
if (StringSubstr(objectName,0,lookForLength) == lookFor) ObjectDelete(objectName);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { Line2Buffer[0] = limit+1; return(0); }
if (timeFrame!=Period())
{
limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
for(int i=limit; i>=0; i--)
{
int n,l,x,y = iBarShift(NULL,timeFrame,Time[i]);
Line2Buffer[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,0,y);
Line3Buffer[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,1,y);
Line1Buffer[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,2,y);
levelUp[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,5,y);
levelMi[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,6,y);
levelDn[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,7,y);
trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,14,y);
arrup[i] = EMPTY_VALUE;
arrdn[i] = EMPTY_VALUE;
if (!Interpolate || (i>0 && y==iBarShift(NULL,timeFrame,Time[i-1]))) continue;
datetime time = iTime(NULL,timeFrame,y);
for(n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;
for(l = 1; l < n && (i+l<Bars) && (i+n)<Bars; l++)
{
Line2Buffer[i+l] = Line2Buffer[i] + (Line2Buffer[i+n]-Line2Buffer[i])*l/n;
Line3Buffer[i+l] = Line3Buffer[i] + (Line3Buffer[i+n]-Line3Buffer[i])*l/n;
Line1Buffer[i+l] = Line1Buffer[i] + (Line1Buffer[i+n]-Line1Buffer[i])*l/n;
levelUp[i+l] = levelUp[i] + (levelUp[i+n] -levelUp[i]) *l/n;
levelMi[i+l] = levelMi[i] + (levelMi[i+n] -levelMi[i]) *l/n;
levelDn[i+l] = levelDn[i] + (levelDn[i+n] -levelDn[i]) *l/n;
}
}
for(i=limit; i>=0; i--)
{
y = iBarShift(NULL,timeFrame,Time[i]);
x = iBarShift(NULL,timeFrame,Time[i+1]); if (arrowsOnNewest) x = iBarShift(NULL,timeFrame,Time[i-1]);
if (x!=y)
{
arrup[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,OverBought,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,alertsOn,alertsOnCurrent,alertsMessage,alertsPushNotif,alertsSound,alertsEmail,arrowsVisible,arrowsOnNewest,arrowsIdentifier,arrowsUpperGap,arrowsLowerGap,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,3,y);
arrdn[i] = iCustom(NULL,timeFrame,indicatorFileName,"",RsiType,PeriodRSI,Price,StepSizeFast,StepSizeSlow,OverSold,Показано первые 50% кода (символов: 18148)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.