Composite RSI
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dynamic_zones_pa_composite_rsi.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор Composite RSI отображает в отдельном окне MetaTrader 5 рассчитанные значения аналитического индикатора RSI совместно с зонами динамических вероятностей. Он использует адаптивный определитель цикла на основе преобразования Хилберта для автоматической подстройки периода расчёта RSI, а также привлекает внешнюю библиотеку dynamicZone.dll для вычисления вероятностных уровней покупок и продаж.
Индикатор формирует шесть буферов отображения: линию RSI, верхнюю и нижнюю границы зон вероятностей, а также точки-подписи для уровней. Пользователь может настроить глубину усреднения, тип цены, режим быстрой/медленной сглаживающей и пороговые значения вероятностей для зон.
Параметры PaCycles и PaFilter управляют работой детектора цикла, определяющего текущий период рынка. Результат расчёта RSI зависит от этих параметров и от заданной глубины. Вероятностные зоны рассчитываются на основе истории значений RSI за заданное число баров.
Индикатор предназначен для визуального анализа ценовых данных и технических показателей. Он не выполняет автоматическую торговлю и не гарантирует конкретные результаты использования.
Настройки программы
| Настройка | Описание |
|---|---|
| PaCycles | Параметр количества циклов для детектора фазы Хилберта. Влияет на определение текущего периода рынка и, как следствие, на период расчёта RSI. |
| PaFilter | Параметр фильтра для детектора фазы Хилберта. Участвует в сглаживании определения периода и влияет на адаптивность расчёта. |
| RsiPrice | Тип цены, используемый в качестве исходных данных для расчёта индикатора. Соответствует стандартным типам цен MetaTrader 5. |
| RsiDepth | Глубина усреднения при расчёте составного RSI. Ограничивается диапазоном от 2 до 25. Чем больше значение, тем более сглажена линия индикатора. |
| RsiFast | Переключатель режима сглаживания RSI. При включении используется формула быстрого скользящего среднего, при выключении — стандартная формула экспоненциального сглаживания. |
| DzLookBack | Количество баров, используемых для расчёта зон динамических вероятностей. Задаёт глубину анализа истории индикатора. |
| DzBuyProbability | Пороговое значение вероятности для отображения зоны покупок. Определяет уровень, при котором рассчитывается верхняя граница зоны покупок на основе истории RSI. |
| DzSellProbability | Пороговое значение вероятности для отображения зоны продаж. Определяет уровень, при котором рассчитывается нижняя граница зоны продаж на основе истории RSI. |
Поиск по коду файла
#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 PaCycles = 1.0;
extern double PaFilter = 1.0;
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()
{
// код доступен только после оплаты
}
double workCompRsi[][26];
double iCompRsi(double price, double period, int depth, bool fast, int i, int instanceNo=0)
{
if (ArrayRange(workCompRsi,0) !=Bars) ArrayResize(workCompRsi,Bars);
if (!fast)
double alpha = 2.0/(1.0 + period);
else alpha = 2.0/(2.0 + (period-1.0)/2.0);
instanceNo *= 26; i = Bars-i-1;
double CU = 0;
double CD = 0;
for (int k=0; k<=depth; k++)
{
if (i == 0)
workCompRsi[i][instanceNo+k] = price;
else workCompRsi[i][instanceNo+k] = workCompRsi[i-1][instanceNo+k]+alpha*(price-workCompRsi[i-1][instanceNo+k]);
price = workCompRsi[i][k+instanceNo];
if (k>0)
if (workCompRsi[i][instanceNo+k-1] >= workCompRsi[i][instanceNo+k])
CU += workCompRsi[i]Показано первые 50% кода (символов: 5440)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.