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

#4x bheurekso pattern copynovo_wpatten-alert-buffers-0.mq5

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

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

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

О программе

Этот пользовательский индикатор для MetaTrader 5 отображает на графике ценовые свечные модели и отмечает их стрелками, линиями и текстовыми подписями. Индикатор рассчитывает набор бычьих и медвежьих формаций, включая Harami, Penetrating line, Engulfing, Piercing, Morning Star, Hammer, Dark Cloud, Evening Star и Shooting Star. Для каждой модели предусмотрен отдельный переключатель уведомлений, что позволяет включать или отключать оповещения по конкретным сигналам. Дополнительно можно управлять общим включением всех уведомлений, глубиной просмотра истории, цветами линий, стрелок и текста, а также режимом удаления и перестроения линий. Индикатор выводит данные в четыре буфера: два буфера со стрелками для бычьих и медвежьих сигналов, буфер с номером модели и буфер с номером оповещения. Оповещения формируются только при подтверждении сигнала и с учётом настройки общего включения уведомлений.

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

НастройкаОписание
lines Включает отображение линий на графике.
step Количество последних баров, участвующих в расчёте и отображении моделей.
Dell Управляет удалением и перестроением линий и связанных объектов при обновлении данных.
AlertEnbl Общий переключатель всех уведомлений индикатора. Если выключен, оповещения не выводятся.
BullHaramiAlert Включает уведомления для бычьей модели Harami.
BullCrossAlert Включает уведомления для бычьей модели Penetrating line.
BullEngulfAlert Включает уведомления для бычьей модели Engulfing.
BullPierceAlert Включает уведомления для бычьей модели Piercing.
MorningStarAlert Включает уведомления для бычьей модели Morning Star.
HammerAlert Включает уведомления для бычьей модели Hammer.
BearHaramiAlert Включает уведомления для медвежьей модели Harami.
BearCrossAlert Включает уведомления для медвежьей модели Penetrating line.
BearEngulfAlert Включает уведомления для медвежьей модели Engulfing.
Hammer2Alert Включает уведомления для медвежьей модели, связанной с Hammer.
DarkCloudAlert Включает уведомления для медвежьей модели Dark Cloud.
EveningStarAlert Включает уведомления для медвежьей модели Evening Star.
ShooterAlert Включает уведомления для медвежьей модели Shooting Star.
clrLines Цвет линий и текстовых подписей на графике.
clrBuy Цвет стрелок и объектов для бычьих сигналов.
clrSell Цвет стрелок и объектов для медвежьих сигналов.
Получить полный код

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

#property strict
#property version "2.0"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed

input bool       lines=true;  // Drawing lines
input int        step=500;    // History viewing depth
input bool       Dell=true;   // Erase and rebuild lines each time
input bool       AlertEnbl = true; // On off. all notifications
input bool       BullHaramiAlert = true;  // Bull Harami
input bool       BullCrossAlert = true;   // Bullish Penetration Line
input bool       BullEngulfAlert = true;  // Bullish Engulfing
input bool       BullPierceAlert = true;  // Bullish Clearance of Clouds
input bool       MorningStarAlert = true; // Bull Morning Star
input bool       HammerAlert = true;      // Bull Hammer
input bool       BearHaramiAlert = true;  // Bear Harami
input bool       BearCrossAlert = true;   // Bear penetrating линия
input bool       BearEngulfAlert = true;  // Bearish Hanged Man
input bool       Hammer2Alert = true;     // Bearish Engulfing
input bool       DarkCloudAlert = true;   // Bear Dark Clouds

input bool       EveningStarAlert = true; // Bear Evening Star
input bool       ShooterAlert = true;     // Bear Evening Star

input color clrLines = clrBlack;// Color Lines and Text
input color clrBuy = clrBlue;// Color BUY
input color clrSell = clrRed;// Color SELL

double ExtMapBuffer1[];
double ExtMapBuffer2[];
double PatternBuffer[];
double AlertBuffer[];
static datetime lastAlert = Time[0];

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

int deinit()
  {

   ObjectsDeleteAll(0,OBJ_TEXT);
   ObjectsDeleteAll(0,OBJ_ARROW);

   for(int i=1; i<50; i++)
     {
      ObjectDelete("-"+(string)i);
      ObjectDelete("+"+(string)i);
     }

   return(0);
  }

