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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.