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

Parabolic Marsi Adaptive MACD

parabolic marsi adaptive macd.mq5

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

xauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 2 общих теговtm sniper pro.pineTradingView · 2 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 2 общих теговpro +.pineTradingView · 2 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 2 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Parabolic Marsi Adaptive MACD — это пользовательский индикатор для MetaTrader 4, отображаемый в отдельном окне. Он строит адаптивную MACD-линию на основе двух RSI-периодов с настраиваемыми параметрами скорости и цены расчёта, а также добавляет к ней сигнальную линию, рассчитываемую выбранным методом скользящей средней.

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

Все расчёты выполняются на каждом тике при обновлении ценовых данных. Внутренняя логика использует пользовательские реализации скользящих средних (SMA, EMA, SMMA, LWMA, TEMA) и RSI-сглаженных Moving Average для формирования итоговых значений индикатора.

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

НастройкаОписание
First rsi period (RsiPeriod1) Период RSI 1 — Первый период RSI, используемый при расчёте адаптивной MACD-линии.
First rsi speed (Speed1) Скорость 1 — Коэффициент скорости сглаживания для первого RSI-адаптивного компонента.
First rsi price (RsiPrice1) Цена RSI 1 — Тип цены для расчёта первого RSI (например, Close, Open, High, Low и др.).
Second rsi period (RsiPeriod2) Период RSI 2 — Второй период RSI, используемый при расчёте адаптивной MACD-линии.
Second rsi speed (Speed2) Скорость 2 — Коэффициент скорости сглаживания для второго RSI-адаптивного компонента.
Second rsi price (RsiPrice2) Цена RSI 2 — Тип цены для расчёта второго RSI (например, Close, Open, High, Low и др.).
Signal period (SignalPeriod) Период сигнальной средней — Период сигнальной скользящей средней.
Signal average type (SignalMethod) Метод сигнальной средней — Тип скользящей средней, используемой для построения сигнальной линии (SMA, EMA, SMMA, LWMA, TEMA).
Accumulation step (AccStep) Шаг ускорения SAR — Шаг увеличения коэффициента ускорения параболического SAR (Accumulation step).
Accumulation limit (AccLimit) Предел ускорения SAR — Максимальный коэффициент ускорения параболического SAR (Accumulation limit).
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 10
#property indicator_color1  clrLimeGreen
#property indicator_color2  clrLimeGreen
#property indicator_color3  clrPaleVioletRed
#property indicator_color4  clrPaleVioletRed
#property indicator_color5  clrDimGray  
#property indicator_color6  clrGold
#property indicator_color7  clrBlue
#property indicator_color8  clrRed
#property indicator_color9  clrBlue
#property indicator_color10 clrRed
#property indicator_width1  2
#property indicator_width3  2
#property indicator_width5  2
#property indicator_width6  2
#property indicator_width9  3
#property indicator_width10 3
#property strict

enum enMaTypes
{
   ma_sma,    // Simple moving average
   ma_ema,    // Exponential moving average
   ma_smma,   // Smoothed MA
   ma_lwma,   // Linear weighted MA
   ma_tema    // Triple exponential moving average - TEMA
};

extern int                RsiPeriod1   = 14;           // First rsi period
extern double             Speed1       = 1.2;          // First rsi speed
extern ENUM_APPLIED_PRICE RsiPrice1    = PRICE_CLOSE;  // First rsi price
extern int                RsiPeriod2   = 34;           // Second rsi period
extern double             Speed2       = 0.8;          // Second rsi speed
extern ENUM_APPLIED_PRICE RsiPrice2    = PRICE_CLOSE;  // Second rsi price
extern int                SignalPeriod = 9;            // Signal period
extern enMaTypes          SignalMethod = ma_sma;       // Signal average type
extern double             AccStep      = 0.01;         // Accumulation step
extern double             AccLimit     = 0.1;          // Accumulation limit

double machuu[];
double machud[];
double machdd[];
double machdu[];
double macd[];
double signal[];
double sarUp[];
double sarDn[];
double saraUp[];
double saraDn[];
double slope[];

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

double workMaRsi[][6];
double iMaRsi(int price, int rsiPeriod, 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*fabs(iRSI(NULL,0,rsiPeriod,price,i)/100.0-0.5))*(tprice-workMaRsi[r-1][instanceNo]);
   return(workMaRsi[r][instanceNo]);
}

double work[][7];
#define _high     0
#define _low      1
#define _ohigh    2
#define _olow     3
#define _open     4
#define _position 5
#define _af       6

void iParabolic(double high, double low, double step, double limit, double& pClose, double& pOpen, double& pPosition, double& pChange, int i)
{
   if (ArrayRange(work,0)!=Bars) ArrayResize(work,Bars); i = Bars-i-1;

      pChange = 0;
         work[i][_ohigh]    = high;
         work[i][_olow]     = low;
            if (i<1)
               {
                  work[i][_high]     = high;
                  work[i][_low]      = low;
                  work[i][_open]     = high;
                  work[i][_position] = -1;
                  return;
               }
         work[i][_open]     = work[i-1][_open];
         work[i][_af]       = work[i-1][_af];
         work[i][_position] = work[i-1][_position];
         work[i][_high]     = fmax(work[i-1][_high],

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

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

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

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

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

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

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