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

wrb-hidden-gap-bt@fxsignalspot.mq5

Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4 на языке MQL4. Он предназначен для анализа исторических данных ценовых баров и автоматического выявления на графике баров с широким диапазоном и скрытых ценовых разрывов. Результаты анализа отображаются в виде графических объектов прямо на ценовом графике.

Индикатор использует настраиваемый период отката для сравнения диапазонов баров и определяет, образуется ли скрытый разрыв между соседними барами. Обнаруженные зоны рисуются прямоугольниками, которые могут быть как незалитыми, так и залитыми — в зависимости от настроек и последующего поведения цены.

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

Все визуальные элементы и поведение индикатора настраиваются через параметры: цвета, стили линий, размеры объектов, расположение кнопки и параметры расчётов. Индикатор работает в стандартном графиковом окне MetaTrader 4 и использует один буфер для отрисовки маркеров.

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

НастройкаОписание
UseWholeBars Использовать целые бары — Переключатель метода расчёта: при включении используются полные диапазоны баров (максимум-минимум), при выключении — тело бара (открытие-закрытие).
WRB_LookBackBarCount Количество баров для анализа WRB — Количество баров назад, которые сравниваются с текущим при определении бара с широким диапазоном.
WRB_WingDingsSymbol Символ маркера WRB — Код символа WingDings, используемый для отрисовки маркера бара с широким диапазоном на графике.
HGcolor1 Цвет скрытого разрыва 1 — Основной цвет прямоугольников скрытых разрывов на графике.
HGcolor2 Цвет скрытого разрыва 2 — Альтернативный цвет, который применяется при пересечении нового скрытого разрыва с уже существующим.
HGstyle Стиль линии скрытого разрыва — Стиль линии (сплошная, пунктир и т.д.) для прямоугольников скрытых разрывов.
StartCalculationFromBar Начало расчёта от бара — Максимальный номер бара, с которого начинается расчёт индикатора. Позволяет ограничить глубину анализа.
HollowBoxes Пустые прямоугольники — Определяет, будут ли прямоугольники скрытых разрывов залиты цветом или отображаться как пустые (только контур).
DoAlerts Включить уведомления — Включает или отключает звуковые и текстовые уведомления при достижении цены уровня скрытого разрыва.
btn_corner Угол размещения кнопки — Угол графика, в котором размещается кнопка управления видимостью.
DisplayID Идентификатор отображения — Идентификатор, отображаемый на текстовой метке кнопки на графике. Используется для именования объектов индикатора и глобальных переменных.
btn_Font Шрифт кнопки — Шрифт текста на кнопке управления видимостью на графике.
btn_FontSize Размер шрифта кнопки — Размер шрифта текста на кнопке управления видимостью.
btn_on_color Цвет кнопки (видно) — Цвет кнопки при отображаемых (включённых) данных индикатора.
btn_off_color Цвет кнопки (скрыто) — Цвет кнопки при скрытых (выключенных) данных индикатора.
btn_text_color Цвет текста кнопки — Цвет текста на кнопке управления видимостью.
btn_background_color Фон кнопки — Цвет фона кнопки управления видимостью.
btn_border_color Рамка кнопки — Цвет рамки кнопки управления видимостью.
button_x Позиция кнопки по X — Горизонтальное расстояние кнопки от выбранного угла графика в пикселях.
button_y Позиция кнопки по Y — Вертикальное расстояние кнопки от выбранного угла графика в пикселях.
btn_Width Ширина кнопки — Ширина кнопки управления видимостью в пикселях.
btn_Height Высота кнопки — Высота кнопки управления видимостью в пикселях.
button_note2 Дополнительный текст кнопки — Дополнительный текст, отображаемый рядом с кнопкой на графике.
Получить полный код

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

#property version   "1.00"

#property description "Identifies Wide Range Bars and Hidden Gaps."
#property description "WRB and HG definitions are taken from the WRB Analysis Tutorial-1"
#property description "by M.A.Perry from TheStrategyLab.com."
#property description "Alerts and optimization by Andriy Moraru."

#property indicator_chart_window
#property indicator_buffers 1

#property indicator_color1 clrAqua      // WRB symbol
#property indicator_width1 1

#define UNFILLED_PREFIX "HG_UNFILLED_"
#define FILLED_PREFIX "HG_FILLED_"
#define PREFIX "HG_"

extern bool UseWholeBars = true;
extern int WRB_LookBackBarCount = 3;
extern int WRB_WingDingsSymbol = 115;
extern color HGcolor1 = clrDodgerBlue;
extern color HGcolor2 = clrDodgerBlue;
extern ENUM_LINE_STYLE HGstyle = STYLE_SOLID;
extern int StartCalculationFromBar = 500;
extern bool HollowBoxes = false;
extern bool DoAlerts = false;

extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER;
extern string             DisplayID             = "WRB-Hidden_Gap-BT";     
extern string             btn_Font              = "Arial";
extern int                btn_FontSize          = 10;           
extern color              btn_on_color          = clrLime;
extern color              btn_off_color         = clrRed;
extern color              btn_text_color        = clrWhite;
extern color              btn_background_color  = clrDimGray;
extern color              btn_border_color      = clrBlack;
extern int                button_x              = 400;          
extern int                button_y              = 0;          
extern int                btn_Width             = 150;        
extern int                btn_Height            = 20;          
extern string             button_note2          = "------------------------------";

bool           show_data            = true;
bool           recalc               = true;

double WRB[];

int totalBarCount = -1;

string   IndicatorName, IndicatorObjPrefix ,buttonId;

string   GenerateIndicatorName(const string target)
{
   string name = target;
   int try = 2;
   while (WindowFind(name) != -1)
   {
      name = target + " #" + IntegerToString(try++);
   }
   return name;
}

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

void ObDeleteObjectsByPrefix(string Prefix)
{
   int L = StringLen(Prefix);
   int i = 0; 
   while(i < ObjectsTotal())
   {
       string ObjName = ObjectName(i);
       if(StringSubstr(ObjName, 0, L) != Prefix) 
       { 
           i++; 
           continue;
       }
       ObjectDelete(ObjName);
   }
}

int deinit2()
{ 
  ObDeleteObjectsByPrefix(PREFIX);
  SetIndexStyle(0, DRAW_NONE);
return(0);
}

int deinit()
{
   deinit2();
   ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);

   return(0);
}

void createButton(string buttonID,string buttonText,int width,int height,string font,int fontSize,color bgColor,color borderColor,color txtColor)
{
      ObjectDelete    (0,buttonID);
      ObjectCreate    (0,buttonID,OBJ_BUTTON,0,0,0);
      ObjectSetInteger(0,buttonID,OBJPROP_COLOR,txtColor);
      ObjectSetInteger(0,buttonID,OBJPROP_BGCOLOR,bgColor);
      ObjectSetInteger(0,buttonID,OBJPROP_BORDER_COLOR,borderColor);
      ObjectSetInteger(0,buttonID,OBJPROP_BORDER_TYPE,BORDER_RAISED);
      ObjectSetInteger(0,buttonID,OBJPROP_XSIZE,width);
      ObjectSetInteger(0,buttonID,OBJPROP_YSIZE,height);
      ObjectSetString (0,buttonID,OBJPROP_FONT,font);
      ObjectSetString (0,buttonID,OBJPROP_TEXT,buttonText);
      ObjectSetInteger(0,buttonID,OBJPROP_FONTSIZE,fontSize);
      ObjectSetInteger(0,buttonID,OBJPROP_SELECTABLE,0);
      ObjectSetInteger(0,buttonID,OBJPROP_CORNER,btn_corner);
      ObjectSetInteger(0,buttonID,OBJPROP_HIDDEN,1);
      ObjectSetInteger(0,buttonID,OBJPROP_XDISTANCE,9999);
      ObjectSetInteger(0,buttonID,OBJPROP_YDISTANCE,9999);
}                               

void handleButtonClicks()
{
   if (ObjectGetInteger(0, buttonId, OBJPROP_STATE))
   {
      ObjectSetInteger(0, buttonId, OBJPROP_STATE, false);
      show_data = !show_data;
      GlobalVariableSet(IndicatorName + "_visibility", show_data ? 1.0 : 0.0);
      recalc = true;
      start();
   }
}

void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{     
      handleButtonClicks();

      if (id==CHARTEVENT_OBJECT_CLICK && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_BUTTON)

      if (show_data)
      {
      init();

      start();       

      ObjectSetInteger(ChartID(),buttonId,OBJPROP_COLOR,btn_on_color);
      }
      else
      {       
      ObjectSetInteger(ChartID(),buttonId,OBJPROP_COLOR,btn_off_color);      
      deinit2();
      }    
}

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

   int NumBar = 500;
   if (DoAlerts) CheckAlert();

      int begin = (NumBar>0) ? NumBar-1 : (Bars-2)/_Period;

      if (begin > NumBar - WRB_LookBackBarCount) begin = NumBar - WRB_LookBackBarCount;

      if (begin > StartCalculationFromBar) begin = StartCalculationFromBar;

      for (int i = begin; i > 0; i--)
      {
         checkWRB(i);
         ch

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

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

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

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

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

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

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