dz_laguerre_rsi_with_laguerre_filter.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «dz_laguerre_rsi_with_laguerre_filter.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, отображаемый в отдельном окне с четырьмя буферами данных. Он выполняет расчёт аналитических показателей на основе ценовых данных с использованием настраиваемых параметров гамма-сглаживания, скорости сглаживания и количества баров для анализа.
Индикатор вычисляет значение RSI на основе преобразования Лагерра, а затем применяет фильтр Лагерра для дополнительной обработки результатов. Для расчёта зон покупок и продаж используются функции из внешней библиотеки dynamicZone.dll, которые определяют вероятностные зоны на основе переданных параметров.
Продукт поддерживает визуализацию так называемой зоны без торговли в виде прямоугольника на графике с настраиваемыми верхней и нижней границами, цветом заливки и цветом текста. Также отображается текстовая метка с информацией о границах зоны. Все параметры индикатора доступны для настройки пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| RsiGamma | Гамма RSI — Параметр гамма-сглаживания для расчёта RSI на основе преобразования Лагерра |
| RsiPrice | Цена для RSI — Тип цены, используемой для расчёта RSI (0 — текущая цена) |
| RsiSmoothGamma | Гамма сглаживания RSI — Параметр гамма-сглаживания для дополнительного сглаживания RSI |
| RsiSmoothSpeed | Скорость сглаживания RSI — Параметр скорости сглаживания RSI, определяющий весовые коэффициенты |
| FilterGamma | Гамма фильтра — Параметр гамма-сглаживания для фильтра Лагерра |
| FilterSpeed | Скорость фильтра — Параметр скорости сглаживания фильтра, определяющий весовые коэффициенты |
| DzLookBackBars | Количество баров для зон — Количество баров, используемых для расчёта динамических зон |
| DzBuyProbability | Вероятность покупки — Вероятностное значение для расчёта зоны покупок через внешнюю библиотеку dynamicZone.dll |
| DzSellProbability | Вероятность продажи — Вероятностное значение для расчёта зоны продаж через внешнюю библиотеку dynamicZone.dll |
| NoTradeZoneVisible | Отображение зоны без торговли — Переключатель видимости зоны без торговли на графике |
| NoTradeZoneUp | Верхняя граница зоны — Верхняя граница (цена) зоны без торговли |
| NoTradeZoneDown | Нижняя граница зоны — Нижняя граница (цена) зоны без торговли |
| NoTradeZoneColor | Цвет зоны без торговли — Цвет прямоугольника зоны без торговли на графике |
| NoTradeZoneTextColor | Цвет текста зоны — Цвет текстовой метки зоны без торговли |
| UniqueID | Уникальный идентификатор — Уникальный идентификатор индикатора, используемый для именования объектов на графике |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Silver
#property indicator_color2 Silver
#property indicator_color3 Orange
#property indicator_color4 Silver
#property indicator_style4 STYLE_DASHDOTDOT
#import "dynamicZone.dll"
double dzBuy(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i );
double dzSell(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i );
#import
extern double RsiGamma = 0.50;
extern int RsiPrice = 0;
extern double RsiSmoothGamma = 0.001;
extern int RsiSmoothSpeed = 2.0;
extern double FilterGamma = 0.60;
extern int FilterSpeed = 2.0;
extern int DzLookBackBars = 35;
extern double DzBuyProbability = 0.10;
extern double DzSellProbability = 0.10;
extern bool NoTradeZoneVisible = true;
extern double NoTradeZoneUp = 0.65;
extern double NoTradeZoneDown = 0.35;
extern color NoTradeZoneColor = Gray;
extern color NoTradeZoneTextColor = Black;
extern string UniqueID = "Laguerre rsi & filter 1";
double lag[];
double fil[];
double sz[];
double bz[];
string shortName;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = UniqueID+":";
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);
for(int i = limit; i >= 0 ; i--)
{
lag[i] = LaGuerreRsi(iMA(NULL,0,1,0,MODE_SMA,RsiPrice,i),RsiGamma,RsiSmoothGamma,RsiSmoothSpeed,i);
fil[i] = LaGuerreFil(lag[i],FilterGamma,FilterSpeed,i);
bz[i] = dzBuy (lag, DzBuyProbability, DzLookBackBars, Bars, i);
sz[i] = dzSell(lag, DzSellProbability, DzLookBackBars, Bars, i);
}
if (NoTradeZoneVisible)
{
string name = UniqueID+":zone";
int window = WindowFind(shortName);
if (ObjectFind(name) == -1)
ObjectCreate(name,OBJ_RECTANGLE,window,0,0,0,0);
ObjectSet(name,OBJPROP_TIME1,Time[Bars-1]);
ObjectSet(name,OBJPROP_TIME2,Time[0]);
ObjectSet(name,OBJPROP_PRICE1,NoTradeZoneUp);
ObjectSet(name,OBJPROP_PRICE2,NoTradeZoneDown);
ObjectSet(name,OBJPROP_COLOR,NoTradeZoneColor);
ObjectSet(name,OBJPROP_BACK,true);
name = UniqueID+":text";
if (ObjectFind(name) == -1)
ObjectCreate(name,OBJ_TEXT,window,0,0);
ObjectSet(name,OBJPROP_TIME1,Time[0]+30*Period()*60);
ObjectSet(name,OBJPROP_PRICE1,(NoTradeZoneUp+NoTradeZoneDown)/2.0);
ObjectSet(name,OBJPROP_COLOR,NoTradeZoneTextColor);
ObjectSetText(name,"no-trade zone "+DoubleToStr(NoTradeZoneDown,2)+":"+DoubleToStr(NoTradeZoneUp,2),10,"Courier new");
}
return(0);
Показано первые 50% кода (символов: 5506)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.