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

# - # - session h-line ez - mod - 3.mq5

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

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

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

О программе

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

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

Поддерживаются стандартные звуковые уведомления (Alert) и push-уведомления на мобильное устройство. Время начала и окончания сессии задаётся в текстовом формате, таймфрей определяется автоматически по текущему графику.

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

НастройкаОписание
Start_Time Время начала сессии в текстовом формате (например, "8:00"), определяющее начало построения базовой линии.
End_Time Время окончания сессии в текстовом формате (например, "23:58"), определяющее конец построения линий.
Base_Line_Color Цвет базовой горизонтальной линии, проведённой по цене открытия в начале сессии.
Extend_Lines Переключатель типа линий: при выключении используются горизонтальные линии (OBJ_HLINE), при включении — трендовые (OBJ_TREND).
Show_Target_Lines Отображение целевых линий (дального и ближнего уровней) относительно базовой цены.
Long_Target_Color Цвет линии дальнего целевого уровня (выше базовой цены).
Short_Target_Color Цвет линии ближнего целевого уровня (ниже базовой цены).
Long_Target Расстояние в пунктах от базовой цены для построения линии дальнего целевого уровня.
Short_Target Расстояние в пунктах от базовой цены для построения линии ближнего целевого уровня.
Line_Width Толщина линий на графике в пикселях.
Line_Style Стиль линий на графике (целочисленное значение стиля линии).
ALERTS Текстовый параметр заголовка уведомлений, отображаемый перед сообщениями о пересечении уровней.
Push_Notifications Включение и отключение отправки push-уведомлений при пересечении уровней.
Base_Line_cross Включение уведомлений при пересечении цены базовой линии.
Base_cross_max_count Максимальное количество уведомлений о пересечении базовой линии за одну сессию.
Long_Target_cross Включение уведомлений при пересечении дальнего целевого уровня.
Long_Target_cross_max_count Максимальное количество уведомлений о пересечении дальнего целевого уровня за одну сессию.
Short_Target_cross Включение уведомлений при пересечении ближнего целевого уровня.
Short_Target_cross_max_count Максимальное количество уведомлений о пересечении ближнего целевого уровня за одну сессию.
Получить полный код

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

#property indicator_chart_window
#property strict

extern string Start_Time = "8:00";
extern string End_Time = "23:58";
extern color  Base_Line_Color = DodgerBlue;
extern bool   Extend_Lines = false;
extern bool   Show_Target_Lines = true;
extern color  Long_Target_Color = Green;
extern color  Short_Target_Color = Red;
extern int    Long_Target = 420;
extern int    Short_Target = 420;
extern int    Line_Width = 2;
extern int    Line_Style = 1;

extern string ALERTS = "* * * ALERTS * * * ";
extern bool   Push_Notifications = false;
extern bool   Base_Line_cross = false;
extern int    Base_cross_max_count = 5;
extern bool   Long_Target_cross = false;
extern int    Long_Target_cross_max_count = 5;
extern bool   Short_Target_cross = false;
extern int    Short_Target_cross_max_count = 5;

int Base_Line_OBJ, Long_Target_OBJ, Short_Target_OBJ, i;

string TM;

int Count=0;

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

int deinit()
{
   ObjectDelete("BLEZ");
   ObjectDelete("LTEZ");
   ObjectDelete("STEZ");

   return(0);
}

int start()
{
      // код доступен только после оплаты
   } 
   datetime start_time = StrToTime(Start_Time);
   datetime end_time = StrToTime(End_Time);

   int shift_start_time = iBarShift(Symbol(),0,start_time);

   double base_open = iOpen(Symbol(), 0, shift_start_time);
   double base_open_long_target = iOpen(Symbol(), 0, shift_start_time) + Long_Target*Point;
   double base_open_short_target = iOpen(Symbol(), 0, shift_start_time) - Short_Target*Point;

   ObjectCreate(0,"BLEZ", Base_Line_OBJ, 0, 0, 0, 0, 0); 
   ObjectSet("BLEZ", OBJPROP_COLOR, Base_Line_Color);
   ObjectSet("BLEZ", OBJPROP_WIDTH, Line_Width);
   ObjectSet("BLEZ", OBJPROP_STYLE, Line_Style);
   ObjectSet("BLEZ", OBJPROP_TIME1, start_time);
   ObjectSet("BLEZ", OBJPROP_TIME2, end_time);
   ObjectSet("BLEZ", OBJPROP_PRICE1, Open[shift_start_time]);
   ObjectSet("BLEZ", OBJPROP_PRICE2, Open[shift_start_time]);
   ObjectSet("BLEZ", OBJPROP_RAY, false);

   if(Show_Target_Lines == true)
   {
      ObjectCreate(0, "LTEZ", Long_Target_OBJ, 0, 0, 0, 0, 0); 
      ObjectSet("LTEZ", OBJPROP_COLOR, Long_Target_Color);
      ObjectSet("LTEZ", OBJPROP_WIDTH, Line_Width);
      ObjectSet("LTEZ", OBJPROP_STYLE, Line_Style);
      ObjectSet("LTEZ", OBJPROP_TIME1, start_time);
      ObjectSet("LTEZ", OBJPROP_TIME2, end_time);
      ObjectSet("LTEZ", OBJPROP_PRICE1, base_open_long_target );
      ObjectSet("LTEZ", OBJPROP_PRICE2, base_open_long_target );
      ObjectSet("LTEZ", OBJPROP_RAY, false);

      ObjectCreate(0, "STEZ", Short_Target_OBJ, 0, 0, 0, 0, 0); 
      ObjectSet("STEZ", OBJPROP_COLOR, Short_Target_Color);
      ObjectSet("STEZ", OBJPROP_WIDTH, Line_Width);
      ObjectSet("STEZ", OBJPROP_STYLE, Line_Style);
      ObjectSet("STEZ", OBJPROP_TIME1, start_time);
      ObjectSet("STEZ", OBJPROP_TIME2, end_time);
      ObjectSet("STEZ", OBJPROP_PRICE1, base_open_short_target );
      ObjectSet("STEZ", OBJPROP_PRICE2, base_open_short_target );
      ObjectSet("STEZ", OBJPROP_RAY, false);   
   }

   double Price = Bid;
   Count++; 

   double b_blag = (Bid < base_open && Ask > base_open);
   double b_blal = (Bid < base_open && Ask < base_open);
   double b_bgag = (Bid > base_open && Ask > base_open);

   double tl_blag = (Bid < base_open_long_target && Ask > base_open_long_target);
   double tl_blal = (Bid < base_open_long_target && Ask < base_open_long_target

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

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

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

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

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

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

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