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

pattern_recognition_master_v3.mq5

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

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

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

О программе

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

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

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

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

НастройкаОписание
Show_Alert Показывать алерты — Включает или выключает отправку алертов при обнаружении любого паттерна.
Display_ShootStar_2 Отображение Shooting Star 2 — Включает отображение текстовой метки и стрелки для медвежьего паттерна Shooting Star второго варианта.
Show_ShootStar_Alert_2 Алерт Shooting Star 2 — Включает уведомление при обнаружении медвежьего паттерна Shooting Star второго варианта.
Display_ShootStar_3 Отображение Shooting Star 3 — Включает отображение текстовой метки и стрелки для медвежьего паттерна Shooting Star третьего варианта.
Show_ShootStar_Alert_3 Алерт Shooting Star 3 — Включает уведомление при обнаружении медвежьего паттерна Shooting Star третьего варианта.
Display_ShootStar_4 Отображение Shooting Star 4 — Включает отображение текстовой метки и стрелки для медвежьего паттерна Shooting Star четвёртого варианта.
Show_ShootStar_Alert_4 Алерт Shooting Star 4 — Включает уведомление при обнаружении медвежьего паттерна Shooting Star четвёртого варианта.
Color_ShootStar Цвет Shooting Star — Цвет текстовых меток и стрелок для медвежьих паттернов Shooting Star.
Display_Hammer_2 Отображение Hammer 2 — Включает отображение текстовой метки и стрелки для бычьего паттерна Hammer второго варианта.
Show_Hammer_Alert_2 Алерт Hammer 2 — Включает уведомление при обнаружении бычьего паттерна Hammer второго варианта.
Display_Hammer_3 Отображение Hammer 3 — Включает отображение текстовой метки и стрелки для бычьего паттерна Hammer третьего варианта.
Show_Hammer_Alert_3 Алерт Hammer 3 — Включает уведомление при обнаружении бычьего паттерна Hammer третьего варианта.
Display_Hammer_4 Отображение Hammer 4 — Включает отображение текстовой метки и стрелки для бычьего паттерна Hammer четвёртого варианта.
Show_Hammer_Alert_4 Алерт Hammer 4 — Включает уведомление при обнаружении бычьего паттерна Hammer четвёртого варианта.
Color_Hammer Цвет Hammer — Цвет текстовых меток и стрелок для бычьих паттернов Hammer.
Display_Doji Отображение Doji Star — Включает отображение текстовых меток для паттернов Evening Doji Star и Morning Doji Star.
Show_Doji_Alert Алерт Doji Star — Включает уведомление при обнаружении паттерна Doji Star.
Color_Doji Цвет Doji Star — Цвет текстовых меток для паттернов Doji Star.
Display_Stars Отображение Star — Включает отображение текстовых меток для паттернов Evening Star и Morning Star.
Show_Stars_Alert Алерт Star — Включает уведомление при обнаружении паттерна Star.
Star_Body_Length Длина тела звезды — Минимальная длина тела свечи в пунктах для распознавания звёздных паттернов.
Color_Star Цвет Star — Цвет текстовых меток для паттернов Star.
Display_Dark_Cloud_Cover Отображение Dark Cloud Cover — Включает отображение текстовой метки для медвежьего паттерна Dark Cloud Cover.
Show_DarkCC_Alert Алерт Dark Cloud Cover — Включает уведомление при обнаружении паттерна Dark Cloud Cover.
Color_DarkCC Цвет Dark Cloud Cover — Цвет текстовых меток для паттерна Dark Cloud Cover.
Display_Piercing_Line Отображение Piercing Line — Включает отображение текстовой метки для бычьего паттерна Piercing Line.
Show_Piercing_Line_Alert Алерт Piercing Line — Включает уведомление при обнаружении паттерна Piercing Line.
Color_Piercing_Line Цвет Piercing Line — Цвет текстовых меток для паттерна Piercing Line.
Display_Bearish_Engulfing Отображение Bearish Engulfing — Включает отображение текстовой метки для медвежьего паттерна Bearish Engulfing.
Show_Bearish_Engulfing_Alert Алерт Bearish Engulfing — Включает уведомление при обнаружении медвежьего паттерна Bearish Engulfing.
Color_Bearish_Engulfing Цвет Bearish Engulfing — Цвет текстовых меток для медвежьего паттерна Bearish Engulfing.
Display_Bullish_Engulfing Отображение Bullish Engulfing — Включает отображение текстовой метки для бычьего паттерна Bullish Engulfing.
Show_Bullish_Engulfing_Alert Алерт Bullish Engulfing — Включает уведомление при обнаружении бычьего паттерна Bullish Engulfing.
Color_Bullish_Engulfing Цвет Bullish Engulfing — Цвет текстовых меток для бычьего паттерна Bullish Engulfing.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 Yellow

