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

dynamic_zone_-_inverse_fisher_transform_of_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 5, построенный на основе RSI с применением обратного преобразования Фишера. Рассчитывает значение RSI по выбранной цене и периоду, применяет скользящую среднюю, а затем преобразование Фишера для сглаживания и нормализации сигнала в диапазоне от -1 до 1.

Для определения динамических зон используется внешняя библиотека dynamicZone.dll, которая вычисляет вероятностные уровни покупок и продаж на основе заданных параметров. Индикатор отображает несколько буферов с разными цветами, визуализируя текущую фазу и точки разворота.

Поддерживается работа на различных временных интервалах, а также режим интерполяции значений между барами. Доступны специальные режимы расчёта, позволяющие получать промежуточные данные для анализа или отрисовки.

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

НастройкаОписание
TimeFrame Временной интервал — Временной интервал, на котором выполняется расчёт индикатора.
RSIPeriod Период RSI — Период расчёта индикатора RSI.
RSIPrice Тип цены для RSI — Тип цены, используемой при расчёте RSI.
MAPeriod Период скользящей средней — Период скользящей средней, применяемой к данным RSI перед преобразованием Фишера.
MAMode Режим скользящей средней — Метод расчёта скользящей средней, применяемой к данным RSI.
DzLookBackBars Количество баров для динамических зон — Количество баров, используемых для анализа динамических зон вероятностей.
DzStartBuyProbability Начальная вероятность покупок — Начальное значение вероятности, задающее нижнюю границу зоны покупок.
DzStartSellProbability Начальная вероятность продаж — Начальное значение вероятности, задающее верхнюю границу зоны продаж.
Interpolate Интерполяция — Переключатель интерполяции значений между барами для более плавной визуализации.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers   8
#property indicator_color1    DimGray
#property indicator_color2    PaleVioletRed
#property indicator_color3    PaleVioletRed
#property indicator_color4    DeepSkyBlue
#property indicator_color5    DeepSkyBlue
#property indicator_color6    PaleVioletRed
#property indicator_color7    DeepSkyBlue
#property indicator_color8    DimGray
#property indicator_width2    2
#property indicator_width3    2
#property indicator_width4    2
#property indicator_width5    2
#property indicator_style8    STYLE_DOT
#property indicator_maximum   1
#property indicator_minimum  -1

#import "dynamicZone.dll"
   double dzBuyP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision );
   double dzSellP(double& sourceArray[],double probabiltyValue, int lookBack, int bars, int i, double precision );
#import

extern string TimeFrame              = "Current time frame";
extern int    RSIPeriod              =  5;
extern int    RSIPrice               =  PRICE_CLOSE;
extern int    MAPeriod               =  9;
extern int    MAMode                 =  MODE_LWMA;
extern int    DzLookBackBars         = 70;
extern double DzStartBuyProbability  = 0.15;
extern double DzStartSellProbability = 0.15;
extern bool   Interpolate            = true;

double ifishua[];
double ifishub[];
double ifishda[];
double ifishdb[];
double ifisher[];
double sli[];
double bli[];
double zli[];

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

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

double trend[];

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

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

   if (calculateBasicValue)
   {
      for(i=limit; i>=0; i--) ifishdb[i] = 0.1*(iRSI(NULL,0,RSIPeriod,RSIPrice,i)-50);
      for(i=limit; i>=0; i--)
      {
         ifishda[i] = iMAOnArray(ifishdb,0,MAPeriod,0,MAMode,i);
         ifisher[i] = (MathExp(2*ifishda[i])-1)/(MathExp(2*ifishda[i])+1);
      }
      return(0);
   }

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

      for(i=limit, r=Bars-i-1; i>=0; i--,r++)
      {
         ifisher[i] = iCustom(NULL,0,indicatorFileName,"calculateBasicValue",RSIPeriod,RSIPrice,MAPeriod,MAMode,DzLookBackBars,DzStartBuyProbability,DzStartSellProbability,0,i);
         bli[i]     = dzBuyP (ifisher, DzStartBuyProbability,  DzLookBackBars, Bars, i,0.0001);
         sli[i]     = dzSellP(ifisher, DzStartSellProbability, DzLookBackBars, Bars, i,0.0001);
         zli[i]     = dzSellP(ifisher, 0.5,                    DzLookBackBars, Bars, i,0.0001);
         trend[r]   = trend[r-1];
            if (ifisher[i] < sli[i] && ifisher[i] > bli[i]) trend[r] =  0;
            if (ifisher[i] > sli[i])                        trend[r] =  1;
            if (ifisher[i] < bli[i])                        trend[r] = -1;
            if (calculateValue) continue;

            ifishda[i] = EMPTY_VALUE; ifishdb[i] = EMPTY_VALUE;         
            ifishua[i] = EMPTY_VALUE; ifishub[i] = EMPTY_VALUE;         
               if (trend[r]== 1) PlotPoint(i,ifishua,ifishub,ifisher);
     

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

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

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

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

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

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

Стоимость полного кода
641,30₽ ≈ $7.84