void SetArrow(int sh, datetime tm, double pr, int cod,color clr)
  {
   ObjectCreate("Arrow-"+(string)sh,OBJ_ARROW,0,tm,pr);
   ObjectSet("Arrow-"+(string)sh,OBJPROP_ARROWCODE,cod);
   ObjectSet("Arrow-"+(string)sh,OBJPROP_COLOR,clr);
  }
void SetArrow1(int sh, datetime tm, double pr, int cod,color clr)
  {
   ObjectCreate("Arrow+"+(string)sh,OBJ_ARROW,0,tm,pr);
   ObjectSet("Arrow+"+(string)sh,OBJPROP_ARROWCODE,cod);
   ObjectSet("Arrow+"+(string)sh,OBJPROP_COLOR,clr);
  }

void SetText(int sh,datetime tm,double pr,string text,color clr)
  {
   ObjectCreate("x"+(string)sh,OBJ_TEXT,0,tm,pr);
   ObjectSetText("x"+(string)sh,text);
   ObjectSet("x"+(string)sh,OBJPROP_COLOR,clr);
  }
void SetText1(int sh,datetime tm,double pr,string text,color clr)
  {
   ObjectCreate("y"+(string)sh,OBJ_TEXT,0,tm,pr);
   ObjectSetText("y"+(string)sh,text);
   ObjectSet("y"+(string)sh,OBJPROP_COLOR,clr);
  }