extern bool Show_Alert = true;

extern bool Display_ShootStar_2 = true;
extern bool Show_ShootStar_Alert_2 = true;
extern bool Display_ShootStar_3 = true;
extern bool Show_ShootStar_Alert_3 = true;
extern bool Display_ShootStar_4 = true;
extern bool Show_ShootStar_Alert_4 = true;
extern color Color_ShootStar = Red;
int Text_ShootStar = 8;

extern bool Display_Hammer_2 = true;
extern bool Show_Hammer_Alert_2 = true;
extern bool Display_Hammer_3 = true;
extern bool Show_Hammer_Alert_3 = true;
extern bool Display_Hammer_4 = true;
extern bool Show_Hammer_Alert_4 = true;
extern color Color_Hammer = Blue;
int Text_Hammer = 8;

extern bool Display_Doji = true;
extern bool Show_Doji_Alert = true;
extern color Color_Doji = Red;
int Text_Doji = 8;

extern bool Display_Stars = true;
extern bool Show_Stars_Alert = true;
extern int  Star_Body_Length = 5;
extern color Color_Star = Blue;
int Text_Star = 8;

extern bool Display_Dark_Cloud_Cover = true;
extern bool Show_DarkCC_Alert = true;
extern color Color_DarkCC = Red;
int Text_DarkCC = 8;

extern bool Display_Piercing_Line = true;
extern bool Show_Piercing_Line_Alert = true;
extern color Color_Piercing_Line = Blue;
int Text_Piercing_Line = 8;

extern bool Display_Bearish_Engulfing = true;
extern bool Show_Bearish_Engulfing_Alert = true;
extern color Color_Bearish_Engulfing = Red;
int Text_Bearish_Engulfing = 8;

extern bool Display_Bullish_Engulfing = false;
extern bool Show_Bullish_Engulfing_Alert = false;
extern color Color_Bullish_Engulfing = Blue;
int Text_Bullish_Engulfing = 8;

double upArrow[];
double downArrow[];

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

int deinit() {
   ObjectsDeleteAll(0, OBJ_TEXT);
   return(0);
}

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

