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

XO

xo - mtf & alerts.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

Индикатор позволяет настраивать отображение стрелок, их цвет и идентификатор объектов на графике. Стрелки автоматически удаляются и перерисовываются при необходимости.

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

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

НастройкаОписание
TimeFrame Таймфрейм — Выбранный таймфрейм для расчёта индикатора. Поддерживается мультитаймфреймовый режим.
BoxSize Размер коробки — Размер коробки, используемый для определения изменения тренда цены.
ShowArrows Показывать стрелки — Включает или отключает отображение стрелок на графике при смене направления тренда.
arrowsIdentifier Идентификатор стрелок — Идентификатор объектов-стрелок на графике, используемый для их создания и удаления.
arrowsUpColor Цвет стрелки вверх — Цвет стрелок, указывающих на восходящий тренд.
arrowsDnColor Цвет стрелки вниз — Цвет стрелок, указывающих на нисходящий тренд.
alertsOn Уведомления включены — Общий переключатель для включения или отключения всех уведомлений индикатора.
alertsOnCurrent Отслеживать текущий бар — Определяет, на каком баре отслеживать смену тренда: на текущем или на предыдущем.
alertsMessage Сообщения-оповещения — Включает или отключает вывод текстовых сообщений-оповещений при смене тренда.
alertsSound Звуковые уведомления — Включает или отключает звуковой сигнал при смене тренда.
alertsEmail Email-уведомления — Включает или отключает отправку уведомлений по электронной почте при смене тренда.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  White
#property indicator_color2  Red
#property indicator_width1  2
#property indicator_width2  2
#property indicator_level1  0

extern string TimeFrame        = "Current time frame";
extern double BoxSize          = 6.5;
extern bool   ShowArrows       = true;
extern string arrowsIdentifier = "XOarrows";
extern color  arrowsUpColor    = White;
extern color  arrowsDnColor    = Red;
extern bool   alertsOn         = false;
extern bool   alertsOnCurrent  = true;
extern bool   alertsMessage    = false;
extern bool   alertsSound      = false;
extern bool   alertsEmail      = false;

double Hi[];
double Lo[];
double no[];
double kr[];
double trend[];

string indicatorFileName;
bool   calculateValue;
bool   returnBars;
int    timeFrame;

int init()
{
      // код доступен только после оплаты
   }
int deinit()
{
   if (!calculateValue && ShowArrows) deleteArrows();
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
   int i,limit;

   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
         limit = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { kr[0] = limit+1; return(0); }

   if (calculateValue || timeFrame == Period())
   {
      double pipModifier = 1; if (Digits==3 || Digits==5) pipModifier=10;
      for(i=limit; i>=0; i--)
      {         
         if (i>=(Bars-2)) { Hi[i+1]=Close[i]; Lo[i+1]=Close[i]; continue; }

         double cur = Close[i];
         Hi[i]    = Hi[i+1];
         Lo[i]    = Lo[i+1];
         no[i]    = no[i+1];
         kr[i]    = kr[i+1];
         trend[i] = trend[i+1];

            if (cur > (Hi[i]+BoxSize*pipModifier*Point)) { Hi[i] = cur; Lo[i] = cur-BoxSize*pipModifier*Point; kr[i] += 1; no[i] = 0; }
            if (cur < (Lo[i]-BoxSize*pipModifier*Point)) { Lo[i] = cur; Hi[i] = cur+BoxSize*pipModifier*Point; no[i] -= 1; kr[i] = 0; }
               if (kr[i] > 0) trend[i]= 1;
               if (no[i] < 0) trend[i]=-1;
            manageArrow(i);
      }
      manageAlerts();
      return(0);
   }

   limit = MathMax(limit,MathMin(Bars,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()));
   for (i=limit;i>=0;i--)
   {
      int y = iBarShift(NULL,timeFrame,Time[i]);
         kr[i]    = iCustom(NULL,timeFrame,indicatorFileName,"CalculateValue",BoxSize,0,y);
         no[i]    = iCustom(NULL,timeFrame,indicatorFileName,"CalculateValue",BoxSize,1,y);
         trend[i] = iCustom(NULL,timeFrame,indicatorFileName,"CalculateValue",BoxSize,4,y);
         manageArrow(i);
   }
   manageAlerts();
   ret

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

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

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

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

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

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

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