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

0 - h-lines targets hist v1.0.mq5

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

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

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

О программе

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

Целевые линии (Target 1 и Target 2) рисуются симметрично относительно уровня открытия — выше и ниже. Каждая линия может быть включена или выключена отдельно. На графике также отображаются текстовые метки с указанием ценовых уровней, их шрифт, размер и положение настраиваются.

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

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

НастройкаОписание
Hour_ Часовой сдвиг для определения начала торгового дня
Minutes Минутный сдвиг для определения начала торгового дня
APRx Источник цены для уровня открытия дня: цена закрытия (a) или цена открытия (b) бара
SHT1 Включает или отключает отображение целевых линий Target 1
SHT2 Включает или отключает отображение целевых линий Target 2
TargetDist1 Расстояние целевых линий Target 1 от уровня открытия дня в пунктах
TargetDist2 Расстояние целевых линий Target 2 от уровня открытия дня в пунктах
Shift_Line Горизонтальный сдвиг линий индикатора в барах
SHT Включает или отключает отображение текстовых меток с ценовыми уровнями
FB Управляет жирностью шрифта текстовых меток цен
T_Size Размер шрифта текстовых меток цен
TLRx Смещение текстовой метки цены по горизонтали от текущего бара в периодах
TUDx Смещение текстовой метки цены по вертикали в пунктах

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

#property description "Targets Lnes and Price - Phylo-File45"
#property description "Code updated post build 600 - Phylo-File45"
#property strict

#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 DarkSlateGray
#property indicator_style1 0
#property indicator_width1 5

#property indicator_color2 Lime
#property indicator_style2 0
#property indicator_width2 5

#property indicator_color3 Red
#property indicator_style3 0
#property indicator_width3 5

#property indicator_color4 DarkGreen
#property indicator_style4 0
#property indicator_width4 5

#property indicator_color5 Maroon
#property indicator_style5 0
#property indicator_width5 5

enum APR
{
  a, // Price Close
  b // Price Open
};

input int Hour_= 9; // Start Hours
input int Minutes = 0; // Start Minutes

input APR APRx = b; // Start Time Price (Bar Open or Close)
input bool SHT1 = true; // Show Target 1
input bool SHT2 = true; // Show Target 2
input int TargetDist1 = 150; // Target 1 Distance
input int TargetDist2 = 1000; // Target 2 Distance
input int Shift_Line = 0; // Shift

input bool SHT  = true; // Show Price
input bool FB = false ; // Price Font Bold
input int T_Size = 10 ; // Price Size
input int  TLRx = 15; // Price Left-Right
input int  TUDx = 0; // Price Up-Down

double TodayOpenBuffer[];
double LT1[];
double ST1[];
double LT2[];
double ST2[];

double Pointx;
double SLT;
string OP, Fontx;

int init()

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

void OnDeinit(const int  reason)
{
   ObjectDelete( "BT");
   ObjectDelete("LT1T");
   ObjectDelete("ST1T");
   ObjectDelete("LT2T");
   ObjectDelete("ST2T");
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
      // код доступен только после оплаты
   }

int DailyOpen(int offset, int lastbar)
{
   int shift;
   int tzdiffsec= (Hour_*3600)+(Minutes*60);
   double barsper30= 1.0*PERIOD_M30/Period();

    lastbar= (int) MathMin(Bars-20*barsper30-1, lastbar);

	for(shift=lastbar;shift>=offset;shift--)
	{
	  TodayOpenBuffer[shift]= 0;

	  LT1[shift] = 0;
	  ST1[shift] = 0;
	  LT2[shift] = 0;
	  ST2[shift] = 0;

	  switch(APRx)
	  {
	     case a: SLT = Close[shift]; OP = "Close: "; break;
	     case b: SLT = Open[shift]; OP = "Open: ";
	  }   

     if(TimeDay(Time[shift]-tzdiffsec) != TimeDay(Time[shift+1]-tzdiffsec))
     {      // day change

        TodayOpenBuffer[shift]= SLT;

       if(SHT1){
       LT1[shift] = SLT + TargetDist1*_Point;
       ST1[shift] = SLT - TargetDist1*_Point;}    

       if(SHT2){
       LT2[shift] = SLT + TargetDist2*_Point; 
       ST2[shift] = SLT - T

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