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

ml-boxbreakout 1.02.mq4

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

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

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

О программе

Данный продукт представляет собой пользовательский индикатор для MetaTrader 4, который отрисовывает на графике временные каналы (Time Channels). Для каждого дня в заданном диапазоне Past_Days индикатор рассчитывает максимальную и минимальную цену в указанный временной интервал и отображает соответствующий прямоугольник канала, а также проекционные линии и текстовые метки цен.

Индикатор создаёт графические объекты прямоугольников для ценовых диапазонов, трендовые линии-проекции от конца канала до заданной точки TC_projection_end, а при необходимости — текстовые подписи значений цен. Настройки позволяют управлять временными периодами, цветами, стилями и толщинами линий.

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

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

НастройкаОписание
UniqueID Уникальный идентификатор — Текстовый префикс, используемый для именования графических объектов индикатора на графике.
Platform_5_Digits 5-значная платформа — Переключатель, определяющий применение дополнительного округления для 5-значных брокеров.
TC_start Время начала канала — Время начала временного канала в формате строки (например, "22:00").
Same_Day Тот же день — Переключатель, сдвигающий время начала канала на одни сутки вперёд.
TC_end Время окончания канала — Время окончания временного канала в формате строки (например, "06:00").
TC_projection_end Время окончания проекции — Время окончания проекционных линий в формате строки (например, "15:00").
TC_Breakout_Offset Смещение прорыва канала — Числовой параметр смещения для проекционных линий прорыва канала.
TC_Breakout_box_solid Задний план прямоугольника прорыва — Переключатель отображения проекционных прямоугольников прорыва на заднем плане.
Past_Days Количество прошедших дней — Количество прошедших дней, для которых рассчитываются и отрисовываются временные каналы.
TC_price Отображение ценовых меток — Переключатель отображения текстовых меток цен высокого и низкого уровня канала.
TC_color Цвет канала — Цвет прямоугольника основного временного канала.
TC_style Стиль канала — Стиль линии основного прямоугольника канала (целочисленное значение).
TC_width Толщина канала — Толщина линии основного прямоугольника канала.
TC_solid Задний план канала — Переключатель отображения основного прямоугольника канала на заднем плане.
TC_Prj_Obj_HI_clr Цвет верхней проекционной линии — Цвет верхней проекционной трендовой линии.
TC_Prj_Obj_HI_width Толщина верхней проекционной линии — Толщина линии верхней проекции.
TC_Prj_Obj_HI_style Стиль верхней проекционной линии — Стиль линии верхней проекции (целочисленное значение стиля линии).
TC_Prj_Obj_LO_clr Цвет нижней проекционной линии — Цвет нижней проекционной трендовой линии.
TC_Prj_Obj_LO_width Толщина нижней проекционной линии — Толщина линии нижней проекции.
TC_Prj_Obj_LO_style Стиль нижней проекционной линии — Стиль линии нижней проекции (целочисленное значение стиля линии).
TC_price_clr Цвет ценовых меток — Цвет текстовых меток цен.
BrokerHasSundayData Наличие воскресных данных у брокера — Переключатель корректировки временного сдвига при наличии у брокера воскресных данных.
Получить полный код

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

#property indicator_chart_window
extern string UniqueID                    = "BoxBreakout ";
extern bool   Platform_5_Digits           = false;
extern string TC_start                    = "22:00";
extern bool   Same_Day                    = false;
extern string TC_end                      = "06:00";
extern string TC_projection_end           = "15:00";
extern double TC_Breakout_Offset          = 0;
extern bool   TC_Breakout_box_solid       = false;
extern int    Past_Days                   = 15;
extern bool   TC_price                    = true;
extern color  TC_color                    = NavajoWhite;
extern int    TC_style                    = 0;
extern int    TC_width                    = 0;
extern bool   TC_solid                    = false;
extern color  TC_Prj_Obj_HI_clr           = RoyalBlue;
extern int    TC_Prj_Obj_HI_width         = 0;
extern int    TC_Prj_Obj_HI_style         = 2;
extern color  TC_Prj_Obj_LO_clr           = Crimson;
extern int    TC_Prj_Obj_LO_width         = 0;
extern int    TC_Prj_Obj_LO_style         = 2;
extern color  TC_price_clr                = NavajoWhite;
extern bool   BrokerHasSundayData         = false;

