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

(c) jurik ma-signal.mq5

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

multi-signal trading signal system.pineTradingView · 1 общих тегов(1) volatility stop.mq4MQL4 / MetaTrader 4 · 1 общих теговliquidity profile_smc_tema_dsps$.pineTradingView · 1 общих теговle van do® - swing signals & overlays private.pineTradingView · 1 общих теговben's stochastic ema auto trading robot.mq4MQL4 / MetaTrader 4 · 1 общих теговwae_smc_htf_v2.pineTradingView · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор отображает свечи Хайкин Аши на графике MetaTrader 5 с возможностью применения сглаживания Юрика или стандартной скользящей средней. Два гистограммных буфера визуализируют направление тренда, два дополнительных буфера отображают открытие и закрытие преобразованных свечей.

Расчёт цены закрытия Хайкин Аши может использовать улучшенную формулу с нормализацией по диапазону или классический усреднённый метод. При включённом параметре Step значения буферов сглаживаются с шагом в пунктах, уменьшая визуальный шум.

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

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

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

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

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrNONE;
#property indicator_color2 clrNONE;
#property indicator_color3 C'238,125,218';
#property indicator_color4 C'55,193,233';
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 6
#property indicator_width4 6

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 ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double trend[];

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

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

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = Bars-counted_bars;
         if (Digits==3 || Digits==5)
               pointModifier = 10;
         else  pointModifier = 1;               

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

      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[pos+1]+ExtMapBuffer4[pos+1])/2;
                     haHigh   = MathMax(maHigh, MathMax(haOpen,haClose));
                     haLow    = MathMin(maOpen,  MathMin(haOpen,haClose));

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

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

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

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

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

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

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

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

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