← К каталогу
Исходный код · ID 1783

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 и перейдите к оплате.

Стоимость полного кода
550,60₽ ≈ $6.73