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

Hull Master 22 Next MTF

hull master 22 next mtf.mq5

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

#__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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор Hull Master 22 Next MTF реализует скользящую среднюю Хала (Hull MA) с поддержкой мультитаймфрейма. Расчёт основан на линейно-взвешенной скользящей средней (LWMA) с настраиваемыми параметрами периода, скорости и сглаживания. Индикатор использует два буфера для отрисовки основной линии HMA и вспомогательных данных о тренде.

Поддерживается работа на более высоких таймфреймах относительно текущего графика. Доступна линейная и квадратичная интерполяция значений между барами мультитаймфрейма для более плавного отображения линии на графике.

При изменении направления тренда индикатор рисует цветные трендовые линии с настраиваемой толщиной и длиной. Реализована система уведомлений: всплывающие сообщения, звуковые сигналы и мобильные уведомления при переключении тренда.

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитывается индикатор
TimeFrameAuto Автоматический выбор следующего по иерархии таймфрейма для расчёта
Interpolate Тип интерполяции значений между барами мультитаймфрейма
HMAPeriod Основной период скользящей средней Хала
HMAPrice Тип цены, используемый для расчёта индикатора
HMASpeed Множитель для расчёта половинного периода скользящей средней
HMAHot Множитель для расчёта периода скользящей средней Хала
HMAShift Сдвиг индикатора в барах относительно графика
UniqueID Уникальный идентификатор для именования объектов индикатора на графике
LinesNumber Количество трендовых линий для отображения на графике
LinesShift Сдвиг трендовых линий в барах
RayRight Направление трендовых линий — вправо или в обе стороны
LinesSize Толщина трендовых линий
ColorUP Цвет линий тренда при восходящем направлении
ColorDN Цвет линий тренда при нисходящем направлении
SIGNALBAR Номер бара, на котором формируется сигнал о смене тренда
SoundFile Путь к звуковому файлу для воспроизведения при уведомлениях
Получить полный код

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

#property description "Скользящая средняя Хала [HullMA] почти устраняет задержку в целом, и в то же самое"
#property description "время улучшает сглаживание. HullMA умеет не отставать от быстрых изменений ценовой"
#property description "динамики при наличии превосходного сглаживания SMA за тот же самый период." 
#property version  "3.39"  //из "2.22"

#property indicator_chart_window
#property indicator_buffers 2

#property indicator_color1  clrLimeGreen
#property indicator_color2  clrRed  //Crimson

#property indicator_width1  2
#property indicator_width2  2

#property indicator_style1  STYLE_DOT
#property indicator_style2  STYLE_DOT

enum TFauto { OFF, /*switch OFF*/ TF1, /*+ 1 TimeFrame*/ TF2, /*+ 2 TimeFrame*/  TF3 /*+ 3 TimeFrame*/  };
enum Iterpolation { intNO, /*No interpolation*/ intLinear, /*Linear Interpolation*/ intQuad /*Quadratic Interpolation*/ };

extern ENUM_TIMEFRAMES   TimeFrame  =  PERIOD_CURRENT;
extern TFauto        TimeFrameAuto  =  TF1;  //OFF;  //
extern Iterpolation    Interpolate  =  intQuad;  //true;      

extern int               HMAPeriod  =  21;
extern ENUM_APPLIED_PRICE HMAPrice  =  PRICE_CLOSE;
extern double             HMASpeed  =  2.0;
extern double               HMAHot  =  1.0;
extern int                HMAShift  =  0;         // Hull shift

extern string             UniqueID  =  "";  //"Hull SupRes";
extern int             LinesNumber  =  12;
extern int              LinesShift  =  -1;
extern bool               RayRight  =  false;
extern int               LinesSize  =  2;
extern color               ColorUP  =  clrAqua;  //Blue;
extern color              ColorDN   =  clrMagenta;  //Black;

extern int               SIGNALBAR  =  1;   //На каком баре сигналить....
extern bool          AlertsMessage  =  true,   //false,    
                       AlertsSound  =  true,   //false,
                       AlertsEmail  =  false,
                      AlertsMobile  =  false;
extern string            SoundFile  =  "alert.wav";   //"news.wav";  //"expert.wav";  //   //"stops.wav"   //"alert2.wav"   //

double hma[], hmada[], hmadb[], work[], trend[];   
int HalfPeriod, HullPeriod, MTF, LSH, SGB, MAX;  
string IndikName, PREF;  bool returnBars;  datetime TimeBar=0;

