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

dynamic_zone_ma_rsi_adaptive_macd_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 5, отображаемый в отдельном окне. Он рассчитывает адаптивный MACD на основе двух скользящих средних, построенных на модифицированном индексе относительной силы (RSI), и определяет динамическую зону через внешнюю библиотеку dynamicZone.dll.

Индикатор формирует сигнальную линию как скользящую среднюю от рассчитанного MACD, а также отслеживает тренд, сравнивая значение MACD с динамическим порогом. При пересечении порога происходит смена направления тренда, что визуализируется через буферы отрисовки точек.

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

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

НастройкаОписание
TimeFrame Таймфрейм, на котором работает индикатор. Специальные значения "calculateValue" и "returnBars" используются для межтаймфреймовой обработки.
RsiPeriod1 Период расчёта RSI для первой скользящей средней.
Speed1 Скорость сглаживания (коэффициент) для первой скользящей средней на основе RSI.
RsiMethod1 Метод расчёта RSI для первой скользящей средней. Допустимые значения: 0 — стандартный RSI, 1 — RSI Уайлдерса, 2 — RSX, 3 — RSI Каттлера.
RsiPrice1 Тип цены, используемый для расчёта RSI первой скользящей средней (например, PRICE_CLOSE).
RsiPeriod2 Период расчёта RSI для второй скользящей средней.
Speed2 Скорость сглаживания (коэффициент) для второй скользящей средней на основе RSI.
RsiMethod2 Метод расчёта RSI для второй скользящей средней. Допустимые значения: 0 — стандартный RSI, 1 — RSI Уайлдерса, 2 — RSX, 3 — RSI Каттлера.
RsiPrice2 Тип цены, используемый для расчёта RSI второй скользящей средней (например, PRICE_CLOSE).
SignalPeriod Период расчёта сигнальной линии как скользящей средней от MACD.
SignalMethod Метод расчёта сигнальной линии, применяемый в функции iMAOnArray (например, MODE_SMA).
DzLookBackBars Количество баров для расчёта динамической зоны (параметр lookBack в функции dzBuyP из dynamicZone.dll).
Interpolate Переключатель интерполяции значений при переходе между таймфреймами. При включённом значении значения MACD и динамической зоны интерполируются между барами.
Получить полный код

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

#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 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"};
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 i

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

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

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

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

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

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

Стоимость полного кода
797₽ ≈ $9.74