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

Candlestick Pattern

candlestick pattern@amazing_owner.mq4
Вы автор или правообладатель?

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

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

О программе

Данный исходный файл представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник автоматически анализирует свечные паттерны на заданном количестве последних баров и при обнаружении соответствующей формации открывает рыночную сделку в направлении, которое предполагает паттерн. Поддерживаются как бычьи, так и медвежьи модели: молот, падающая звезда, дожи, утренняя/вечерняя звезда, тёмное облачное покрытие, проникающая линия и поглощение. Для каждого паттерна можно отдельно включить или отключить торговлю и звуковое оповещение.

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

Все входные параметры вынесены в раздел внешних настроек, что позволяет менять их без перекомпиляции. Советник не является библиотекой или индикатором, а представляет собой полноценный торговый робот, работающий по тиковым событиям. В коде отсутствуют пользовательские функции, кроме вспомогательной функции формирования имени, которая не является частью торговой логики.

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

НастройкаОписание
StopLoss Стоп-лосс — Размер стоп-лосса в пунктах от цены открытия. Если значение равно нулю, стоп-лосс не выставляется.
TakeProfit Тейк-профит — Размер тейк-профита в пунктах от цены открытия. Если значение равно нулю, тейк-профит не выставляется.
Lots Объём сделки — Объём сделки в лотах. Если значение меньше или равно нулю, объём рассчитывается автоматически как доля от свободной маржи.
Slippage Проскальзывание — Максимально допустимое отклонение цены в пунктах при открытии ордера.
MagicNumber Магический номер — Уникальный идентификатор, присваиваемый ордерам советника для их отличия от сделок других экспертов.
Show_Alert Показывать оповещение — Включает или отключает общее звуковое оповещение при обнаружении паттерна.
Display_ShootStar_2 Торговать по падающей звезде 2 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Падающая звезда» второго типа.
Show_ShootStar_Alert_2 Оповещать о падающей звезде 2 — Включает или отключает звуковое оповещение при обнаружении паттерна «Падающая звезда» второго типа.
Display_ShootStar_3 Торговать по падающей звезде 3 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Падающая звезда» третьего типа.
Show_ShootStar_Alert_3 Оповещать о падающей звезде 3 — Включает или отключает звуковое оповещение при обнаружении паттерна «Падающая звезда» третьего типа.
Display_ShootStar_4 Торговать по падающей звезде 4 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Падающая звезда» четвёртого типа.
Show_ShootStar_Alert_4 Оповещать о падающей звезде 4 — Включает или отключает звуковое оповещение при обнаружении паттерна «Падающая звезда» четвёртого типа.
Color_ShootStar Цвет падающей звезды — Цвет, которым помечается паттерн «Падающая звезда» на графике.
Display_Hammer_2 Торговать по молоту 2 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Молот» второго типа.
Show_Hammer_Alert_2 Оповещать о молоте 2 — Включает или отключает звуковое оповещение при обнаружении паттерна «Молот» второго типа.
Display_Hammer_3 Торговать по молоту 3 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Молот» третьего типа.
Show_Hammer_Alert_3 Оповещать о молоте 3 — Включает или отключает звуковое оповещение при обнаружении паттерна «Молот» третьего типа.
Display_Hammer_4 Торговать по молоту 4 — Разрешает автоматическое открытие сделок при обнаружении паттерна «Молот» четвёртого типа.
Show_Hammer_Alert_4 Оповещать о молоте 4 — Включает или отключает звуковое оповещение при обнаружении паттерна «Молот» четвёртого типа.
Color_Hammer Цвет молота — Цвет, которым помечается паттерн «Молот» на графике.
Display_Doji Торговать по дожи — Разрешает автоматическое открытие сделок при обнаружении паттерна «Дожи».
Show_Doji_Alert Оповещать о дожи — Включает или отключает звуковое оповещение при обнаружении паттерна «Дожи».
Color_Doji Цвет дожи — Цвет, которым помечается паттерн «Дожи» на графике.
Display_Stars Торговать по звёздам — Разрешает автоматическое открытие сделок при обнаружении паттернов «Утренняя звезда» и «Вечерняя звезда».
Show_Stars_Alert Оповещать о звёздах — Включает или отключает звуковое оповещение при обнаружении паттернов «Утренняя звезда» и «Вечерняя звезда».
Star_Body_Length Длина тела звезды — Максимальная длина тела свечи в пунктах, при которой она считается звездой.
Color_Star Цвет звезды — Цвет, которым помечается паттерн «Звезда» на графике.
Display_Dark_Cloud_Cover Торговать по тёмному облачному покрытию — Разрешает автоматическое открытие сделок при обнаружении паттерна «Тёмное облачное покрытие».
Show_DarkCC_Alert Оповещать о тёмном облачном покрытии — Включает или отключает звуковое оповещение при обнаружении паттерна «Тёмное облачное покрытие».
Color_DarkCC Цвет тёмного облачного покрытия — Цвет, которым помечается паттерн «Тёмное облачное покрытие» на графике.
Display_Piercing_Line Торговать по проникающей линии — Разрешает автоматическое открытие сделок при обнаружении паттерна «Проникающая линия».
Show_Piercing_Line_Alert Оповещать о проникающей линии — Включает или отключает звуковое оповещение при обнаружении паттерна «Проникающая линия».
Color_Piercing_Line Цвет проникающей линии — Цвет, которым помечается паттерн «Проникающая линия» на графике.
Display_Bearish_Engulfing Торговать по медвежьему поглощению — Разрешает автоматическое открытие сделок при обнаружении медвежьего паттерна «Поглощение».
Show_Bearish_Engulfing_Alert Оповещать о медвежьем поглощении — Включает или отключает звуковое оповещение при обнаружении медвежьего паттерна «Поглощение».
Color_Bearish_Engulfing Цвет медвежьего поглощения — Цвет, которым помечается медвежий паттерн «Поглощение» на графике.
Display_Bullish_Engulfing Торговать по бычьему поглощению — Разрешает автоматическое открытие сделок при обнаружении бычьего паттерна «Поглощение».
Show_Bullish_Engulfing_Alert Оповещать о бычьем поглощении — Включает или отключает звуковое оповещение при обнаружении бычьего паттерна «Поглощение».
Color_Bullish_Engulfing Цвет бычьего поглощения — Цвет, которым помечается бычий паттерн «Поглощение» на графике.
bars Количество баров — Количество последних баров, среди которых выполняется поиск свечных паттернов.
Получить полный код

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

