dynamic_zones_composite_rsi.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dynamic_zones_composite_rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 5, написанный на языке MQL5. Он рассчитывает композитную версию индикатора RSI на основе нескольких сглаженных ценовых рядов и отображает результаты в отдельном окне графика.
Индикатор применяет анализ динамических зон через внешнюю библиотеку для определения уровней вероятности покупки и продажи. Это позволяет трейдеру визуально оценивать зоны вероятностных перегибов на основе композитного RSI.
На графике отображаются три уровня зон (покупка, продажа, нейтральный уровень), а также линия композитного RSI и маркеры направления его наклона. Параметры периода, глубины сглаживания и порогов вероятности настраиваются пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| RsiPeriod | Период расчёта композитного индикатора RSI, задаётся в виде числового значения. |
| RsiPrice | Тип цены, используемой в расчёте RSI. Значение 0 соответствует цене закрытия (Close). |
| RsiDepth | Количество уровней сглаживания, используемых в композитном расчёте RSI. Реальное значение ограничивается диапазоном от 2 до 25. |
| RsiFast | Логический переключатель, определяющий режим сглаживания. При значении true используется ускоренный расчёт, при false — стандартный. |
| DzLookBack | Количество баров, используемых для расчёта динамических зон вероятности. Определяет глубину исторического диапазона анализа. |
| DzBuyProbability | Порог вероятности, при достижении которого зона считается зоной покупки. Значение задаётся в виде дробного числа от 0 до 1. |
| DzSellProbability | Порог вероятности, при достижении которого зона считается зоной продажи. Значение задаётся в виде дробного числа от 0 до 1. |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 DarkGray
#property indicator_color2 PaleVioletRed
#property indicator_color3 LimeGreen
#property indicator_color4 LimeGreen
#property indicator_color5 PaleVioletRed
#property indicator_color6 PaleVioletRed
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT
#property indicator_width4 2
#property indicator_width5 2
#property indicator_width6 2
#property indicator_minimum -0.1
#property indicator_maximum 1.1
#property indicator_levelcolor DarkGray
#import "dynamicZone.dll"
double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precission );
double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precission );
#import
extern double RsiPeriod = 10;
extern int RsiPrice = 0;
extern int RsiDepth = 10;
extern bool RsiFast = false;
extern int DzLookBack = 35;
extern double DzBuyProbability = 0.90;
extern double DzSellProbability = 0.90;
double rsi[];
double zli[];
double bli[];
double sli[];
double rsiDa[];
double rsiDb[];
double slope[];
int init()
{
// код доступен только после оплаты
}
int deinit() { 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 (slope[limit]==-1) CleanPoint(limit,rsiDa,rsiDb);
for(int i = limit; i >= 0 ; i--)
{
rsi[i] = iCompRsi(iMA(NULL,0,1,0,MODE_SMA,RsiPrice,i),RsiPeriod,RsiDepth,RsiFast,i);
rsiDa[i] = EMPTY_VALUE;
rsiDb[i] = EMPTY_VALUE;
slope[i] = slope[i+1];
if (rsi[i] > rsi[i+1]) slope[i] = 1;
Показано первые 50% кода (символов: 3355)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.