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

#zerolag_hma_stochasic.mq4

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

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор #zerolag_hma_stochasic — это пользовательский индикатор для MetaTrader 4, рассчитывающий стохастик, сглаженный нулевого лага на основе Халл Moving Average (HMA). Основная линия строится на основе стохастика, пропущенного через двойное сглаживание HMA, а сигнальная линия представляет собой скользящее среднее от основной линии. Индикатор отображается в отдельном окне с уровнями 80, 20 и 0.

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

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

НастройкаОписание
TimeFrame Таймфрейм для расчёта индикатора (например, M1, H4, D1 или current time frame)
HMALength Длина периода Халл Moving Average, применяемого для сглаживания стохастика
KPeriod Период %K стохастика
DPeriod Период %D стохастика, используемый также для расчёта сигнальной линии
Slowing Параметр замедления стохастика
Method Метод усреднения для расчёта сигнальной линии и сглаживания
Price Тип цены, используемой для расчёта стохастика
Interpolate Переключатель интерполяции значений между барами при межтаймфреймовом расчёте
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1  DeepSkyBlue
#property indicator_color2  Red
#property indicator_color3  Red
#property indicator_color4  Gold
#property indicator_width1  2
#property indicator_width2  2
#property indicator_width3  2
#property indicator_level1 80
#property indicator_level2 20
#property indicator_level3 0

extern string TimeFrame   = "current time frame";
extern int    HMALength      = 10;
extern int KPeriod = 14;
extern int DPeriod = 5;
extern int Slowing = 5;
extern int Method = 0;
extern int    Price       = PRICE_CLOSE;
extern bool   Interpolate = true;

double hma[];
double hmada[];
double hmadb[];
double hma1[];
double hma2[];
double trend[];
double SignalBuffer[];

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

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

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

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

   if (calculateValue || timeFrame==Period())
   {
      if (!calculateValue) if (trend[limit] == -1) CleanPoint(limit,hmada,hmadb);
      for(i=limit; i>=0; i--) {
         hma1[i] = iHma(iStochastic(NULL,0,KPeriod,DPeriod,Slowing,Method,Price,MODE_MAIN,i),HMALength,i,0);
         hma2[i] = iHma(hma1[i]                         ,HMALength,i,2);
         hma[i]  = 2.0*hma1[i]-hma2[i];

         hmada[i] = EMPTY_VALUE;
         hmadb[i] = EMPTY_VALUE;
         trend[i] = trend[i+1];
            if (hma[i] > hma[i+1]) trend[i] =   1;
            if (hma[i] < hma[i+1]) trend[i] =  -1;
            if (!calculateValue && trend[i] == -1) PlotPoint(i,hmada,hmadb,hma);
         }
      for (int cnt = 0; cnt < limit; cnt++) {
         SignalBuffer[cnt] = iMAOnArray(hma,Bars,DPeriod,0,Method,cnt);
         }
      return(0);
   }      

   limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
   if (trend[limit] == -1) CleanPoint(limit,hmada,hmadb);
   for(i=limit; i>=0; i--)
   {
      int y = iBarShift(NULL,timeFrame,Time[i]);
         trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",HMALength,Price,5,y);
         hma[i]   = iCustom(NULL,timeFrame,indicatorFileName,"calculateValue",HMALength,Pr

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

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

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

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

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

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

Стоимость полного кода
470,50₽ ≈ $5.75