Comment("\n", "\n", "Bearish",
"\n", "SS 2,3,4 - Shooting Star", 
"\n", "E_Star   - Evening Star",
"\n", "E_Doji   - Evening Doji Star",
"\n", "DCC      - Dark Cloud Pattern",
"\n", "S_E      - Bearish Engulfing Pattern", 
"\n", "\n", "Bullish",
"\n", "HMR 2,3,4 - Bullish Hammer",
"\n", "M_Star    - Morning Star",
"\n", "M_Doji    - Morning Doji Star",
"\n", "P_L       - Piercing Line Pattern",
"\n", "L_E       - Bullish Engulfing Pattern");

   double Range, AvgRange;
   int counter, setalert;
   static datetime prevtime = 0;
   int shift;
   int shift1;
   int shift2;
   int shift3;
   int shift4;
   string pattern, period;
   int setPattern = 0;
   int alert = 0;
   int arrowShift;
   int textShift;
   double O, O1, O2, C, C1, C2, C3, L, L1, L2, L3, H, H1, H2, H3;
   double CL, CLmin, CL1, CL2, BL, BLa, BL90, BL1, BL2, UW, UWa, UW1, UW2, LW, LWa, LW1, LW2, BodyHigh, BodyLow;
   BodyHigh = 0;
   BodyLow = 0;
   double Doji_Star_Ratio = 0;
   double Doji_MinLength = 0;
   double Star_MinLength = 0;
   int  Pointer_Offset = 0;         // The offset value for the arrow to be located off the candle high or low point.
   int  High_Offset = 0;            // The offset value added to the high arrow pointer for correct plotting of the pattern label.
   int  Offset_ShootStar = 0;       // The offset value of the shooting star above or below the pointer arrow.
   int  Offset_Hammer = 0;          // The offset value of the hammer above or below the pointer arrow.
   int  Offset_Doji = 0;            // The offset value of the doji above or below the pointer arrow.
   int  Offset_Star = 0;            // The offset value of the star above or below the pointer arrow.
   int  Offset_Piercing_Line = 0;   // The offset value of the piercing line above or below the pointer arrow.
   int  Offset_DarkCC = 0;          // The offset value of the dark cloud cover above or below the pointer arrow.
   int  Offset_Bullish_Engulfing = 0;
   int  Offset_Bearish_Engulfing = 0;
   int  CumOffset = 0;              // The counter value to be added to as more candle types are met.
   int  IncOffset = 0;              // The offset value that is added to a cummaltive offset value for each pass through the routine so any 

   double Piercing_Line_Ratio = 0;      
   int Piercing_Candle_Length = 0;  
   int Engulfing_Length = 0;
   double Candle_WickBody_Percent = 0;
   int CandleLength = 0;  

   if(prevtime == Time[0]) {
      return(0);
   }
   prevtime = Time[0];

   switch (Period()) {
      case 1:
         period = "M1";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 10;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;  
         Pointer_Offset = 9;
         High_Offset = 15;
         Offset_Hammer = 5;
         Offset_ShootStar = 5;
         Offset_Doji = 5;
         Offset_Star = 5;
         Offset_Piercing_Line = 5;
         Offset_DarkCC = 5;
         Offset_Bearish_Engulfing = 5;
         Offset_Bullish_Engulfing = 5;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 16;
         break;
      case 5:
         period = "M5";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 10;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 15;
         Offset_Hammer = 5;
         Offset_ShootStar = 5;
         Offset_Doji = 5;
         Offset_Star = 5;
         Offset_Piercing_Line = 5;
         Offset_DarkCC = 5;
         Offset_Bearish_Engulfing = 5;
         Offset_Bullish_Engulfing = 5;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 16;
         break;
      case 15:
         period = "M15";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 0;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 15;
         Offset_Hammer = 5;
         Offset_ShootStar = 5;
         Offset_Doji = 5;
         Offset_Star = 5;
         Offset_Piercing_Line = 5;
         Offset_DarkCC = 5;
         Offset_Bearish_Engulfing = 5;
         Offset_Bullish_Engulfing = 5;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 16;
         break;
      case 30:
         period = "M30";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 15;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 15;
         Offset_Hammer = 5;
         Offset_ShootStar = 5;
         Offset_Doji = 5;
         Offset_Star = 5;
         Offset_Piercing_Line = 5;
         Offset_DarkCC = 5;
         Offset_Bearish_Engulfing = 5;
         Offset_Bullish_Engulfing = 5;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 16;
         break;      
      case 60:
         period = "H1";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 25;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 20;
         Offset_Hammer = 8;
         Offset_ShootStar = 8;
         Offset_Doji = 8;
         Offset_Star = 8;
         Offset_Piercing_Line = 8;
         Offset_DarkCC = 8;
         Offset_Bearish_Engulfing = 8;
         Offset_Bullish_Engulfing = 8;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 18;
         break;
      case 240:
         period = "H4";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 20;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 20;
         High_Offset = 40;
         Offset_Hammer = 10;
         Offset_ShootStar = 10;
         Offset_Doji = 10;
         Offset_Star = 10;
         Offset_Piercing_Line = 10;
         Offset_DarkCC = 10;
         Offset_Bearish_Engulfing = 10;
         Offset_Bullish_Engulfing = 10;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 25;
         break;
      case 1440:
         period = "D1";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 30;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 80;
         Offset_Hammer = 15;
         Offset_ShootStar = 15;
         Offset_Doji = 15;
         Offset_Star = 15;
         Offset_Piercing_Line = 15;
         Offset_DarkCC = 15;
         Offset_Bearish_Engulfing = 15;
         Offset_Bullish_Engulfing = 15;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 60;
         break;
      case 10080:
         period = "W1";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 40;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 35;
         Offset_Hammer = 20;
         Offset_ShootStar = 20;
         Offset_Doji = 20;
         Offset_Star = 20;
         Offset_Piercing_Line = 20;
         Offset_DarkCC = 20;
         Offset_Bearish_Engulfing = 20;
         Offset_Bullish_Engulfing = 20;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 35;
         break;
      case 43200:
         period = "MN";
         Doji_Star_Ratio = 0;
         Piercing_Line_Ratio = 0.5;
         Piercing_Candle_Length = 10;
         Engulfing_Length = 50;
         Candle_WickBody_Percent = 0.9;
         CandleLength = 12;
         Pointer_Offset = 9;
         High_Offset = 45;
         Offset_Hammer = 30;
         Offset_ShootStar = 30;
         Offset_Doji = 30;
         Offset_Star = 30;
         Offset_Piercing_Line = 30;
         Offset_DarkCC = 30;
         Offset_Bearish_Engulfing = 30;
         Offset_Bullish_Engulfing = 30;
         Text_ShootStar = 8;
         Text_Hammer = 8;
         Text_Star = 8;
         Text_DarkCC = 8;
         Text_Piercing_Line = 8;
         Text_Bearish_Engulfing = 8;
         Text_Bullish_Engulfing = 8;
         IncOffset = 45;
         break;
   }

   for (shift = 0; shift < Bars; shift++) {

      CumOffset = 0;
      setalert = 0;
      counter=shift;
      Range=0;
      AvgRange=0;
      for (counter=shift ;counter<=shift+9;counter++) {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=

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

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

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

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

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

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

Стоимость полного кода
1 701,20₽ ≈ $20.79