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

MaCanall

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

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

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

О программе

MaCanall — пользовательский индикатор для MetaTrader 4, рассчитывающий динамические уровни поддержки и сопротивления. Он строит ценовой канал на основе взвешенной цены (WBP), усреднённой за короткий период, и скользящей средней этой цены за длинный период. Верхняя и нижняя границы канала определяются экстремумами цены при пересечении WBP её скользящей средней, а средняя линия — как их полусумма. Индикатор отображает стрелки входа и выхода в зависимости от четырёх настраиваемых условий и поддерживает много таймфреймный режим через вызов самого себя функцией iCustom.

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

НастройкаОписание
Time frame to use : (TimeFrame) Таймфрейм — Таймфрейм, на котором производятся расчёты индикатора; если указанный таймфрейм ниже текущего графика, используется текущий.
5 (ShortPeriod) Короткий период — Период расчёта взвешенной цены WBP на основе максимума, минимума и цены закрытия.
25 (LongPeriod) Длинный период — Период скользящей средней WBP, используемой для определения границ канала и начала отрисовки линий.
MaMode Метод скользящей средней — Тип скользящей средней, применяемый при расчёте WBP_MA (например, SMMA, SMA, EMA и др.).
Entry_on_the_zero_bar Вход на нулевом баре — Разрешает вход по цене закрытия текущего бара при пересечении ценой границы канала.
Entry_after_crossing_the_line_new_bar Вход после пересечения линии на новом баре — Разрешает вход по цене открытия нового бара при пересечении границы канала.
Exit_inside_the_channel Выход внутри канала — Разрешает выход по цене закрытия при возврате цены внутрь канала после касания границы.
Inputs_in_the_middle_of_the_channel Вход в середине канала — Разрешает вход по цене закрытия следующего бара при пробое границы канала изнутри.
Получить полный код

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

/*
Original Formula

WH:=HHV(HIGH,5);
WL:=LLV(LOW,5);
WBP:=(HHV(HIGH,5)+LLV(LOW,5)+CLOSE)/3;

RBAND:=VALUEWHEN(1,CROSS(MOV(WBP,25,S),WBP),
HHV(WH,25));

SBAND:=VALUEWHEN(1,CROSS(WBP,MOV(WBP,25,S)),
LLV(WL,25));

MSWNG:=(RBAND+SBAND)/2;
*/
#property indicator_chart_window
#property indicator_buffers 9
#property indicator_color1 clrLimeGreen
#property indicator_color2 clrCrimson
#property indicator_color3 clrYellow
#property indicator_color4 clrLightGreen
#property indicator_color5 clrTomato
#property indicator_color6 clrBlack
#property indicator_color7 clrBlack
#property indicator_color8 clrLimeGreen
#property indicator_color9 clrCrimson
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 0
#property indicator_width4 2
#property indicator_width5 2
#property indicator_width6 2
#property indicator_width7 2
#property indicator_width8 0
#property indicator_width9 0

extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT;  // Time frame to use :
extern int ShortPeriod=12;//5
extern int LongPeriod=12; //25
extern ENUM_MA_METHOD MaMode        = MODE_SMMA;

extern bool Entry_on_the_zero_bar                 = true;
extern bool Entry_after_crossing_the_line_new_bar = true;
extern bool Exit_inside_the_channel               = true;
extern bool Inputs_in_the_middle_of_the_channel   = false;

double LineUp[];
double LineDown[];
double LineMid[];
double WBP[],WBP_MA[];
double ArrowUp[];
double ArrowDown[];
double ExitUp[];
double ExitDown[];
string indicatorFileName;
string TimeFrameStr;
#define _mtfCall(_buff,_y) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT, ShortPeriod, ShortPeriod, MaMode,Entry_on_the_zero_bar,Entry_after_crossing_the_line_new_bar,Exit_inside_the_channel,Inputs_in_the_middle_of_the_channel, _buff,_y)

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

   IndicatorBuffers(9);

   SetIndexBuffer(0, LineUp);
   SetIndexBuffer(1, LineDown);
   SetIndexBuffer(2, LineMid);
   SetIndexBuffer(3, ArrowUp);
   SetIndexBuffer(4, ArrowDown);
   SetIndexBuffer(5, ExitUp);
   SetIndexBuffer(6, ExitDown);
   SetIndexBuffer(7, WBP);
   SetIndexBuffer(8, WBP_MA);

   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID);
   SetIndexStyle(3,DRAW_ARROW);
   SetIndexStyle(4,DRAW_ARROW);
   SetIndexStyle(5,DRAW_ARROW);
   SetIndexStyle(6,DRAW_ARROW);
   SetIndexStyle(7,DRAW_LINE,STYLE_DOT);
   SetIndexStyle(8,DRAW_LINE,STYLE_DOT);
   SetIndexArrow(3, 159);
   SetIndexArrow(4, 159);
   SetIndexArrow(5, 251);
   SetIndexArrow(6, 251);
   SetIndexEmptyValue(3, 0.0);
   SetIndexEmptyValue(4, 0.0);
   SetIndexEmptyValue(5, 0.0);
   SetIndexEmptyValue(6, 0.0);

   SetIndexLabel(0,"Фрактал High");
   SetIndexLabel(1,"Фрактал Low");
   SetIndexLabel(2,"Фрактал Mid");
   SetIndexLabel(3, "Пробой UP");
   SetIndexLabel(4, "Пробой Down");
   SetIndexLabel(5, "Выход UP");
   SetIndexLabel(6, "Выход Down");
   SetIndexLabel(7, "Ma High");
   SetIndexLabel(8, "Ma Low");
   SetIndexDrawBegin(0,LongPeriod);
   SetIndexDrawBegin(1,LongPeriod);
   SetIndexDrawBegin(2,LongPeriod);
   SetIndexDrawBegin(7,LongPeriod);
   SetIndexDrawBegin(8,LongPeriod);
   indicatorFileName = WindowExpertName();
   TimeFrame         = fmax(TimeFrame,_Period);
    switch(TimeFrame)
     {
      case 1 :  TimeFrameStr="Period_M1"; break;
      case 5 : TimeFrameStr="Period_M5"; break;
      case 15 : TimeFrameStr="Period_M15"; break;
      case 30 : TimeFrameStr="Period_M30"; break;
      case 60 : TimeFrameStr="Period_H1"; break;
      case 240 : TimeFrameStr="Period_H4"; break;
      case 1440 : TimeFrameStr="Period_D1"; break;
      case 10080 : TimeFrameStr="Period_W1"; break;

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

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

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

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

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

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

Стоимость полного кода
558,80₽ ≈ $6.83