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

RubicBox

rubicbox v.01.mq5
Вы автор или правообладатель?

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

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

О программе

RubicBox — индикатор для MetaTrader 5, который выявляет последовательности внутренних баров (inside bars), когда диапазон High/Low бара полностью укладывается в пределы предыдущего бара. При достижении заданного минимального количества таких баров индикатор рисует на графике прямоугольную рамку из двух горизонтальных линий, ограничивающую временной интервал и уровни открытия и закрытия серии.

Если после серии внутренних баров появляется обычный бар, нарушающий условие inside bar, индикатор может отправить уведомления: всплывающее сообщение на графике, звуковой сигнал и/или мобильное уведомление. Все объекты рисунка управляются через уникальный префикс, задаваемый пользователем, что позволяет на одном графике использовать несколько экземпляров индикатора без конфликтов.

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

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

НастройкаОписание
UniqueName Уникальный префикс для именования графических объектов, создаваемых индикатором, позволяющий различать экземпляры на одном графике.
MinBars Минимальное количество последовательных внутренних баров, необходимое для отрисовки рамки на графике.
BoxColor Задаёт цвет линий рамки, отрисовываемой на графике при обнаружении серии внутренних баров.
BoxWidth Задаёт толщину линий рамки, отрисовываемой на графике.
BoxStyle Задаёт стиль линий рамки (например, пунктирная или сплошная линия).
AlertsMessage Включает или отключает всплывающие сообщения на графике при пробое серии внутренних баров.
AlertsSound Включает или отключает звуковой сигнал при пробое серии внутренних баров.
AlertsSoundFile Задаёт путь к звуковому файлу, который воспроизводится при срабатывании звукового уведомления.
AlertsMobile Включает или отключает мобильные уведомления при пробое серии внутренних баров.
Получить полный код

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

#property version  "1.00"

#include <stdlib.mqh>

#property indicator_chart_window

extern string              UniqueName           =     "RubicBox";
extern int                 MinBars            =           3;
extern color               BoxColor             =       Blue;
extern int                 BoxWidth             =           2; 
extern ENUM_LINE_STYLE     BoxStyle =       STYLE_DASH; 
extern bool    AlertsMessage  =  true;
extern bool    AlertsSound  =  true;
extern string  AlertsSoundFile  =  "news.wav";   ///"stops.wav"   //"alert2.wav"   //"expert.wav";
extern bool    AlertsMobile  =  true;

int TimeBar = 0;
datetime insideTimeStart;
datetime insideTimeEnd;
datetime insideTimeBox;
int insideShift = 0;
int insideCount = 0;   
double insideHight = 0;
double insideLow = 0;

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

int deinit()
  {

   DeleteObj(UniqueName);

   return(0);
  }

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

void RubicBox(int limit)
{

   for(int shift=limit;shift>=1;shift--) 
   {	
      double shiftLow = (Close[shift]<Open[shift]?Close[shift]:Close[shift]);
      double shiftHigh = (Close[shift]>Open[shift]?Close[shift]:Close[shift]);

      if( shiftLow >= Low[shift+1] && shiftHigh <= High[shift+1]) //InsideBar
      {
         if( insideShift == 0)
         {            
            insideShift = shift+1;
            insideTimeStart = Time[shift];
            insideLow = Close[shift];
            insideHight = Close[shift];          
         }
         insideLow = (Close[shift]<insideLow?Close[shift]:insideLow);
         insideHight = (Close[shift]>insideHight?Close[shift]:insideHight);
         insideTimeEnd = Time[shift];
         insideCount++;         

         if( insideCount >= MinBars && insideTimeBox!=insideTimeEnd)
         {

               string name = UniqueName + " " + TimeToStr(insideTimeStart);
               DeleteBox(name);               
               PlotBox(name,insideTimeStart,insideLow,insideTimeEnd,insideHight,BoxStyle,BoxColor,BoxWidth,0);
               PlotBox(name,insideTimeStart,insideLow,insideTimeEnd,insideHight,BoxStyle,Box

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

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

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

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

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

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

Стоимость полного кода
335,90₽ ≈ $4.11