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

(jh) heiken jurik.mq5

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

(jh) chart jurik.mq5MQL5 / MetaTrader 5 · 1 общих теговlinear breakthrough strategy.pineTradingView · 1 общих тегов(c) jurik ma-signal.mq5MQL5 / MetaTrader 5 · 1 общих теговmulti-signal trading signal system.pineTradingView · 1 общих тегов(1) volatility stop.mq4MQL4 / MetaTrader 4 · 1 общих теговliquidity profile_smc_tema_dsps$.pineTradingView · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор для MetaTrader 5 рассчитывает и отображает свечи Heikin Ashi с возможностью применения адаптивного сглаживания Jurik или стандартных скользящих средних. Тренд направления визуализируется гистограммами в отдельном окне, что позволяет оценивать динамику цены без учёта рыночного шума.

Индикатор предоставляет два режима расчёта: с использованием пользовательского сглаживающего фильтра Jurik (включён по умолчанию) или через стандартные функции скользящих средних MQL5. Параметр Step позволяет дополнительно сглаживать отображаемые значения, игнорируя незначительные изменения.

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

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

НастройкаОписание
MaPeriod Период скользящей средней, используемый при отключённом режиме Jurik. Определяет количество баров, учитываемых при расчёте скользящей для цен Heikin Ashi.
MaMetod Метод расчёта скользящей средней, применяемый при отключённом режиме Jurik. Используется в качестве альтернативы сглаживанию Jurik для вычисления цен Heikin Ashi.
Step Шаг сглаживания отображаемых значений Heikin Ashi. Значения, изменяющиеся менее чем на заданный шаг в пунктах, приравниваются к предыдущим, что уменьшает визуальный шум на графике.
BetterFormula Переключатель альтернативной формулы расчёта цены закрытия свечей Heikin Ashi. При активном значении используется упрощённая формула с учётом соотношения диапазонов, при неактивном — классическое среднее арифметическое четырёх цен.
jurik Переключатель режима сглаживания. При активном значении для расчёта цен Heikin Ashi используется адаптивный фильтр Jurik, при неактивном — стандартные скользящие средние MQL5.
Length Длина сглаживания для фильтра Jurik. Определяет период адаптивного сглаживающего алгоритма, используемого при расчёте цен Heikin Ashi. Активен только при включённом режиме Jurik.
Phase Параметр фазы сглаживания Jurik. Влияет на скорость реакции адаптивного фильтра на изменение цены. Допустимые значения в диапазоне от -100 до 100.
alertsOn Главный переключатель системы уведомлений. При активном значении индикатор отслеживает смену направления тренда и инициирует соответствующие уведомления.
alertsOnCurrent Переключатель определения бара для проверки тренда. При активном значении проверяется текущий бар, при неактивном — предыдущий завершённый бар.
alertsMessage Переключатель всплывающих сообщений на графике при смене направления тренда Heikin Ashi. Работает только если главный переключатель уведомлений активен.
alertsSound Переключатель воспроизведения звукового сигнала при смене направления тренда Heikin Ashi. Работает только если главный переключатель уведомлений активен.
alertsEmail Переключатель отправки email-уведомлений при смене направления тренда Heikin Ashi. Работает только если главный переключатель уведомлений активен.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 C'100,130,240';
#property indicator_color2 C'247,0,0';
#property indicator_color3 C'20,97,255';
#property indicator_color4 C'242,100,120';
#property indicator_width1 8
#property indicator_width2 8
#property indicator_width3 8
#property indicator_width4 8
#property indicator_minimum 0
#property indicator_maximum 2

extern int    MaPeriod        =  2;
extern int    MaMetod         =  2;
extern int    Step            =  10;
extern bool   BetterFormula   = true;
extern bool   jurik           = true;
extern int    Length          =  2;
extern double Phase           =  0;
extern bool   alertsOn        = false;
extern bool   alertsOnCurrent = false;
extern bool   alertsMessage   = false;
extern bool   alertsSound     = false;
extern bool   alertsEmail     = false;

double histUp1[];
double histDn1[];
double histUp2[];
double histDn2[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double trend[][2];

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

int start()
{
      // код доступен только после оплаты
   }
   double maOpen, maClose, maLow, maHigh;
   double haOpen, haClose, haLow, haHigh;
   int    counted_bars=IndicatorCounted();
   int    pointModifier;
   int    i,r,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = MathMin(Bars-counted_bars,Bars-1);
         if (ArrayRange(trend,0)!=Bars) ArrayResize(trend,Bars);
         if (Digits==3 || Digits==5)
               pointModifier = 10;
         else  pointModifier = 1;               

   for(i=limit,r=Bars-i-1; i >= 0; i--,r++)
   {
      if (jurik)
         {
            maOpen  = iSmooth(Open[i], Length,Phase,i, 0);
            maClose = iSmooth(Close[i],Length,Phase,i,10);
            maLow   = iSmooth(Low[i],  Length,Phase,i,20);
            maHigh  = iSmooth(High[i], Length,Phase,i,30);
         }
      else
         {
            maOpen  = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_OPEN ,i);
            maClose = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_CLOSE,i);
            maLow   = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_LOW  ,i);
            maHigh  = iMA(NULL,0,MaPeriod,0,MaMetod,PRICE_HIGH ,i);
         }

         if (BetterFormula) {
               if (maHigh!=maLow)
                     haClose = (maOpen+maClose)/2+(((maClose-maOpen)/(maHigh-maLow))*MathAbs((maClose-maOpen)/2));
               else  haClose = (maOpen+maClose)/2; }
         else        haClose = (maOpen+maHigh+maLow+maClose)/4;
                     haOpen   = (ExtMapBuffer3[i+1]+ExtMapBuffer4[i+1])/2;
                     haHigh   = MathMax(maHigh, MathMax(haOpen,haClose));
                     haLow    = MathMin(maOpen,  MathMin(haOpen,haClose));

         if (haOpen<haClose) { ExtMapBuffer1[i]=haLow;  ExtMapBuffer2[i]=haHigh; } 
         else                { ExtMapBuffer1[i]=haHigh; ExtMapBuffer2[i]=haLow;  } 
                               ExtMapBuffer3[i]=haOpen;
                               ExtMapBuffer4[i]=haClose;

      if (Step>0)
      {
         if( MathAbs(ExtMapBuffer1[i]-ExtMapBuffer1[i+1]) < Step*pointModifier*Point ) ExtMapBuffer1[i]=ExtMapBuffer1[i+1];
         if( MathAbs(ExtMapBuffer2[i]-ExtMapBuffer2[i+1]) < Step*pointModifier*Point ) ExtMapBuffer2[i]=ExtMapBuffer2[i+1];
         if( MathAbs(ExtMapBuffer3[i]-ExtMapBuffer3[i+1]) < Step*pointModifier*Point ) ExtMapBuffer3[i]=ExtMapBuffer3[i+1];
         if( MathAbs(ExtMapBuffer4[i]-ExtMapBuffer4[i+1]) < Step*pointModifier*Point ) ExtMapBuffer4[i]=ExtM

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

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

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

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

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

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

Стоимость полного кода
589,30₽ ≈ $7.22