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

cap channel.mq5

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

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

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

О программе

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

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

Предусмотрены оповещения о пробитии границ канала или закрытии свечи за пределами канала. Оповещения могут направляться в терминал через всплывающее окно, Push-уведомления на мобильное устройство или на электронную почту. Визуальное оформление канала и стрелок настраивается отдельно по цвету, стилю и толщине линий.

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

НастройкаОписание
Таймфрейм для построения канала (TimeFrame) Таймфрейм для построения канала — Выбор таймфрейма, на котором рассчитывается канал
Период (HalfLength) Период — Период расчёта канала, определяет ширину окна усреднения
Тип цены (Price) Тип цены — Тип цены, используемый для расчёта канала
Расширение канала (BandsDeviations) Расширение канала — Множитель отклонения для определения границ канала
Сглаживание канала (Interpolate) Сглаживание канала — Включает или отключает сглаживание линий канала между расчётными барами
Ограничение истории в барах (History) Ограничение истории в барах — Ограничение количества баров, участвующих в расчёте
Разрешить оповещения (alertsOn) Разрешить оповещения — Включает или отключает систему оповещений
Оповещения "Да" - на текущем баре "Нет" - на предыдущем (alertsOnCurrent) Оповещения "Да" - на текущем баре "Нет" - на предыдущем — Определяет, на текущем или предыдущем баре проверяются условия оповещения
Оповещения пробития канала "Да" - High/Low "Нет" - Close (alertsOnHighLow) Оповещения пробития канала "Да" - High/Low "Нет" - Close — Выбор условия пробития: по High/Low или по Close свечи
Оповещение в терминале (alertsMessage) Оповещение в терминале — Включает всплывающее оповещение в терминале
Оповещение Push (alertsPush) Оповещение Push — Включает отправку Push-уведомлений
Оповещение на электронную почту (alertsEmail) Оповещение на электронную почту — Включает отправку уведомлений на email
Настройки автопостроения канала (ChannelSetting) Настройки автопостроения канала — Режим расчёта канала: ручной расчёт или переопределение стартового бара
Использование автоматических настроек канала (UseAutoChannel) Использование автоматических настроек канала — Включает автоматический выбор таймфрейма для расчёта канала в зависимости от текущего периода графика
Таймфрейм для построения канала на графике M1 (TimeM1) Таймфрейм для построения канала на графике M1 — Таймфрейм расчёта канала при отображении на графике M1
Таймфрейм для построения канала на графике M5 (TimeM5) Таймфрейм для построения канала на графике M5 — Таймфрейм расчёта канала при отображении на графике M5
Таймфрейм для построения канала на графике M15 (TimeM15) Таймфрейм для построения канала на графике M15 — Таймфрейм расчёта канала при отображении на графике M15
Таймфрейм для построения канала на графике M30 (TimeM30) Таймфрейм для построения канала на графике M30 — Таймфрейм расчёта канала при отображении на графике M30
Таймфрейм для построения канала на графике H1 (TimeH1) Таймфрейм для построения канала на графике H1 — Таймфрейм расчёта канала при отображении на графике H1
Таймфрейм для построения канала на графике H4 (TimeH4) Таймфрейм для построения канала на графике H4 — Таймфрейм расчёта канала при отображении на графике H4
Таймфрейм для построения канала на графике D1 (TimeD1) Таймфрейм для построения канала на графике D1 — Таймфрейм расчёта канала при отображении на графике D1
Настройки стиля канала и стрелок (ChannelStyle) Настройки стиля канала и стрелок — Группа визуальных настроек канала и стрелок пробития
Цвет верхней линии канала (ColUpLine) Цвет верхней линии канала — Цвет верхней границы канала
Стиль верхней линии канала (StyleUpLine) Стиль верхней линии канала — Стиль отрисовки верхней линии канала
Толщина верхней линии канала (WidthUpLine) Толщина верхней линии канала — Толщина линии верхней границы канала
Цвет средней линии канала (ColMidLine) Цвет средней линии канала — Цвет средней линии канала
Стиль средней линии канала (StyleMidLine) Стиль средней линии канала — Стиль отрисовки средней линии канала
Толщина средней линии канала (WidthMidLine) Толщина средней линии канала — Толщина линии средней границы канала
Цвет нижней линии канала (ColDnLine) Цвет нижней линии канала — Цвет нижней границы канала
Стиль нижней линии канала (StyleDnLine) Стиль нижней линии канала — Стиль отрисовки нижней линии канала
Толщина нижней линии канала (WidthDnLine) Толщина нижней линии канала — Толщина линии нижней границы канала
Цвет верхних символов (ColUpArrow) Цвет верхних символов — Цвет стрелок, указывающих на пробитие верхней границы
Стиль верхних символов (StylUpArrow) Стиль верхних символов — Стиль отрисовки стрелок верхнего пробития
Толщина верхних символов (WidthUpArrow) Толщина верхних символов — Толщина символов верхнего пробития
Цвет нижних символов (ColDnArrow) Цвет нижних символов — Цвет стрелок, указывающих на пробитие нижней границы
Стиль нижних символов (StylDnArrow) Стиль нижних символов — Стиль отрисовки стрелок нижнего пробития
Толщина нижних символов (WidthDnArrow) Толщина нижних символов — Толщина символов нижнего пробития
Получить полный код

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

