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

StepMA

stepma nmc v3.01.mq5

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

indicator previous session range + projected candles + boschoch protected for tradingview.pineTradingView · 1 общих тегов#__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 общих тегов
Вы автор или правообладатель?

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

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

О программе

StepMA — индикатор для MetaTrader 4, рассчитывающий скользящую среднюю на основе взвешивания по нормальной функции плотности (PDF). Основная линия формируется с использованием параметров чувствительности, шага и коэффициентов PDF, а изменение тренда отображается стрелками и вспомогательными линиями.

Индикатор поддерживает работу на произвольном таймфрейме, интерполяцию значений между барами, а также комплексную систему уведомлений: всплывающие сообщения, push-уведомления, email и звуковые сигналы. Всплывающие оповещения срабатывают при смене тренда.

В качестве вспомогательных инструментов индикатор отрисовывает линии трендовых разрывов и стрелки на основе ATR(20), маркируя точки разворота. Все визуальные элементы управляются отдельными настройками, включая размер и тип стрелок.

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

НастройкаОписание
TimeFrame Таймфрейм — Таймфрейм для расчёта индикатора (строковое обозначение или числовой)
Pdfma Length (PdfMaLength) Длина PDFMA — Период расчёта PDF-скользящей средней
Sensivity Factor (Sensitivity) Чувствительность — Множитель чувствительности шаговой средней
Constant Step Size (StepSize) Размер шага — Фиксированный размер шага расчёта средней
Pdfma variance (Variance) Дисперсия PDF — Дисперсия для функции плотности PDF
Pdfma mean (Mean) Среднее PDF — Среднее значение для функции плотности PDF
OShify (Shift) Сдвиг — Сдвиг индикаторной линии в барах
High/Low Mode Switch (more sensitive) (HighLow) Режим High/Low — Переключатель режима High/Low для повышения чувствительности расчёта
Interpolate Интерполяция — Включает интерполяцию значений линии между барами
alertsOn Уведомления включены — Общий переключатель системы уведомлений
alertsOnCurrent Уведомления по текущему бару — Уведомление по текущему бару или по предыдущему
alertsMessage Всплывающие сообщения — Всплывающее сообщение при смене тренда
alertsNotification Push-уведомления — Push-уведомление при смене тренда
alertsSound Звуковые сигналы — Звуковой сигнал при смене тренда
alertsEmail Email-уведомления — Отправка email-уведомления при смене тренда
ShowArrows Показать стрелки — Отображение стрелок разворота на графике
arrowSize Размер стрелок — Размер отображаемых стрелок разворота
uparrowCode Код стрелки вверх — Код символа стрелки восходящего разворота
dnarrowCode Код стрелки вниз — Код символа стрелки нисходящего разворота
ArrowsOnFirstBar Стрелки на первом баре — Отображение стрелок на первом видимом баре
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1  DeepSkyBlue
#property indicator_color2  Red
#property indicator_color3  Orange
#property indicator_color4  DeepSkyBlue
#property indicator_color5  Red
#property indicator_width1  2
#property indicator_width2  2
#property indicator_width3  2

extern string TimeFrame           = "Current time frame";
extern int    PdfMaLength         = 10;      // Pdfma Length
extern double Sensitivity         = 5;       // Sensivity Factor
extern double StepSize            = 2;       // Constant Step Size
extern double Variance            = 1;       // Pdfma variance
extern double Mean                = 0.0;     // Pdfma mean
extern int    Shift               = 0;       // OShify
extern bool   HighLow             = false;   // High/Low Mode Switch (more sensitive)
extern bool   Interpolate         = true; 
extern bool   alertsOn            = false;
extern bool   alertsOnCurrent     = true;
extern bool   alertsMessage       = true;
extern bool   alertsNotification  = false;
extern bool   alertsSound         = false;
extern bool   alertsEmail         = false;

extern bool   ShowArrows          = true;
extern int    arrowSize           = 2;
extern int    uparrowCode         = 233;
extern int    dnarrowCode         = 234;
extern bool   ArrowsOnFirstBar    = true;

double LineBuffer[];
double DnBuffera[];
double DnBufferb[];
double arrowUp[];
double arrowDn[];
double smin[];
double smax[];
double trend[];
double _coeffs[];

string indicatorFileName;
bool   returnBars;
int    timeFrame;

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

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { LineBuffer[0] = limit+1; return(0); }
         if (timeFrame!=Period())
         {
            int shift = -1; if (ArrowsOnFirstBar) shift=1;
            limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
            if (trend[limit]==-1) CleanPoint(limit,DnBuffera,DnBufferb);
            for (int i=limit; i>=0; i--)
            {
               int y = iBarShift(NULL,timeFrame,Time[i]);
               int x = iBarShift(NULL,timeFrame,Time[i+shift]);               
                  LineBuffer[i] = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,0,y);
                  trend[i]      = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,7,y);
                  DnBuffera[i]  = EMPTY_VALUE;
   	            DnBufferb[i]  = EMPTY_VALUE;
               if(x!=y)
               {
                  arrowUp[i]    = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,3,y);
                  arrowDn[i]    = iCustom(NULL,timeFrame,indicatorFileName,"",PdfMaLength,Sensitivity,StepSize,Variance,Mean,0,HighLow,false,alertsOn,alertsOnCurrent,alertsMessage,alertsNotification,alertsSound,alertsEmail,4,y);
               }
               else
               {
                  arrowUp[i]    = EMPTY_VALUE;
                  arrowDn[i]    = EMPTY_VALUE;
               }

               if (!Interpolate || y==iBarShift(NULL,timeFrame,Time[i-1])) continue;

               int n,w;
               datetime time = iTime(NULL,timeFrame,y);
               for(n = 1; i+n < Bars && Time[i+n] >= time; n++) continue;	
               for(w = 1; w < n; w++)
                  LineBuffer[i+w] = LineBuffer[i] + (LineBuffer[i+n] - LineBuffer[i]) * w/n;
            }               
            for (i=limit; i>=0; i--) if (trend[i]==-1) PlotPoint(i,DnBuffera,DnBufferb,LineBuffer);
            return(0);
         }

      double useSize = Point*MathPow(10,MathMod(Digits,2));
      if (trend[limit]==-1) CleanPoint(limit,DnBuffera,DnBufferb);
      for(i=limit; i>=0; i--)
      {
         double thigh;
         double tlow;
            if (HighLow)
	               { thigh=iPdfma(Low[i ] ,PdfMaLength,_coe

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

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

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

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

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

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

Стоимость полного кода
823,80₽ ≈ $10.07