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

smQuarters Lines_v1

smquarters lines_v1.mq5
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
TURN_OFF Переключатель полного отключения индикатора. При активации обработка событий прекращается.
AutoAdjust Автоматическая корректировка множителя шага уровней в зависимости от текущего таймфрейма (увеличение в 10 раз для диапазона М5–Н1, в 100 раз для МН1).
Show_Labels Переключатель отображения стрелок-меток с ценой на каждом уровне.
ShiftLabel Целочисленный параметр смещения ценовых меток.
NumLinesAboveBelow Количество линий уровней, отрисовываемых выше и ниже текущей цены Bid.
SweetSpotMainLevels Шаг основных уровней «sweet spot», округляется до ближайшего кратного значения от цены Bid.
LineColorMain Цвет основных горизонтальных линий уровней.
LineStyleMain Стиль основных горизонтальных линий уровней.
ShowSubLevels Переключатель отображения промежуточных уровней. При отключении шаг промежуточных уровней удваивается.
sublevels Шаг промежуточных уровней между основными линиями.
OutputSubLevelsToGV Переключатель: при активации значения промежуточных уровней записываются в глобальные переменные терминала.
GVVarName Текстовый параметр, задающий суффикс для имени глобальной переменной; к имени символа добавляется нижнее подчёркивание и указанный суффикс.
LineColorSub Цвет промежуточных горизонтальных линий уровней.
LineStyleSub Стиль промежуточных горизонтальных линий уровней.
RefreshSeconds Интервал в секундах между пересозданием объектов индикатора на графике.
Получить полный код

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

#property indicator_chart_window

extern bool   TURN_OFF=false;
extern bool AutoAdjust  = true;
extern bool Show_Labels = true;
extern int  ShiftLabel=7;

extern int NumLinesAboveBelow  =50;
extern int SweetSpotMainLevels=100; //50;

extern color LineColorMain=clrBlue; //Yellow;
extern int LineStyleMain=STYLE_SOLID; //STYLE_DOT;

extern bool ShowSubLevels=true;
extern int sublevels=25; //5;
extern bool OutputSubLevelsToGV=true;
extern string GVVarName="EntryPrice"; // Symbol name and "_" will become prefix and "_L" or "_S" will be suffix
extern color LineColorSub=DimGray;
extern int LineStyleSub=STYLE_DOT;
extern int RefreshSeconds=10;

string symbol,tChartPeriod,tShortName,pricelabel;
int    digits,period,digits2,mult=1;
double point;
string GVName;
double PrevLevel;

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

int deinit()
  {
   int obj_total=ObjectsTotal();

   for(int i=obj_total; i>=0; i--) 
     {
      string name=ObjectName(i);

      if(StringFind(name,"[SweetSpot]",0)>=0)
         ObjectDelete(name);
     }

   return(0);
  }

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

   static datetime timelastupdate=0;
   static datetime lasttimeframe=0;

   if(CurTime()-timelastupdate<RefreshSeconds && Period()==lasttimeframe)
      return (0);

   deinit();  // delete all previous lines

   int i,ssp1,style,ssp,thickness; //sublevels= 50;
   double ds1;
   color linecolor;

   if(!ShowSubLevels)
      sublevels*=2;

   ssp1= Bid / Point;
   ssp1= ssp1 - ssp1%sublevels;
   PrevLevel=999999;

   for(i=-NumLinesAboveBelow; i<NumLinesAboveBelow; i++)
     {

      ssp=ssp1+(i*sublevels);

      if(ssp%SweetSpotMainLevels==0)
        {
         style=LineStyleMain;
         linecolor=LineColorMain;
        }
      else
        {
         style=LineStyleSub;
         linecolor=LineColorSub;
        }

      thickness=1;

      if(ssp%(SweetSpotMainLevels*10)==0)
        {
         thickness=2;
        }

      if(ssp%(SweetSpotMainLevels*100)==0)
        {
         thickness=3;
        }

      ds1=ssp*Point;
      SetLevel

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

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

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

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

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

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

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