#property version   "1.00"
#property strict

extern int     StopLoss       = 20;
extern int     TakeProfit     = 50;
extern double  Lots           = 0.01;
extern int     Slippage       = 3;
extern int     MagicNumber    = 58132134;

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;
extern int bars = 500;

double upArrow[];
double downArrow[];

int Signal;
int SL,TP;
int point = 0;
int pipMultiplier = 1;

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

int deinit()
  {

   ObjectsDeleteAll(0, OBJ_TEXT);
   return(0);

  }

int start()
  {
      // код доступен только после оплаты
   }
  if (!Lots > 0)
   {
       Lots = AccountFreeMargin() * .0001;
   }
  int Result=0;

   Comment("\n", "\n", "Candlestick Pattern EA");

      SL=0;TP=0;
      if(StopLoss>0)   SL=Ask-point*StopLoss;
      if(TakeProfit>0) TP=Ask+point*TakeProfit;

 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;
   double O, O1, O2, C, C1, C2, C3, L, L1, L2, L3, H, H1, H2, H3;
   double CL, CL1, CL2, BL, BLa, BL90, UW, LW, 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];

   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=AvgRange/10;
      shift1 = shift + 1;
      shift2 = shift + 2;
      shift3 = shift + 3;
      shift4 = shift + 4;

      O = Open[shift1];
      O1 = Open[shift2];
      O2 = Open[shift3];
      H = High[shift1];
      H1 = High[shift2];
      H2 = High[shift3];
      H3 = High[shift4];
      L = Low[shift1];
      L1 = Low[shift2];
      L2 = Low[shift3];
      L3 = Low[shift4];
      C = Close[shift1];
      C1 = Close[shift2];
      C2 = Close[shift3];
      C3 = Close[shift4];
      if (O>C) {
         BodyHigh = O;
         BodyLow = C;  }
      else {
         BodyHigh = C;
         BodyLow = O; }
      CL = High[shift1]-Low[shift1];
      CL1 = High[shift2]-Low[shift2];
      CL2 = High[shift3]-Low[shift3];
      BL = Open[shift1]-Close[shift1];
      UW = High[shift1]-BodyHigh;
      LW = BodyLow-Low[shift1];
      BLa = MathAbs(BL);
      BL90 = BLa*Candle_WickBody_Percent;
      int ticket;

      if ((H>=H1)&&(H>H2)&&(H>H3))  {
         if (((UW/2)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/3)<=LW)&&((UW/4)<=LW)/*&&(L>L1)&&(L>L2)*/)  {
         if (Display_ShootStar_2 == true)  {
            ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage*Point,Ask+StopLoss*Point,Bid-TakeProfit*Point,"CSP: Shooting ShootStar 2",MagicNumber,0,Red);
            return(ticket);
         }

         if (Show_ShootStar_Alert_2) {
         if (setalert == 0 && Show_Alert == true) {
            pattern = "Shooting ShootStar 2";
            setalert = 1;
         }
         }
         }
      }

      if ((H>=H1)&&(H>H2)&&(H>H3))  {
         if (((UW/3)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)&&((UW/4)<=LW)/*&&(L>L1)&&(L>L2)*/)  {
         if (Display_ShootStar_3 == true)  {
            ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage*Point,Ask+StopLoss*Point,Bid-TakeProfit*Point,"CSP: Shooting ShootStar 3",MagicNumber,0,Red);
            return(ticket);
         }

         if (Show_ShootStar_Alert_3) {
         if (setalert == 0 && Show_Alert == true) {
            pattern = "Shooting ShootStar 3";
            setalert = 1;
         }
         }
         }
      }

      if ((H>=H1)&&(H>H2)&&(H>H3))  {
         if (((UW/4)>LW)&&(UW>(2*BL90))&&(CL>=(CandleLength*Point))&&(O!=C)/*&&(L>L1)&&(L>L2)*/)  {
         if (Display_ShootStar_4 == true)  {
            ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage*Point,Ask+StopLoss*Point,Bid-TakeProfit*Point,"CSP: Shooting ShootStar 4",MagicNumber,0,Red);
            return(ticket);
         }

        

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

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

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

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

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

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

Стоимость полного кода
1 041,30₽ ≈ $12.73