int      d, i, dig, round, modifier, BarBegin, BarEnd;
int      iYear, iMonth, iDay, iHour, iMinute;
double   PriceHigh, PriceLow, bo, range1, range2;
string   TCObj_Hprice, TCObj_Lprice, TCObj_range, Hprice, Lprice, range3;
datetime TradeDate, TimeBegin, TimeEnd, TCobjprjend;
double buffH1[];
double buffH2[];
double buffL1[];
double buffL2[];

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

int deinit()
{
   string lookFor       = UniqueID;
   int    lookForLength = StringLen(lookFor);   
   for(i = ObjectsTotal() - 1; i >= 0; i--)
   {
      string name = ObjectName(i);
         if(StringSubstr(name, 0, lookForLength) == lookFor) ObjectDelete(name);
   }         
   return(0);
}

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

void DrawTC(datetime TradeDate, string TCObj, string TCstart, string TCend, string TCprjend, int ID, bool Same_Day)
{
                TimeBegin = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCstart);
   if(Same_Day) TimeBegin = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCstart) + 86400;
   TimeEnd      = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCend)    + 86400;
   TCobjprjend  = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCprjend) + 86400;

   if(TimeDayOfWeek(TradeDate) == 5)
   {
      if (BrokerHasSundayData)
            int timeDiff = 2*PERIOD_D1*60;
      else      timeDiff = 3*PERIOD_D1*60;
      TimeBegin   = TimeBegin   + timeDiff;
      TimeEnd     = TimeEnd     + timeDiff;
      TCobjprjend = TCobjprjend + timeDiff;
   }

   BarBegin     = iBarShift(NULL, 0, TimeBegin) + 1;
   BarEnd       = iBarShift(NULL, 0, TimeEnd)   + 1;  

   PriceHigh    = High[Highest(NULL, 0, MODE_HIGH, (BarBegin - BarEnd), BarEnd)];
   PriceLow     = Low [Lowest (NULL, 0, MODE_LOW , (BarBegin - BarEnd), BarEnd)];
   bo           = TC_Breakout_Offset * (Point * modifier);
   range1       = PriceHigh - ((PriceHigh - PriceLow) / 2);
   range2       = (PriceHigh - PriceLow) / (Point * modifier);
   TCObj_Hprice = UniqueID + "_TC10 " + TimeToStr(TradeDate,TIME_DATE);
   TCObj_Lprice = UniqueID + "_TC11 " + TimeToStr(TradeDate,TIME_DATE);
   TCObj_range  = UniqueID + "_TC12 " + TimeToStr(TradeDate,TIME_DATE);
   Hprice       = DoubleToStr(PriceHigh, dig);
   Lprice       = DoubleToStr(PriceLow,  dig);
   round        = 0;
   if(Platform_5_Digits) round = 1;
   range3       = DoubleToStr(range2,  round);

   if(ID == 0)
   {  
      ObjectCreate(TCObj, OBJ_RECTANGLE,  0, 0, 0, 0, 0);
         ObjectSet(TCObj, OBJPROP_TIME1,  TimeBegin);
         ObjectSet(TCObj, OBJPROP_TIME2,  TimeEnd);
         ObjectSet(TCObj, OBJPROP_PRICE1, PriceHigh);  
         ObjectSet(TCObj, OBJPROP_PRICE2, PriceLow);
         ObjectSet(TCObj, OBJPROP_STYLE,  TC_style);
         ObjectSet(TCObj, OBJPROP_COLOR,  TC_color);
         ObjectSet(TCObj, OBJPROP_BACK,   TC_solid);
      

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

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

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

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

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

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

Стоимость полного кода
694,70₽ ≈ $8.49