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

dynamic_zone_ma_rsi_adaptive_macd.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. Индикатор отображает линию MACD, сигнальную линию и точки в зависимости от текущего тренда в отдельном окне графика. Для определения адаптивного порогового уровня используется внешняя библиотека dynamicZone.dll.

Поддерживаются четыре метода расчёта RSI (стандартный RSI, Wilders RSI, RSX и Cuttler RSI), а также два независимых набора параметров RSI с отдельными периодами, скоростями и типами цен. Индикатор работает на любом таймфрейме MetaTrader 4 и предоставляет опциональную интерполяцию значений между барами для более плавного отображения при работе на разных таймфреймах.

Внутренняя логика включает вспомогательные функции расчёта SMMA и кастомных RSI, а также вспомогательные процедуры для очистки и отрисовки точек на графике.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм, на котором работает индикатор. Специальные значения "calculateValue" и "returnBars" используются для межтаймфреймовых расчётов.
RsiPeriod1 Период RSI (набор 1) — Период расчёта RSI для первого набора параметров.
Speed1 Скорость сглаживания (набор 1) — Скорость сглаживания (коэффициент) для первого набора RSI-параметров.
RsiMethod1 Метод RSI (набор 1) — Метод расчёта RSI для первого набора параметров (0 — стандартный RSI, 1 — Wilders RSI, 2 — RSX, 3 — Cuttler RSI).
RsiPrice1 Тип цены для RSI (набор 1) — Тип цены, используемой для расчёта RSI в первом наборе параметров (например, PRICE_CLOSE).
RsiPeriod2 Период RSI (набор 2) — Период расчёта RSI для второго набора параметров.
Speed2 Скорость сглаживания (набор 2) — Скорость сглаживания (коэффициент) для второго набора RSI-параметров.
RsiMethod2 Метод RSI (набор 2) — Метод расчёта RSI для второго набора параметров (0 — стандартный RSI, 1 — Wilders RSI, 2 — RSX, 3 — Cuttler RSI).
RsiPrice2 Тип цены для RSI (набор 2) — Тип цены, используемой для расчёта RSI во втором наборе параметров (например, PRICE_CLOSE).
SignalPeriod Период сигнальной линии — Период усреднения для расчёта сигнальной линии осциллятора.
SignalMethod Метод усреднения сигнальной линии — Метод усреднения для расчёта сигнальной линии (например, MODE_SMA).
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 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

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

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

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

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

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

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

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