int init()
{
      // код доступен только после оплаты
   }
   HMAPeriod  = fmax(HMAPeriod,2);
   HalfPeriod = floor(HMAPeriod/HMASpeed);
   HullPeriod = floor(sqrt(HMAPeriod*HMAHot));   MAX = HMAPeriod+HalfPeriod+HullPeriod;

      TimeFrame = fmax(TimeFrame,_Period);       LSH = -LinesShift;    SGB = SIGNALBAR;

         if (TimeFrame>_Period) MTF = TimeFrame; 
         else 
          {
           if (TimeFrameAuto==0) MTF=_Period;  
           if (TimeFrameAuto==1) MTF=NextHigherTF(_Period); 
           if (TimeFrameAuto==2) MTF=NextHigherTF(NextHigherTF(_Period)); 
           if (TimeFrameAuto==3) MTF=NextHigherTF(NextHigherTF(NextHigherTF(_Period)));
          }     

   IndikName  = WindowExpertName();
   returnBars = MTF==-99;

   IndicatorBuffers(5);
      SetIndexBuffer(0,hma);     SetIndexLabel(0,stringMTF(MTF)+": HMA ["+(string)HMAPeriod+"*"+DoubleToStr(HMASpeed,1)+"*"+DoubleToStr(HMAHot,1)+"]");  
      SetIndexBuffer(1,hmada);   SetIndexLabel(1,NULL);
      SetIndexBuffer(2,hmadb);   SetIndexLabel(2,NULL);
      SetIndexBuffer(3,trend);
      SetIndexBuffer(4,work);

   for (int i=0; i<indicator_buffers; i++) //{ 
        SetIndexStyle(i,DRAW_LINE);   

   IndicatorShortName(stringMTF(MTF)+": HMA M22 ["+(string)HMAPeriod+"*"+DoubleToStr(HMASpeed,1)+"*"+DoubleToStr(HMAHot,1)+"]");  

   if (UniqueID!="") PREF = UniqueID;
   else PREF = stringMTF(MTF)+": HMA M22 ["+(string)HMAPeriod+"*"+DoubleToStr(HMASpeed,1)+"*"+DoubleToStr(HMAHot,1)+"]  ";

return(0);
}

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

void deleteLines()
{
   string name;
   for (int s=ObjectsTotal()-1; s>=0; s--) {
        name=ObjectName(s);
        if (StringSubstr(name,0,StringLen(PREF))==PREF) ObjectDelete(name); }
}

int start()
{
      // код доступен только после оплаты
   }
   int i, CountedBars = IndicatorCounted();
      if (CountedBars<0) return(-1);
      if (CountedBars>0) CountedBars--;   
         int limit=fmin(Bars-CountedBars,Bars-1);
         if (returnBars) { hma[0] = fmin(limit+1,Bars-1); return(0); }

   for (i=0; i<5; i++) { 
        SetIndexEmptyValue(i,0.0);             //--- значение 0 отображаться не будет 
        SetIndexEmptyValue(i,EMPTY_VALUE);     //--- значение 0 отображаться не будет 
        SetIndexShift(i,HMAShift*MTF/_Period); //--- установка сдвига линий при отрисовке  
        SetIndexDrawBegin(i,MAX*1); }          //--- пропуск отрисовки первых баров  

   if (MTF==_Period)  //calculateValue || 
    {
     if (trend[limit]==-1) CleanPoint(limit,hmada,hmadb);

     for (i=limit; i>=0; i--) work[i] = 2.0*iMA(NULL,0,HalfPeriod,0,MODE_LWMA,HMAPrice,i)-iMA(NULL,0,HMAPeriod,0,MODE_LWMA,HMAPrice,i);

     for (i=limit; i>=0; i--)
      {
       hma[i]   = iMAOnArray(work,0,HullPeriod,0,MODE_LWMA,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 (trend[i] == -1) PlotPoint(i,hmada,hmadb,hma);
      }    

     deleteLines();

     if (LinesNumber>0)
      {
       int k = 0;
       for (i=0; i<Bars && k<LinesNumber; i++)

       if (trend[i]!=trend[i+1])
        {
         string name = PREF+TimeToStr(Time[i+LSH],TIME_DATE|TIME_MINUTES);   //(string)Time[i];
         ObjectCreate(name,OBJ_TREND,0,Time[i+LSH],hma[i+LSH],Time[i+LSH]+ PERIOD_D1*60,hma[i+LSH]);
         ObjectSet(name,OBJPROP_SELECTABLE,false);
         ObjectSet(name,OBJPROP_HIDDEN,true);
         ObjectSet(name,OBJPROP_BA

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

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

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

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

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

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

Стоимость полного кода
851,20₽ ≈ $10.40