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

StepMA_3D

stepma_3d_v4.1 600+.mq5
Вы автор или правообладатель?

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

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

О программе

StepMA_3D — это пользовательский индикатор для MetaTrader 5, рассчитывающий три линии (быструю, медленную и среднюю) на основе алгоритма Step Moving Average. Индикатор использует волатильность актива для определения размера шага, что позволяет адаптивно отслеживать изменения тренда. Линии отображаются на графике цены с возможностью горизонтального смещения.

Индикатор поддерживает два режима расчёта — новый и старый метод, а также три способа оценки волатильности: ATR, WATR и средний ценовой диапазон. Встроенная функция позволяет анализировать данные на старшем таймфрейме, отображая результаты на графике текущего таймфрейма через вызов iCustom.

StepMA_3D поддерживает различные типы цен, включая стандартные (Close, Open, High, Low) и цены Heikin Ashi. Параметр MinStep позволяет фильтровать малые изменения линий, а параметр ShowStepSize включает отображение текущих значений размеров шагов в комментариях к графику.

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитываются данные индикатора
Price Тип цены для расчёта индикатора, включая стандартные и Heikin Ashi варианты
Length Длина периода оценки для расчёта волатильности и шага moving average
MinStepSize Минимальный размер шага в пипсах, ограничивающий нижнюю границу волатильности
MaxStepSize Максимальный размер шага в пипсах, ограничивающий верхнюю границу волатильности
Multiplier Множитель волатильности, управляющий масштабом расчётного шага
MinStep Минимальный шаг в пипсах, ниже которого изменения линий игнорируются
MinDisplace Горизонтальное смещение быстрой линии в барах
MidDisplace Горизонтальное смещение средней линии в барах
MaxDisplace Горизонтальное смещение медленной линии в барах
StepMAMode Режим алгоритма StepMA: новый метод или старый метод расчёта
VoltyMode Режим расчёта волатильности: ATR, WATR или средний ценовой диапазон
ShowStepSize Переключатель отображения текущих значений размеров шагов в комментариях на графике
Получить полный код

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

???//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 clrYellowGreen
#property indicator_color2 clrDodgerBlue
#property indicator_color3 clrCoral
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2

enum ENUM_PRICE
{
   close,               // Close
   open,                // Open
   high,                // High
   low,                 // Low
   median,              // Median
   typical,             // Typical
   weightedClose,       // Weighted Close
   heikenAshiClose,     // Heiken Ashi Close
   heikenAshiOpen,      // Heiken Ashi Open
   heikenAshiHigh,      // Heiken Ashi High   
   heikenAshiLow,       // Heiken Ashi Low
   heikenAshiMedian,    // Heiken Ashi Median
   heikenAshiTypical,   // Heiken Ashi Typical
   heikenAshiWeighted   // Heiken Ashi Weighted Close   
};

enum ENUM_STEPMAMODE
{
   newmode,             // New method
   oldmode              // Old method
};   

enum ENUM_VOLTYMODE
{
   atr,                 // ATR
   watr,                // WATR
   range                // Average Price Range
};   

input ENUM_TIMEFRAMES   TimeFrame            =     0;       //
input ENUM_PRICE        Price                =     0;       // Price
input int               Length               =    10;       // Length of evaluation
input double            MinStepSize          =     0;       // Min Step Size in pips
input double            MaxStepSize          =     0;       // Max Step Size in pips 
input double            Multiplier           =     1;       // Volatility's Factor or Multiplier
input double            MinStep              =     0;       // Min Step in pips 
input int               MinDisplace          =     0;       // Fast Line DispLace or Shift in bars
input int               MidDisplace          =     0;       // Middle Line DispLace or Shift in bars
input int               MaxDisplace          =     0;       // Slow Line DispLace or Shift in bars
input ENUM_STEPMAMODE   StepMAMode           =     0;       // StepMA Algorithm Mode  
input ENUM_VOLTYMODE    VoltyMode            =     0;       // Volatility Mode  
input bool              ShowStepSize         = false;

double fastLine[];
double slowLine[];
double midLine[];
double iprice[];

int      timeframe, draw_begin; 
double   _point, sizes[3];
string   short_name, IndicatorName, TF;
datetime prevtime[3];

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

int deinit() { Comment(""); return(0); }

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

int    steptrend[3][2];
double smax[3][2], smin[3][2];

double StepMA(int index,double& price[],int length,double mult,int voltymode,int bar) 
{

   if(prevtime[index] != Time[bar])
   {
   smin[index][1]      = smin[index][0];   
   smax[index][1]      = smax[index][0];
   steptrend[index][1] = steptrend[index][0]; 
   atrmax[index][1]    = atrmax[index][0];
   atrmin[index][1]    = atrmin[index][0];
   prevtime[index]     = Time[bar]; 
   }

   if(bar > Bars - length - 1) return(0); 

      if(length > 0)
      {   
      double alpha, sumRange = 0, weight = 0;

         for (int i=length-1;i>=0;i--)
	      { 
            switch(voltymode)
            {
            case 0:  alpha = 1;
                     sumRange += MathAbs(High[bar+i] - Low[bar+i]); 
                     break;  
            case 1:  alpha = (length - i)/(1.0*length);
                     sumRange += alpha*MathAbs(High[bar+i] - Low[bar+i]); 
                     break;
            case 2:  alpha = 1;
                     sumRange += MathAbs(price[bar+i] - price[bar+i+1]); 
                     break;
       

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

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

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

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

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

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

Стоимость полного кода
1 051₽ ≈ $12.85