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

dz_inverse_fisher_transform_of_oma_rsi

dz_inverse_fisher_transform_of_oma_rsi.mq5

Похожие материалы по тегам

!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 2 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 2 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedingvonepointoneone.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.10 optimized.mq4MQL4 / MetaTrader 4 · 2 общих теговsureforexhedging 1.09 a (2).mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Представляет собой пользовательский технический индикатор для MetaTrader 4, который анализирует ценовые данные на основе адаптивно сглаженного RSI и отображает результаты в отдельном окне индикатора. Индикатор применяет обратное преобразование Фишера к сглаженным значениям RSI и использует внешнюю библиотеку Dynamic Zones для определения направления тренда и визуальной индикации зон вероятности. Поддерживает работу с несколькими таймфреймами и включает опцию интерполяции для плавного перехода между данными разных таймфреймов. Внешняя DLL (dynamicZone.dll) используется для расчёта зон покупки и продажи на основе заданных вероятностей и периода обзора.

Настройки программы

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором работает индикатор (например, M1, H4, D1 или Current time frame).
RSIPeriod Период RSI — Период расчёта RSI.
RSIPrice Цена RSI — Тип цены, используемой для расчёта RSI (например, закрытие).
OmaSpeed Скорость OMA (RSI) — Коэффициент скорости сглаживания для расчёта RSI.
OmaAdaptive Адаптивность OMA (RSI) — Переключатель адаптивного сглаживания для расчёта RSI.
SmoothPeriod Период сглаживания — Период дополнительного сглаживания сигнальной линии.
SmoothSpeed Скорость сглаживания — Коэффициент скорости дополнительного сглаживания.
SmoothAdaptive Адаптивность сглаживания — Переключатель адаптивного сглаживания для дополнительной фильтрации сигнала.
DzLookBack Период обзора Dz — Количество баров, учитываемых при расчёте динамических зон.
DzBuyProbability Вероятность покупки Dz — Пороговая вероятность для зоны покупки, используемая при расчёте динамических зон через внешнюю библиотеку.
DzSellProbability Вероятность продажи Dz — Пороговая вероятность для зоны продажи, используемая при расчёте динамических зон через внешнюю библиотеку.
Interpolate Интерполяция — Переключатель интерполяции значений между барами при работе на старшем таймфрейме.
Получить полный код

Поиск по коду файла

#property  indicator_separate_window
#property  indicator_buffers   7
#property  indicator_color1    DarkGray
#property  indicator_color2    DarkGray
#property  indicator_color3    DarkGray
#property  indicator_color4    Orange
#property  indicator_color5    Orange
#property  indicator_color6    LimeGreen
#property  indicator_color7    LimeGreen
#property  indicator_width4    2
#property  indicator_width5    2
#property  indicator_width6    2
#property  indicator_width7    2
#property  indicator_maximum   1
#property  indicator_minimum  -1
#property  indicator_style1   STYLE_DOT
#property  indicator_style2   STYLE_DOT
#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 string TimeFrame         = "Current time frame";
extern int    RSIPeriod         =  32;
extern int    RSIPrice          =  PRICE_CLOSE;
extern double OmaSpeed          = 1.5;
extern bool   OmaAdaptive       = true;
extern double SmoothPeriod      =  3;
extern double SmoothSpeed       =  3;
extern bool   SmoothAdaptive    =  true;
extern int    DzLookBack        = 35;
extern double DzBuyProbability  = 0.15;
extern double DzSellProbability = 0.15;
extern bool   Interpolate       = true;

double ifishua[];
double ifishub[];
double ifishda[];
double ifishdb[];
double ifisher[];
double trend[];
double up[];
double dn[];

string indicatorFileName;
bool   returnBars;
bool   calculateValue;
int    timeFrame;

int init()
{
      // код доступен только после оплаты
   }
int deinit()
{
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int    limit, i; 
   int    counted_bars=IndicatorCounted();

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
           limit=MathMax(Bars-counted_bars,Bars-1);
           if (returnBars) { up[0] = limit+1; return(0); }

   if (calculateValue || timeFrame==Period())
   {
      if (!calculateValue) if (trend[limit]== 1) CleanPoint(limit,ifishua,ifishub);
      if (!calculateValue) if (trend[limit]==-1) CleanPoint(limit,ifishda,ifishdb);

      for(i=limit; i>=0; i--)
      {
         double rsi = 0.1*(iRsi(iMA(NULL,0,1,0,MODE_SMA,RSIPrice,i),RSIPeriod,OmaSpeed,OmaAdaptive,i)-50);      
         double avg = iOma(rsi,SmoothPeriod,SmoothSpeed,SmoothAdaptive,i,2);
         ifisher[i] = (MathExp(2*avg)-1)/(MathExp(2*avg)+1);
         trend[i]   = trend[i+1];
         up[i]      = dzSell(ifisher, DzSellProbability, DzLookBack, Bars, i);
         dn[i]      = dzBuy (ifisher, DzBuyProbability,  DzLookBack, Bars, i);
            if (ifisher[i] < up[i] && ifisher[i] > dn[i]) trend[i] =  0;
            if (ifisher[i] > up[i])                       trend[i] =  1;
            if (ifisher[i] < dn[i])                       trend[i] = -1;
            if (calculateValue) continue;

            ifishda[i] = EMPTY_VALUE; ifishdb[i] = EMPTY_VALUE;         
            ifishua[i] = EMPTY_VALUE; ifishub[i] = EMPTY_VALUE;         
               if (trend[i]== 1) PlotPoint(i,ifishua,ifishub,ifisher);
               if (trend[i]==-1) PlotPoint(i,ifishda,ifishdb,ifisher);
      }
      return(0);
   }      

   limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));

   if (trend[limit]== 1) CleanPoint(limit,ifishua,ifishub);
   if (trend[limit]==-1) CleanPoint(limit,ifishda,ifishdb);
   for(i=limit; i>=0; i--)
   {
      int y = iBarShift(NULL,timeFrame,Time[i]);
         trend[i]   = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIPeriod,RSIPrice,OmaSpeed,OmaAdaptive,SmoothPeriod,SmoothSpeed,SmoothAdaptive,DzLookBack,DzBuyProbability,DzSellProbability,7,y);
         ifisher[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIPeriod,RSIPrice,OmaSpeed,OmaAdaptive,SmoothPeriod,SmoothSpeed,SmoothAdaptive,DzLookBack,DzBuyProbability,DzSellProbability,2,y);
         up[i]      = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIPeriod,RSIPrice,OmaSpeed,OmaAdaptive,SmoothPeriod,SmoothSpeed,SmoothAdaptive,DzLookBack,DzBuyProbability,DzSellProbability,0,y);
         dn[i]      = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",RSIPeriod,RSIPrice,OmaSpeed,OmaAdaptive,SmoothPeriod,SmoothSpeed,SmoothAdaptive,DzLookBack,DzBuyProbability,DzSellProbability,1,y);
         ifishda[i] = EMPTY_VALUE; 
         ifishdb[i] = EMPTY_VALUE;         
         ifishua[i] = EMPTY_VALUE; 
         ifishub[i] = EMPTY_VALUE;  

Показано первые 50% кода (символов: 7745)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
774,50₽ ≈ $9.47