ml-boxbreakout 1.02.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ml-boxbreakout 1.02.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для MetaTrader 4, который отрисовывает на графике временные каналы (Time Channels). Для каждого дня в заданном диапазоне Past_Days индикатор рассчитывает максимальную и минимальную цену в указанный временной интервал и отображает соответствующий прямоугольник канала, а также проекционные линии и текстовые метки цен.
Индикатор создаёт графические объекты прямоугольников для ценовых диапазонов, трендовые линии-проекции от конца канала до заданной точки TC_projection_end, а при необходимости — текстовые подписи значений цен. Настройки позволяют управлять временными периодами, цветами, стилями и толщинами линий.
Поддерживается настройка обработки выходных данных брокера для 5-значных котировок и воскресных данных. Индикатор работает в окне графика, использует буферы для хранения данных и удаляет ранее созданные объекты при деинициализации.
Настройки программы
| Настройка | Описание |
|---|---|
| UniqueID | Уникальный идентификатор — Текстовый префикс, используемый для именования графических объектов индикатора на графике. |
| Platform_5_Digits | 5-значная платформа — Переключатель, определяющий применение дополнительного округления для 5-значных брокеров. |
| TC_start | Время начала канала — Время начала временного канала в формате строки (например, "22:00"). |
| Same_Day | Тот же день — Переключатель, сдвигающий время начала канала на одни сутки вперёд. |
| TC_end | Время окончания канала — Время окончания временного канала в формате строки (например, "06:00"). |
| TC_projection_end | Время окончания проекции — Время окончания проекционных линий в формате строки (например, "15:00"). |
| TC_Breakout_Offset | Смещение прорыва канала — Числовой параметр смещения для проекционных линий прорыва канала. |
| TC_Breakout_box_solid | Задний план прямоугольника прорыва — Переключатель отображения проекционных прямоугольников прорыва на заднем плане. |
| Past_Days | Количество прошедших дней — Количество прошедших дней, для которых рассчитываются и отрисовываются временные каналы. |
| TC_price | Отображение ценовых меток — Переключатель отображения текстовых меток цен высокого и низкого уровня канала. |
| TC_color | Цвет канала — Цвет прямоугольника основного временного канала. |
| TC_style | Стиль канала — Стиль линии основного прямоугольника канала (целочисленное значение). |
| TC_width | Толщина канала — Толщина линии основного прямоугольника канала. |
| TC_solid | Задний план канала — Переключатель отображения основного прямоугольника канала на заднем плане. |
| TC_Prj_Obj_HI_clr | Цвет верхней проекционной линии — Цвет верхней проекционной трендовой линии. |
| TC_Prj_Obj_HI_width | Толщина верхней проекционной линии — Толщина линии верхней проекции. |
| TC_Prj_Obj_HI_style | Стиль верхней проекционной линии — Стиль линии верхней проекции (целочисленное значение стиля линии). |
| TC_Prj_Obj_LO_clr | Цвет нижней проекционной линии — Цвет нижней проекционной трендовой линии. |
| TC_Prj_Obj_LO_width | Толщина нижней проекционной линии — Толщина линии нижней проекции. |
| TC_Prj_Obj_LO_style | Стиль нижней проекционной линии — Стиль линии нижней проекции (целочисленное значение стиля линии). |
| TC_price_clr | Цвет ценовых меток — Цвет текстовых меток цен. |
| BrokerHasSundayData | Наличие воскресных данных у брокера — Переключатель корректировки временного сдвига при наличии у брокера воскресных данных. |
Поиск по коду файла
#property indicator_chart_window
extern string UniqueID = "BoxBreakout ";
extern bool Platform_5_Digits = false;
extern string TC_start = "22:00";
extern bool Same_Day = false;
extern string TC_end = "06:00";
extern string TC_projection_end = "15:00";
extern double TC_Breakout_Offset = 0;
extern bool TC_Breakout_box_solid = false;
extern int Past_Days = 15;
extern bool TC_price = true;
extern color TC_color = NavajoWhite;
extern int TC_style = 0;
extern int TC_width = 0;
extern bool TC_solid = false;
extern color TC_Prj_Obj_HI_clr = RoyalBlue;
extern int TC_Prj_Obj_HI_width = 0;
extern int TC_Prj_Obj_HI_style = 2;
extern color TC_Prj_Obj_LO_clr = Crimson;
extern int TC_Prj_Obj_LO_width = 0;
extern int TC_Prj_Obj_LO_style = 2;
extern color TC_price_clr = NavajoWhite;
extern bool BrokerHasSundayData = false;
int d, i, dig, round, modifier, BarBegin, BarEnd;
int iYear, iMonth, iDay, iHour, iMinute;
double PriceHigh, PriceLow, bo, range1, range2;
string TCObj_Hprice, TCObj_Lprice, TCObj_range, Hprice, Lprice, range3;
datetime TradeDate, TimeBegin, TimeEnd, TCobjprjend;
double buffH1[];
double buffH2[];
double buffL1[];
double buffL2[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
string lookFor = UniqueID;
int lookForLength = StringLen(lookFor);
for(i = ObjectsTotal() - 1; i >= 0; i--)
{
string name = ObjectName(i);
if(StringSubstr(name, 0, lookForLength) == lookFor) ObjectDelete(name);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
void DrawTC(datetime TradeDate, string TCObj, string TCstart, string TCend, string TCprjend, int ID, bool Same_Day)
{
TimeBegin = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCstart);
if(Same_Day) TimeBegin = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCstart) + 86400;
TimeEnd = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCend) + 86400;
TCobjprjend = StrToTime(TimeToStr(TradeDate, TIME_DATE) + " " + TCprjend) + 86400;
if(TimeDayOfWeek(TradeDate) == 5)
{
if (BrokerHasSundayData)
int timeDiff = 2*PERIOD_D1*60;
else timeDiff = 3*PERIOD_D1*60;
TimeBegin = TimeBegin + timeDiff;
TimeEnd = TimeEnd + timeDiff;
TCobjprjend = TCobjprjend + timeDiff;
}
BarBegin = iBarShift(NULL, 0, TimeBegin) + 1;
BarEnd = iBarShift(NULL, 0, TimeEnd) + 1;
PriceHigh = High[Highest(NULL, 0, MODE_HIGH, (BarBegin - BarEnd), BarEnd)];
PriceLow = Low [Lowest (NULL, 0, MODE_LOW , (BarBegin - BarEnd), BarEnd)];
bo = TC_Breakout_Offset * (Point * modifier);
range1 = PriceHigh - ((PriceHigh - PriceLow) / 2);
range2 = (PriceHigh - PriceLow) / (Point * modifier);
TCObj_Hprice = UniqueID + "_TC10 " + TimeToStr(TradeDate,TIME_DATE);
TCObj_Lprice = UniqueID + "_TC11 " + TimeToStr(TradeDate,TIME_DATE);
TCObj_range = UniqueID + "_TC12 " + TimeToStr(TradeDate,TIME_DATE);
Hprice = DoubleToStr(PriceHigh, dig);
Lprice = DoubleToStr(PriceLow, dig);
round = 0;
if(Platform_5_Digits) round = 1;
range3 = DoubleToStr(range2, round);
if(ID == 0)
{
ObjectCreate(TCObj, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
ObjectSet(TCObj, OBJPROP_TIME1, TimeBegin);
ObjectSet(TCObj, OBJPROP_TIME2, TimeEnd);
ObjectSet(TCObj, OBJPROP_PRICE1, PriceHigh);
ObjectSet(TCObj, OBJPROP_PRICE2, PriceLow);
ObjectSet(TCObj, OBJPROP_STYLE, TC_style);
ObjectSet(TCObj, OBJPROP_COLOR, TC_color);
ObjectSet(TCObj, OBJPROP_BACK, TC_solid);
Показано первые 50% кода (символов: 6947)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.