void Setline(int sh,datetime tm,double pr,datetime tm1,double pr1, color clr)
  {
   ObjectCreate("-"+(string)sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
   ObjectSet("-"+(string)sh,7,STYLE_SOLID);
   ObjectSet("-"+(string)sh,10,false);
   ObjectSet("-"+(string)sh,6,clr);
  }
void Setline1(int sh,datetime tm,double pr,datetime tm1,double pr1, color clr)
  {
   ObjectCreate("+"+(string)sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
   ObjectSet("+"+(string)sh,7,STYLE_SOLID);
   ObjectSet("+"+(string)sh,10,false);
   ObjectSet("+"+(string)sh,6,clr);
  }

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

   int myBars=0, StartBar=0;//, Kedip(false);
   int shift=0, shift1=0, shift2=0, shift3=0;
   bool BullEngulf=False, MorningStar=False, BullPierce=False, Hammer=False,Name=false,Arrow=false;
   bool BearEngulf=False, EveningStar=False, DarkCloud=False, Shooter=False,Name1=false,Arrow1=false;
   bool BullHarami=False, BearHarami=false, BullCross=false, BearCross=false,up=false,down=false;
   int limit=0,n=0,a=0,b=0,x=0,doji=false;
   double  l[1000],h[1000];
   ArrayInitialize(l,0);
   ArrayInitialize(h,0);

   int p3[100],x1[100];
   p3[1]=0;
   if(myBars!=Bars)
     {
      myBars=Bars;
     }
   limit=step;//Bars-counted_bars;
   for(shift=limit; shift>=0; shift--)
     {

      shift1=shift+1;
      shift2=shift+2;
      shift3=shift+3;

      if((iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift)>iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)) &&
         (iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)>iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)) &&
         (iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)>iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift3)))
         up=true;
      else
         up=false;
      if((iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift)<iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)) &&
         (iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)<iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)) &&
         (iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)<iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift3)))
         down=true;
      else
         down=false;

      if(5==Period())
        {
         a=15;
         b=5;
        }
      if(15==Period())
        {
         a=7;
         b=3;
        }
      if(60==Period())
        {
         a=25;
         b=15;
        }
      if(240==Period())
        {
         a=30;
         b=20;
        }
      if(1440==Period())
        {
         a=35;
         b=25;
        }

      if((down)&&(Open[shift2]>Close[shift2]) && (Open[shift1]>Close[shift2]) && (Close[shift1]<Open[shift2]) &&
         (Close[shift1]>Open[shift1])){
         BullHarami=true;
         PatternBuffer[shift1]=1;PatternBuffer[0]=1;}
      else
         BullHarami=false;

      if((Open[shift2]>Close[shift2]) && (Open[shift1]>Close[shift2])&& (Open[shift1]<Open[shift2])&& (Close[shift1]>Open[shift2])){
         BullCross=true;
         PatternBuffer[shift1]=2;PatternBuffer[0]=2;}
      else
         BullCross=false;

      if((Close[shift2]<Open[shift2]) && (Open[shift1]<Close[shift2]) && //| l[shift1] < l[shift2]) &
         (Close[shift1]>Open[shift2])){
         BullEngulf=True;
         PatternBuffer[shift1]=3;PatternBuffer[0]=3;}
      else
         BullEngulf=False;

      if(!BullEngulf)
        {
         if((Close[shift2]<Open[shift2]) && (Close[shift1]>Open[shift1]) &&
            ((Open[shift1]<Close[shift2]) /*|| (Low[shift1]<Low[shift2])*/) &&
            (Close[shift1]>Close[shift2]+((Open[shift2]-Close[shift2])/2))){
            BullPierce=True;
            PatternBuffer[shift1]=4;PatternBuffer[0]=4;}
         else
            BullPierce=False;
        }
      else
        {
         BullPierce=False;
        }

      if((Close[shift3]<Open[shift3]) && (Open[shift2]<Close[shift3]) && (Close[shift2]<Close[shift3]) &&
         ((Open[shift1]>Close[shift2]) && (Open[shift1]>Open[shift2])) && (Close[shift1]>=Close[shift3])){
         MorningStar=True;
         PatternBuffer[shift1]=5;PatternBuffer[0]=5;}
      else
         MorningStar=False;

      if((Open[shift1]-Low[shift1]>MathMax(High[shift1]-Close[shift1],Close[shift1]-Open[shift1])*3) &&
         (Close[shift1]-Low[shift1]>MathMax(High[shift1]-Close[shift1],Close[shift1]-Open[shift1])*3)){
         Hammer=True;
         PatternBuffer[shift1]=6;}
      else
         Hammer=False;

      if((up)&&(Open[shift2]<Close[shift2]) && (Open[shift1]<Close[shift2]) && (Close[shift1]>Open[shift2]) &&
         (Close[shift1]<Open[shift1])){
         BearHarami=true;
         PatternBuffer[shift1]=7;PatternBuffer[0]=7;}
      else
         BearHarami=false;

      if((Open[shift2]<Close[shift2]) && (Open[shift1]<Close[shift2])&&(Open[shift1]>Open[shift2])&& (Close[shift1]<Open[shift2])){
         BearCross=true;
         PatternBuffer[shift1]=8;PatternBuffer[0]=8;}
      else
         BearCross=false;

      if((Close[shift2]>Open[shift2]) && (Close[shift1]<Open[shift1]) && (Open[shift1]>Close[shift2]) &&
         ((Close[shift1]<Open[shift2]))){
         BearEngulf=True;
         PatternBuffer[shift1]=9;PatternBuffer[0]=9;}
      else
         BearEngulf=False;

      if(!BearEngulf)
        {
         if((Close[shift2]>Open[shift2]) && ((Open[shift1]>Close[shift2]) /*|| (High[shift1]>High[shift2]*/) &&
            (Close[shift1]<Close[shift2]-((Close[shift2]-Open[shift2])/2))){
            DarkCloud=True;
            PatternBuffer[shift1]=10;PatternBuffer[0]=10;}
         else
            DarkCloud=False;
        }
      else
        {
         DarkCloud=False;
        }

      if((Close[shift3]>Open[shift3]) && (Open[shift2]>Close[shift3]) && (Close[shift2]>Close[shift3]) &&
         ((Open[shift1]<Close[shift2]) && (Open[shift1]<Open[shift2])) && (Close[shift1]<Close[shift3])){
         EveningStar=True;
         PatternBuffer[shift1]=11;PatternBuffer[0]=11;}
      else
         EveningStar=False;

      if((up)&&(High[shift1]-Open[shift1]>MathMax(Close[shift1]-Low[shift1],Open[shift1]-Close[shift1])*3)&&
         (High[shift1]-Close[shift1]>MathMax(Close[shift1]-Low[shift1],Open[shift1]-Close[shift1])*3)){
         Shooter=True;
         PatternBuffer[shift1]=12;PatternBuffer[0]=12;}
      else
         Shooter=False;

      if((BullEngulf || BullPierce || MorningStar || BullHarami || BullCross) &&
         (Close[shift]>Close[shift1])&& Close[shift]>Open[shift1])
        {

         Name=true;
         Arrow=true;
        }

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

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

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

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

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

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

Стоимость полного кода
1 402,70₽ ≈ $17.15