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