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

123PatternsV7WithAlerts

123 patterns v7 alerts source code.mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор для платформы MetaTrader 4, предназначенный для обнаружения и визуализации паттернов 1-2-3 на ценовом графике. Использует встроенный индикатор ZigZag для определения ключевых точек разворота и рассчитывает глубину коррекции для подтверждения сигналов. Отображает линии поддержки и сопротивления, стрелки потенциальных входов и точки разворота бычьих и медвежьих движений на графике.

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

НастройкаОписание
generalSettings Общие настройки — Текстовый разделитель, обозначающий начало группы общих параметров индикатора.
maxNoOfCandles Максимум свечей — Ограничение количества свечей, участвующих в расчёте; значение 0 означает все свечи на графике.
OneTwoThreeSettings Настройки паттерна 1-2-3 — Текстовый разделитель, обозначающий начало группы параметров паттерна 1-2-3.
ZigZagDepth Глубина ZigZag — Параметр глубины для встроенного индикатора ZigZag, определяющий минимальное расстояние между пиками и впадинами.
RetraceDepthMin Минимальная глубина коррекции — Минимальное значение глубины коррекции, при котором сигнал считается подтверждённым.
RetraceDepthMax Максимальная глубина коррекции — Максимальное значение глубины коррекции, при котором сигнал считается подтверждённым.
ShowAllLines Показать все линии — Включает отображение всех линий поддержки и сопротивления на графике.
ShowAllBullBearDots Показать точки быков и медведей — Включает отображение маркеров в ключевых точках разворота бычьих и медвежьих движений.
ShowAllBreaks Показать все пробои — Включает отображение сигналов при пробое уровней вне стандартной конфигурации паттерна 1-2-3.
alertSettings Настройки уведомлений — Текстовый разделитель, обозначающий начало группы параметров системы оповещений.
123 setup (Point2BreakAlerts) Уведомления при пробое точки 2 — Включает отправку уведомлений при пробое уровня в рамках стандартного паттерна 1-2-3.
not 123 setup (BreakUpperLineAlerts) Уведомления при пробое верхней линии — Включает отправку уведомлений при пробое верхней линии вне стандартного паттерна 1-2-3.
not 123 setup (BreakLowerLineAlerts) Уведомления при пробое нижней линии — Включает отправку уведомлений при пробое нижней линии вне стандартного паттерна 1-2-3.
PopupAlerts Всплывающие уведомления — Включает вывод всплывающих окон с сообщениями на графике при срабатывании условий.
EmailAlerts Email-уведомления — Включает отправку email-сообщений при срабатывании условий уведомлений.
PushNotificationAlerts Push-уведомления — Включает отправку push-уведомлений на мобильное устройство при срабатывании условий.
Получить полный код

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

#define INDICATOR_NAME       "123PatternsV7WithAlerts"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1  DodgerBlue   // UpperLine
#property indicator_color2  OrangeRed    // LowerLine
#property indicator_color3  Goldenrod    // BullDot
#property indicator_color4  CornflowerBlue    // BearDot
#property indicator_color5  DodgerBlue   // BuyArrow
#property indicator_color6  OrangeRed    // SellArrow
#property indicator_width1  1
#property indicator_width2  1
#property indicator_width3  3  // BullDot
#property indicator_width4  3  // BearDot
#property indicator_width5  3  // BuyArrow
#property indicator_width6  3  // SellArrow

extern string generalSettings=" ================== 1-2-3 settings =======================";
extern string strMaxNoOfCandles= " ***** Number of candles which will be back calculated;0=all on chart";
extern int    maxNoOfCandles    = 1000;
extern string OneTwoThreeSettings=" ================== 1-2-3 settings =======================";
extern int    ZigZagDepth     = 6;
extern double RetraceDepthMin = 0.4;
extern double RetraceDepthMax = 1.0;
extern bool   ShowAllLines    = True;
extern bool   ShowAllBullBearDots = false;
extern bool   ShowAllBreaks   = True;

extern string alertSettings=" ================== ALERT settings =======================";
extern bool Point2BreakAlerts = true;//123 setup
extern bool BreakUpperLineAlerts = true;//not 123 setup
extern bool BreakLowerLineAlerts = true;//not 123 setup

extern bool PopupAlerts         = true;
extern bool EmailAlerts         = false;
extern bool PushNotificationAlerts = false;
int lastP2BreakAlert=3;
int lastLineBreakAlert=3;
string msg;

double UpperLine[];
double LowerLine[];

double BuyArrow[];
double SellArrow[];
double BullDot[1000];
double BearDot[1000];

double   firsthigh, firstlow, lasthigh, lastlow, prevhigh, prevlow, signalprice, brokenline;
datetime firsthightime, firstlowtime, lasthightime, lastlowtime, prevhightime, prevlowtime, signaltime;
datetime redrawtime;  // remember when the indicator was redrawn

int     signal;
#define NOSIG   0
#define BUYSIG  1
#define SELLSIG 2

void initIndex(bool doInit,int indexNo,int drawStyle,double &Arr[],int arrSym){
   if (!doInit)
      return;
   SetIndexStyle(indexNo,drawStyle);
   SetIndexBuffer(indexNo,Arr);
   SetIndexArrow(indexNo,arrSym);
}

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

int start()
{
      // код доступен только после оплаты
   }
   double   zigzag, range, retracedepth, one, two, three;
   datetime onetime, twotime, threetime;
   int      shift = Bars-1;

   bool isBrokenUpperLine=false;
   bool isBrokenLowerLine=false;
   if (maxNoOfCandles >0) 
      shift=maxNoOfCandles ;
   while(shift >= 0)
      {
      Print(shift);

      UpperLine[shift] = UpperLine[shift+1];
      LowerLine[shift] = LowerLine[shift+1];

      BullDot[shift] = EMPTY_VALUE;
      BearDot[shift] = EMPTY_VALUE;
      zigzag = iCustom(NULL,0,"ZigZag",ZigZagDepth,5,3,0,shift);
      if(zigzag == High[shift])
         {
         UpperLine[shift] = High[shift];
         firsthigh = prevhigh; firsthightime = prevhightime;
         prevhigh = lasthigh;  prevhightime = lasthightime;
         lasthigh = zigzag;    lasthightime = Time[shift];
         }
      if(zigzag == Low[shift])
         {
         LowerLine[shift] = Low[shift];
         firstlow = prevlow; firstlowtime = prevlowtime;
         prevlow = lastlow;  prevlowtime = lastlowtime;
         lastlow = zigzag;   lastlowtime = Time[shift];
         }

   one = prevlow; onetime = prevlowtime;
   two = lasthigh; twotime = lasthightime; if(twotime == Time[shift]){two = prevhigh; twotime = prevhightime;}
   three = lastlow; threetime = lastlowtime;
   if(one - two != 0) retracedepth = (three - two) / (one - two);  // retrace depth

   if(shift > 0 && retracedepth > RetraceDepthMin && retracedepth < RetraceDepthMax && brokenline != UpperLine[shift] && Low[shift] < UpperLine[shift] && Close[shift] > UpperLine[shift])                
      {
      range = MathAbs(two - three);                    // range is the distance between two and three
      BuyArrow[shift] = Low[shift]-(High[shift]-Low[shift])/2;
      BullDot[iBarShift(NULL,0,onetime)] = one;        // ONE
      Bull

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

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

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

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

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

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

Стоимость полного кода
717,10₽ ≈ $8.76