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

Horizontal Grid Lines

0 - horizontal grid lines.mq5
Вы автор или правообладатель?

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

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

О программе

Данный индикатор для MetaTrader 5 строит горизонтальную ценовую сетку на графике на основе данных недельных максимумов и минимумов. Сетка формируется с заданным интервалом в пунктах, а линии окрашиваются в разные цвета в зависимости от того, является ли ценовой уровень «круглым» числом.

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

При удалении индикатора с графика все созданные объекты горизонтальных линий и метки автоматически удаляются. Для символов GOLD и XAUUSD применяется увеличенный масштаб расчёта пунктов.

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

НастройкаОписание
HGrid_Weeks Количество недель, используемых для расчёта диапазона цен при построении горизонтальной сетки.
HGrid_Pips Размер шага горизонтальной сетки в пунктах, определяющий интервал между линиями.
HLine_2 Цвет горизонтальных линий сетки для круглых ценовых уровней.
Line_2_Width Толщина линий горизонтальной сетки для круглых ценовых уровней.
Line_2_Style Стиль линий горизонтальной сетки для круглых ценовых уровней.
HLine_1 Цвет горизонтальных линий сетки для некруглых ценовых уровней.
Line_1_Width Толщина линий горизонтальной сетки для некруглых ценовых уровней.
Line_1_Style Стиль линий горизонтальной сетки для некруглых ценовых уровней.
H_Grid Текстовый префикс, отображаемый в информационной метке на графике.
Show_Label Включает или отключает отображение информационной метки на графике.
Font_Color Задаёт цвет шрифта информационной метки, отображаемой на графике.
Font_Size Задаёт размер шрифта информационной метки на графике.
Font_Bold Включает или отключает жирное начертание шрифта информационной метки на графике.
Font_Corner Определяет угол графика, к которому привязывается информационная метка.
Left_Right Горизонтальное смещение информационной метки от угла графика в пикселях.
Up_Down Вертикальное смещение информационной метки от угла графика в пикселях.

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

#property version   "2.00"
#property strict
#property indicator_chart_window

input int   HGrid_Weeks = 10;      // Weeks 
input double HGrid_Pips = 5.0;    // H-Grid Size  
input color HLine_2     = DarkSlateGray;    // H-Grid 1 Round Number Color
input int Line_2_Width  = 1;       // H-Grid 1 Width
input ENUM_LINE_STYLE Line_2_Style  = 2;       // H-Grid 1 Style
input color HLine_1     = DarkSlateGray;    // H-Grid 2 Non Round Number Color
input int Line_1_Width  = 1;       // H-Grid 2 Width
input ENUM_LINE_STYLE Line_1_Style  = 2;       // H-Grid 2 Style

input string H_Grid     = "hg";    // Label Text 
input bool Show_Label   = true;    // Label Visible
input color Font_Color  = DodgerBlue;  // Label Color
input int Font_Size     = 11;      // Font Size
input bool Font_Bold    = false;   // Font Bold
input int Font_Corner   = 3;       // Corner
input int Left_Right    = 25;      // Left - Right
input int Up_Down       = 140;     // Up - Down

string HGrid_text;
string FB;

bool firstTime = true;
datetime lastTime = 0;

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

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[])
{
      // код доступен только после оплаты
   }
   ObjectCreate("HGrid_txt", OBJ_LABEL, 0, 0, 0);
   ObjectSet("HGrid_txt", OBJPROP_CORNER, Font_Corner);
   ObjectSet("HGrid_txt", OBJPROP_XDISTANCE, Left_Right);
   ObjectSet("HGrid_txt", OBJPROP_YDISTANCE, Up_Down); 

   if(Show_Label == 1)
   {
      ObjectSetText("HGrid_txt", H_Grid + ": " + DoubleToString(HGrid_Pips,1), Font_Size, FB, Font_Color);
   }
   else
   {
      ObjectSetText("HGrid_txt", "");
   }      

   int    counted_bars=IndicatorCounted();

   if(true /*lastTime == 0 || CurTime() - lastTime > 5*/ ) 
   {
      firstTime = false;
      lastTime = CurTime();

      if(HGrid_Weeks > 0 && HGrid_Pips*10 > 0 ) 
      {
         double weekH = iHigh( NULL, PERIOD_W1, 0 );
         double weekL = iLow( NULL, PERIOD_W1, 0 );

         for(int i = 1; i < HGrid_Weeks; i++ ) 
         {
            weekH = MathMax( weekH, iHigh( NULL, PERIOD_W1, i ) );
            weekL = MathMin( weekL, iLow( NULL, PERIOD_W1, i ) );
         }

         double pipRange = HGrid_Pips* 10 * Point;
         if (Symbol() == "GOLD" || Symbo

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