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

dynamic_zone_ma_rsi_adaptive_macd_ver_2_nmc.mq5

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

pro +.pineTradingView · 3 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 3 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 3 общих теговmelona ob strategy 6th update (by 3dots).pineTradingView · 3 общих теговsmc+ict+indicators+scalping master.pineTradingView · 3 общих теговpremium_super_scalping killer algo.pineTradingView · 3 общих тегов
Вы автор или правообладатель?

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

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

О программе

Это пользовательский индикатор для MetaTrader 4, рассчитывающий адаптивный MACD на основе двух параллельных RSI-сглаженных скользящих средних. Динамическая зона определяется через внешнюю DLL-библиотеку, а направление тренда задаётся сравнением MACD с этой зоной. Индикатор отображает линию MACD, сигнальную линию и точки входов в отдельном окне, поддерживает работу на любом таймфрейме и интерполяцию значений между барами.

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

НастройкаОписание
TimeFrame Таймфрейм — Выбирает таймфрейм для расчёта индикатора или специальный режим работы
RsiPeriod1 Период первого RSI — Период первого RSI, используемого в расчёте адаптивной MA-RSI
Speed1 Скорость первого — Коэффициент сглаживания первого адаптивного MA-RSI
RsiMethod1 Метод первого RSI — Метод расчёта первого RSI (выбор из нескольких вариантов)
RsiPrice1 Цена первого RSI — Тип цены для расчёта первого RSI
RsiPeriod2 Период второго RSI — Период второго RSI, используемого в расчёте адаптивной MA-RSI
Speed2 Скорость второго — Коэффициент сглаживания второго адаптивного MA-RSI
RsiMethod2 Метод второго RSI — Метод расчёта второго RSI (выбор из нескольких вариантов)
RsiPrice2 Цена второго RSI — Тип цены для расчёта второго RSI
T3Hot Параметр T3 Hot — Параметр нагрева T3-фильтра, применяемого в методе T3 RSI
T3Original Оригинальный T3 — Переключатель между оригинальной и модифицированной формулой T3
SignalPeriod Период сигнальной линии — Период сглаживания для сигнальной линии MACD
SignalMethod Метод сигнальной линии — Метод сглаживания сигнальной линии
DzLookBackBars Баров динамической зоны — Количество баров, используемых для расчёта динамической зоны
Interpolate Интерполяция — Включает интерполяцию значений между барами при работе на другом таймфрейме
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1  Silver
#property indicator_color2  PaleVioletRed
#property indicator_color3  LimeGreen
#property indicator_color4  LimeGreen
#property indicator_color5  Red
#property indicator_style1  STYLE_DOT
#property indicator_style5  STYLE_DOT
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  2

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

extern string TimeFrame      = "Current time frame";
extern int    RsiPeriod1     = 14;
extern double Speed1         = 1.2;
extern int    RsiMethod1     = 0;
extern int    RsiPrice1      = PRICE_CLOSE;
extern int    RsiPeriod2     = 34;
extern double Speed2         = 0.8;
extern int    RsiMethod2     = 0;
extern int    RsiPrice2      = PRICE_CLOSE;
extern double T3Hot          = 0.7;
extern bool   T3Original     = false;
extern int    SignalPeriod   = 9;
extern int    SignalMethod   = MODE_SMA;
extern int    DzLookBackBars = 50;
extern bool   Interpolate    = true;

double macdua[];
double macdub[];
double macd[];
double signal[];
double zerol[];
double trend[];

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

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

int start()
{
      // код доступен только после оплаты
   }

double workMaRsi[][2];

double iMaRsi(int price, int rsiPeriod, int rsiMode, double speed, int i, int instanceNo=0)
{
   if (ArrayRange(workMaRsi,0)!=Bars) ArrayResize(workMaRsi,Bars); int r = Bars-i-1;

   double tprice = iMA(NULL,0,1,0,MODE_SMA,price,i);
      if (r<rsiPeriod)
            workMaRsi[r][instanceNo] = tprice;
      else  workMaRsi[r][instanceNo] = workMaRsi[r-1][instanceNo]+(speed*MathAbs(iRsi(tprice,rsiPeriod,rsiMode,i,instanceNo)/100.0-0.5))*(tprice-workMaRsi[r-1][instanceNo]);
   return(workMaRsi[r][instanceNo]);
}

string rsiMethodNames[] = {"rsi","Wilders rsi","rsx","Cuttler RSI","T3 rsi"};
string getRsiName(int& method)
{
   int max = ArraySize(rsiMethodNames)-1;
      method=MathMax(MathMin(method,max),0); return(rsiMethodNames[method]);
}

double workRsi[][26];
#define _price  0
#define _change 1
#define _changa 2

double iRsi(double price, double period, int rsiMode, int i, int instanceNo=0)
{
   if (ArrayRange(workRsi,0)!=Bars) ArrayResize(workRsi,Bars);
      int z = instanceNo*13; 
      int r = Bars-i-1;

   workRsi[r][z+_price] = price;
   switch (rsiMode)
   {
      case 0:
         double alpha = 1.0/period; 
         if (r<period)
            {
               int k; double sum = 0; for (k=0; k<period && (r-k-1)>=0; k++) sum += MathAbs(workRsi[r-k][z+_price]-workRsi[r-k-1][z+_price]);
                  workRsi[r][z+_change] = (workRsi[r][z+_price]-workRsi[0][z+_price])/MathMax(k,1);
                  workRsi[r][z+_changa] =                                         sum/MathMax(k,1);
            }
         else
            {
               double change = workRsi[r][z+_price]-workRsi[r-1][z+_price];
                               workRsi[r][z+_change] = workRsi[r-1][z+_change] + alpha*(        change  - workRsi[r-1][z+_change]);
                               workRsi[r][z+_changa] = workRsi[r-1][z+_changa] + alpha*(MathAbs(change) - workRsi[r-1][z+_changa]);
            }
         if (workRsi[r][z+_changa] != 0)
               return(50.0*(workRsi[r][z+_change]/workRsi[r][z+_changa]+1));
         else  return(50.0);

      case 1 :
         workRsi[r][z+1] = iSmma(0.5*(MathAbs(workRsi[r][z+_price]-workRsi[r

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

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

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

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

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

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

Стоимость полного кода
1 023,40₽ ≈ $12.51