dynamic_zones_rsi_accumulated_2_2__alerts.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dynamic_zones_rsi_accumulated_2_2__alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, который отображает накопленный RSI и динамические зоны вероятностей в отдельном окне графика. Индикатор поддерживает несколько методов расчёта RSI и использует внешнюю библиотеку dynamicZone.dll для определения зон покупки и продажи.
Индикатор рассчитывает накопленное значение RSI за заданное количество периодов и сравнивает его с верхней и нижней границами, вычисленными через функции вероятности из DLL. При пробитии уровней на графике отображаются маркеры в виде точек.
Продукт оснащён системой уведомлений, которая может отправлять всплывающие сообщения, воспроизводить звуковые сигналы или отправлять электронную почту при смене состояния уровней. Все параметры настройки доступны пользователю через окно свойств индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| Rsi period to use (RsiPeriod) | Период RSI — Период RSI для расчёта |
| Price to use (RsiPrice) | Тип цены — Тип цены для расчёта RSI |
| Rsi type to use (RsiType) | Тип RSI — Тип RSI для расчёта |
| Accumulate last n rsi values (AccPeriod) | Период накопления — Количество последних значений RSI для накопления |
| Level up (%) (LevelUp) | Уровень вверх (%) — Уровень вверх в процентах |
| Level down (%) (LevelDown) | Уровень вниз (%) — Уровень вниз в процентах |
| Look back bars no (LookBackBars) | Количество баров назад — Количество баров для анализа назад |
| Turn alerts on (alertsOn) | Включить уведомления — Включить или выключить уведомления |
| Alerts on current (still opened) bar? (alertsOnCurrent) | Уведомления на текущем баре — Уведомления на текущем (открытом) баре |
| Alerts should display a pop-up message (alertsMessage) | Всплывающие сообщения — Отображать ли всплывающие сообщения |
| Alerts should play an alert sound? (alertsSound) | Звуковой сигнал — Воспроизводить ли звуковой сигнал |
| Alerts should send an email? (alertsEmail) | Уведомления по email — Отправлять ли уведомления по электронной почте |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 clrLimeGreen
#property indicator_color2 clrPaleVioletRed
#property indicator_color3 clrSilver
#property indicator_color4 clrLimeGreen
#property indicator_color5 clrLimeGreen
#property indicator_color6 clrPaleVioletRed
#property indicator_color7 clrPaleVioletRed
#property indicator_width3 2
#property indicator_width4 3
#property indicator_width5 3
#property indicator_width6 3
#property indicator_width7 3
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
#property strict
#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_slow, // Slow RSI
rsi_rap, // Rapid RSI
rsi_har, // Harris RSI
rsi_rsx, // RSX
rsi_cut // Cuttlers RSI
};
extern int RsiPeriod = 14; // Rsi period to use
extern ENUM_APPLIED_PRICE RsiPrice = PRICE_CLOSE; // Price to use
extern enRsiTypes RsiType = rsi_rsi; // Rsi type to use
extern int AccPeriod = 5; // Accumulate last n rsi values
extern double LevelUp = 90; // Level up (%)
extern double LevelDown = 10; // Level down (%)
extern int LookBackBars = 25; // Look back bars no
extern bool alertsOn = false; // Turn alerts on
extern bool alertsOnCurrent = false; // Alerts on current (still opened) bar?
extern bool alertsMessage = true; // Alerts should display a pop-up message
extern bool alertsSound = true; // Alerts should play an alert sound?
extern bool alertsEmail = false; // Alerts should send an email?
double rsi[],rsic[],rsicDa[],rsicDb[],rsicUa[],rsicUb[];
double up[],down[],bellow[];
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
string rsiMethodNames[] = {"RSI","Slow RSI","Rapid RSI","Harris RSI","RSX","Cuttler RSI"};
string getRsiName(int method)
{
int max = ArraySize(rsiMethodNames)-1;
method=MathMax(MathMin(method,max),0); return(rsiMethodNames[method]);
}
double workRsi[][13];
#define _price 0
#define _change 1
#define _changa 2
#define _rsival 1
#define _rsval 1
double iRsi(int rsiMode, double price, double period, int i, int instanceNo=0)
{
if (ArrayRange(workRsi,0)!=Bars) ArrayResize(workRsi,Bars);
int z = instanceNo*13;
int r = Bars-i-1;
workRsi[r][z+_price] = price;
switch (rsiMode)
{
case rsi_rsi:
{
double alpha = 1.0/period;
if (r<period)
{
int k; double sum = 0; for (k=0; k<period && (r-k-1)>=0; k++) sum += MathAbs(workRsi[r-k][z+_price]-workRsi[r-k-1][z+_price]);
workRsi[r][z+_change] = (workRsi[r][z+_price]-workRsi[0][z+_price])/MathMax(k,1);
workRsi[r][z+_changa] = sum/MathMax(k,1);
}
else
{
double change = workRsi[r][z+_price]-workRsi[r-1][z+_price];
workRsi[r][z+_change] = workRsi[r-1][z+_change] + alpha*( change - workRsi[r-1][z+_change]);
workRsi[r][z+_changa] = workRsi[r-1][z+_changa] + alpha*(MathAbs(change) - workRsi[r-1][z+_changa]);
}
if (workRsi[r][z+_changa] != 0)
return(50.0*(workRsi[r][z+_change]/workRsi[r][z+_chПоказано первые 50% кода (символов: 7180)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.