#property indicator_chart_window //Вывод индикатора в окне графика
#property indicator_buffers 5    //Количество буферов для расчетов индикатора

enum PriceTypeInt
  {
   PRICE_CLOSE_1    = 0, //Цена закрытия
   PRICE_OPEN_1     = 1, //Цена открытия
   PRICE_HIGH_1     = 2, //Максимальная за период цена
   PRICE_LOW_1      = 3, //Минимальная за период цена
   PRICE_MEDIAN_1   = 4, //Медианная цена, (high+low)/2
   PRICE_TYPICAL_1  = 5, //Типичная цена, (high+low+close)/3
   PRICE_WEIGHTED_1 = 6  //Взвешенная цена закрытия, (high+low+close+close)/4
  };

enum BoolInt
  {
   Yes = 0, //Да
   No  = 1  //Нет
  };

enum StyleLineInt
  {
   STYLE_SOLID_1      = 0, //Сплошная линия
   STYLE_DASH_1       = 1, //Штриховая линия
   STYLE_DOT_1        = 2, //Пунктирная линия
   STYLE_DASHDOT_1    = 3, //Штрих-пунктирная линия
   STYLE_DASHDOTDOT_1 = 4  //Штрих-пунктирная линия с двойными точками
};

enum StyleArrowInt {
   STYLE_ARROW_1  = 217, //Символ - стрелка фрактала вверх
   STYLE_ARROW_2  = 218, //Символ - стрелка фрактала вниз
   STYLE_ARROW_3  = 221, //Символ - стрелка в круге вверх
   STYLE_ARROW_4  = 222, //Символ - стрелка в круге вниз
   STYLE_ARROW_5  = 221, //Символ - тонкая стрелка вверх
   STYLE_ARROW_6  = 222, //Символ - тонкая стрелка вниз
   STYLE_ARROW_7  = 233, //Символ - толстая стрелка вверх
   STYLE_ARROW_8  = 234, //Символ - толстая стрелка вниз
   STYLE_ARROW_9  = 83,  //Символ - капля
   STYLE_ARROW_10 = 84,  //Символ - снежинка
   STYLE_ARROW_11 = 251, //Символ - крестик
   STYLE_ARROW_12 = 252, //Символ - галочка
   STYLE_ARROW_13 = 89,  //Символ - пинтограмма
   STYLE_ARROW_14 = 91,  //Символ - иньянь
   STYLE_ARROW_15 = 161, //Символ - круг
   STYLE_ARROW_16 = 164, //Символ - круг с точкой
   STYLE_ARROW_17 = 108, //Символ - большая точка
   STYLE_ARROW_18 = 159, //Символ - маленькая точка
   STYLE_ARROW_19 = 110, //Символ - большой квадрат
   STYLE_ARROW_20 = 167, //Символ - маленький квадрат
   STYLE_ARROW_21 = 117, //Символ - большой ромб
   STYLE_ARROW_22 = 119, //Символ - маленький ромб
   STYLE_ARROW_23 = 171, //Символ - звезда
   STYLE_ARROW_24 = 181  //Символ - звезда в круге
  };

extern ENUM_TIMEFRAMES TimeFrame       = PERIOD_CURRENT;                     //Таймфрейм для построения канала
extern int             HalfLength      = 55;                                 //Период
extern PriceTypeInt    Price           = PRICE_WEIGHTED_1;                   //Тип цены
extern double          BandsDeviations = 2.2;                              //Расширение канала
extern BoolInt         Interpolate     = No;                                 //Сглаживание канала
extern int             History         = 750;                                //Ограничение истории в барах
extern BoolInt         alertsOn        = No;                                 //Разрешить оповещения
extern BoolInt         alertsOnCurrent = No;                                 //Оповещения "Да" - на текущем баре "Нет" - на предыдущем
extern BoolInt         alertsOnHighLow = No;                                 //Оповещения пробития канала "Да" - High/Low "Нет" - Close
extern BoolInt         alertsMessage   = No;                                 //Оповещение в терминале
extern BoolInt         alertsPush      = No;                                 //Оповещение Push
extern BoolInt         alertsEmail     = No;                                 //Оповещение на электронную почту
extern string          ChannelSetting  = "Настройки автопостроения канала";  //Настройки автопостроения канала
extern BoolInt         UseAutoChannel  = No;                                 //Использование автоматических настроек канала
extern ENUM_TIMEFRAMES TimeM1          = PERIOD_M5;                          //Таймфрейм для построения канала на графике M1
extern ENUM_TIMEFRAMES TimeM5          = PERIOD_M30;                         //Таймфрейм для построения канала на графике M5
extern ENUM_TIMEFRAMES TimeM15         = PERIOD_H1;                          //Таймфрейм для построения канала на графике M15
extern ENUM_TIMEFRAMES TimeM30         = PERIOD_H4;                          //Таймфрейм для построения канала на графике M30
extern ENUM_TIMEFRAMES TimeH1          = PERIOD_H4;                          //Таймфрейм для построения канала на графике H1
extern ENUM_TIMEFRAMES TimeH4          = PERIOD_D1;                          //Таймфрейм для построения канала на графике H4
extern ENUM_TIMEFRAMES TimeD1          = PERIOD_W1;                          //Таймфрейм для построения канала на графике D1
extern string          ChannelStyle    = "Настройки стиля канала и стрелок"; //Настройки стиля канала и стрелок
extern color           ColUpLine       = clrDimGray;                         //Цвет верхней линии канала
extern StyleLineInt    StyleUpLine     = STYLE_DOT_1;                        //Стиль верхней линии канала
extern int             WidthUpLine     = 1;                                  //Толщина верхней линии канала
extern color           ColMidLine      = clrMaroon;                          //Цвет средней линии канала
extern StyleLineInt    StyleMidLine    = STYLE_SOLID_1;                      //Стиль средней линии канала
extern int             WidthMidLine    = 1;                                  //Толщина средней линии канала
extern color           ColDnLine       = clrDarkBlue;                        //Цвет нижней линии канала
extern StyleLineInt    StyleDnLine     = STYLE_SOLID_1;                      //Стиль нижней линии канала
extern int             WidthDnLine     = 1;                                  //Толщина нижней линии канала
extern color           ColUpArrow      = clrBlue;                            //Цвет верхних символов
extern StyleArrowInt   StylUpArrow     = STYLE_ARROW_18;                     //Стиль верхних символов
extern int             WidthUpArrow    = 1;                                  //Толщина верхних символов
extern color           ColDnArrow      = clrRed;                             //Цвет нижних символов
extern StyleArrowInt   StylDnArrow     = STYLE_ARROW_18;                     //Стиль нижних символов
extern int             WidthDnArrow    = 1;                                  //Толщина нижних символов

double             Average[];
double             TopLine[];
double             LowerLine[];
double             MediumUp[];
double             MediumDn[];
double             UpArrow[];
double             DnArrow[];
double             time_alert[];
string             NameInd;
bool               Calc = false;
bool               NoCalc  = false;
ENUM_TIMEFRAMES    TF;
ENUM_APPLIED_PRICE price;

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

int OnCalculate(const int        rates_total,     //Количество баров на текущем тике
                const int        prev_calculated, //Количество закрытых баров 
                const datetime   &time[],         //Массив времени каждого бара в истории
                const double     &open[],         //Массив цен открытия каждого бара в истории
                const double     &high[],         //Массив максимумов каждого бара в истории
                const double     &low

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

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

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

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

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

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

Стоимость полного кода
1 157₽ ≈ $14.14