то поможет сделать в индикатор код аллерт

 

Привет кто поможет сделать  в индикатор код, чтоб когда пробивал уровни индикатора был сигнал о пробитии аллерт вот сам  код

//+------------------------------------------------------------------+

//|                                                   FiboPiv_v1.mq4 |

//|                                                          Kalenzo |

//|                                      bartlomiej.gorski@gmail.com |

//+------------------------------------------------------------------+

#property copyright "Kalenzo"

#property link      "bartlomiej.gorski@gmail.com"


#property indicator_chart_window

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()

  {

//---- indicators

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()

  {

//----

   ObjectDelete("П1");

   ObjectDelete("П2");

   ObjectDelete("П3");

   ObjectDelete("С1");

   ObjectDelete("С2");

   ObjectDelete("С3");

   ObjectDelete("PIVIOT");

   ObjectDelete("Поддержка 1");

   ObjectDelete("Поддержка 2");

   ObjectDelete("Поддержка 3");

   ObjectDelete("Уровень Пивота");

   ObjectDelete("Сопротивление 1");

   ObjectDelete("Сопротивление 2");

   ObjectDelete("Сопротивление 3");

   Comment(" ");

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int start()

  {

   

//----

double rates[1][6],yesterday_close,yesterday_high,yesterday_low;

ArrayCopyRates(rates, Symbol(), PERIOD_D1);


if(DayOfWeek() == 1)

{

   if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,1)) == 5)

   {

       yesterday_close = rates[1][4];

       yesterday_high = rates[1][3];

       yesterday_low = rates[1][2];

   }

   else

   {

      for(int d = 5;d>=0;d--)

      {

         if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,d)) == 5)

         {

             yesterday_close = rates[d][4];

             yesterday_high = rates[d][3];

             yesterday_low = rates[d][2];

         }

         

      }  

   }

}

else

{

    yesterday_close = rates[1][4];

    yesterday_high = rates[1][3];

    yesterday_low = rates[1][2];

}



//---- Calculate Pivots


Comment("\nYesterday quotations:\nH ",yesterday_high,"\nL ",yesterday_low, "\nC ",yesterday_close);

double R = yesterday_high - yesterday_low;//range

double p = (yesterday_high + yesterday_low + yesterday_close)/3;// Standard Pivot

double r3 = p + (R * 1.000);

double r2 = p + (R * 0.618);

double r1 = p + (R * 0.382);

double s1 = p - (R * 0.382);

double s2 = p - (R * 0.618);

double s3 = p - (R * 1.000);


drawLine(r3,"C3", Lime,0);

drawLabel("Сопротивление 3",r3,Lime);

drawLine(r2,"C2", Magenta,0);

drawLabel("Сопротивление 2",r2,Magenta);

drawLine(r1,"C1", OrangeRed,0);

drawLabel("Сопротивление 1",r1,OrangeRed);


drawLine(p,"PIVIOT",Blue,1);

drawLabel("Уровень пивота",p,Blue);


drawLine(s1,"П1",DeepPink,0);

drawLabel("Поддержка 1",s1,DeepPink);

drawLine(s2,"П2",Crimson,0);

drawLabel("Поддержка 2",s2,Crimson);

drawLine(s3,"П3",Red,0);

drawLabel("Поддержка 3",s3,Red);



//----

   return(0);

  }

//+------------------------------------------------------------------+

void drawLabel(string name,double lvl,color Color)

{

    if(ObjectFind(name) != 0)

    {

        ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);

        ObjectSetText(name, name, 8, "Arial", EMPTY);

        ObjectSet(name, OBJPROP_COLOR, Color);

    }

    else

    {

        ObjectMove(name, 0, Time[10], lvl);

    }

}



void drawLine(double lvl,string name, color Col,int type)

{

         if(ObjectFind(name) != 0)

         {

            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

            

            if(type == 1)

            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

            else

            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

            

            ObjectSet(name, OBJPROP_COLOR, Col);

            ObjectSet(name,OBJPROP_WIDTH,1);

            

         }

         else

         {

            ObjectDelete(name);

            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

            

            if(type == 1)

            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

            else

            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

            

            ObjectSet(name, OBJPROP_COLOR, Col);        

            ObjectSet(name,OBJPROP_WIDTH,1);

          

         }

}

Файлы:
 
Нечитаемо
 
radik148844:
Вот данный индикатор 

Вот данная кнопка


 
Vitaly Muzichenko:

Вот данная кнопка


//+------------------------------------------------------------------+
//|                                                   FiboPiv_v1.mq4 |
//|                                                          Kalenzo |
//|                                      bartlomiej.gorski@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Kalenzo"
#property link      "bartlomiej.gorski@gmail.com"

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("П1");
   ObjectDelete("П2");
   ObjectDelete("П3");
   ObjectDelete("С1");
   ObjectDelete("С2");
   ObjectDelete("С3");
   ObjectDelete("PIVIOT");
   ObjectDelete("Поддержка 1");
   ObjectDelete("Поддержка 2");
   ObjectDelete("Поддержка 3");
   ObjectDelete("Уровень Пивота");
   ObjectDelete("Сопротивление 1");
   ObjectDelete("Сопротивление 2");
   ObjectDelete("Сопротивление 3");
   Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
//----
double rates[1][6],yesterday_close,yesterday_high,yesterday_low;
ArrayCopyRates(rates, Symbol(), PERIOD_D1);

if(DayOfWeek() == 1)
{
   if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,1)) == 5)
   {
       yesterday_close = rates[1][4];
       yesterday_high = rates[1][3];
       yesterday_low = rates[1][2];
   }
   else
   {
      for(int d = 5;d>=0;d--)
      {
         if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,d)) == 5)
         {
             yesterday_close = rates[d][4];
             yesterday_high = rates[d][3];
             yesterday_low = rates[d][2];
         }
         
      }  
   }
}
else
{
    yesterday_close = rates[1][4];
    yesterday_high = rates[1][3];
    yesterday_low = rates[1][2];
}


//---- Calculate Pivots

Comment("\nYesterday quotations:\nH ",yesterday_high,"\nL ",yesterday_low, "\nC ",yesterday_close);
double R = yesterday_high - yesterday_low;//range
double p = (yesterday_high + yesterday_low + yesterday_close)/3;// Standard Pivot
double r3 = p + (R * 1.000);
double r2 = p + (R * 0.618);
double r1 = p + (R * 0.382);
double s1 = p - (R * 0.382);
double s2 = p - (R * 0.618);
double s3 = p - (R * 1.000);

drawLine(r3,"C3", Lime,0);
drawLabel("Сопротивление 3",r3,Lime);
drawLine(r2,"C2", Magenta,0);
drawLabel("Сопротивление 2",r2,Magenta);
drawLine(r1,"C1", OrangeRed,0);
drawLabel("Сопротивление 1",r1,OrangeRed);

drawLine(p,"PIVIOT",Blue,1);
drawLabel("Уровень пивота",p,Blue);

drawLine(s1,"П1",DeepPink,0);
drawLabel("Поддержка 1",s1,DeepPink);
drawLine(s2,"П2",Crimson,0);
drawLabel("Поддержка 2",s2,Crimson);
drawLine(s3,"П3",Red,0);
drawLabel("Поддержка 3",s3,Red);


//----
   return(0);
  }
//+------------------------------------------------------------------+
void drawLabel(string name,double lvl,color Color)
{
    if(ObjectFind(name) != 0)
    {
        ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);
        ObjectSetText(name, name, 8, "Arial", EMPTY);
        ObjectSet(name, OBJPROP_COLOR, Color);
    }
    else
    {
        ObjectMove(name, 0, Time[10], lvl);
    }
}


void drawLine(double lvl,string name, color Col,int type)
{
         if(ObjectFind(name) != 0)
         {
            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
            
            if(type == 1)
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            else
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);
            ObjectSet(name,OBJPROP_WIDTH,1);
            
         }
         else
         {
            ObjectDelete(name);
            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
            
            if(type == 1)
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            else
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);        
            ObjectSet(name,OBJPROP_WIDTH,1);
          
         }
}
 
Алексей Тарабанов:
Нечитаемо
//+------------------------------------------------------------------+

//|                                                   FiboPiv_v1.mq4 |

//|                                                          Kalenzo |

//|                                      bartlomiej.gorski@gmail.com |

//+------------------------------------------------------------------+

#property copyright "Kalenzo"

#property link      "bartlomiej.gorski@gmail.com"



#property indicator_chart_window

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()

  {

//---- indicators

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()

  {

//----

   ObjectDelete("П1");

   ObjectDelete("П2");

   ObjectDelete("П3");

   ObjectDelete("С1");

   ObjectDelete("С2");

   ObjectDelete("С3");

   ObjectDelete("PIVIOT");

   ObjectDelete("Поддержка 1");

   ObjectDelete("Поддержка 2");

   ObjectDelete("Поддержка 3");

   ObjectDelete("Уровень Пивота");

   ObjectDelete("Сопротивление 1");

   ObjectDelete("Сопротивление 2");

   ObjectDelete("Сопротивление 3");

   Comment(" ");

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int start()

  {

   

//----

double rates[1][6],yesterday_close,yesterday_high,yesterday_low;

ArrayCopyRates(rates, Symbol(), PERIOD_D1);



if(DayOfWeek() == 1)

{

   if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,1)) == 5)

   {

       yesterday_close = rates[1][4];

       yesterday_high = rates[1][3];

       yesterday_low = rates[1][2];

   }

   else

   {

      for(int d = 5;d>=0;d--)

      {

         if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,d)) == 5)

         {

             yesterday_close = rates[d][4];

             yesterday_high = rates[d][3];

             yesterday_low = rates[d][2];

         }

         

      }  

   }

}

else

{

    yesterday_close = rates[1][4];

    yesterday_high = rates[1][3];

    yesterday_low = rates[1][2];

}





//---- Calculate Pivots



Comment("\nYesterday quotations:\nH ",yesterday_high,"\nL ",yesterday_low, "\nC ",yesterday_close);

double R = yesterday_high - yesterday_low;//range

double p = (yesterday_high + yesterday_low + yesterday_close)/3;// Standard Pivot

double r3 = p + (R * 1.000);

double r2 = p + (R * 0.618);

double r1 = p + (R * 0.382);

double s1 = p - (R * 0.382);

double s2 = p - (R * 0.618);

double s3 = p - (R * 1.000);



drawLine(r3,"C3", Lime,0);

drawLabel("Сопротивление 3",r3,Lime);

drawLine(r2,"C2", Magenta,0);

drawLabel("Сопротивление 2",r2,Magenta);

drawLine(r1,"C1", OrangeRed,0);

drawLabel("Сопротивление 1",r1,OrangeRed);



drawLine(p,"PIVIOT",Blue,1);

drawLabel("Уровень пивота",p,Blue);



drawLine(s1,"П1",DeepPink,0);

drawLabel("Поддержка 1",s1,DeepPink);

drawLine(s2,"П2",Crimson,0);

drawLabel("Поддержка 2",s2,Crimson);

drawLine(s3,"П3",Red,0);

drawLabel("Поддержка 3",s3,Red);





//----

   return(0);

  }

//+------------------------------------------------------------------+

void drawLabel(string name,double lvl,color Color)

{

    if(ObjectFind(name) != 0)

    {

        ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);

        ObjectSetText(name, name, 8, "Arial", EMPTY);

        ObjectSet(name, OBJPROP_COLOR, Color);

    }

    else

    {

        ObjectMove(name, 0, Time[10], lvl);

    }

}





void drawLine(double lvl,string name, color Col,int type)

{

         if(ObjectFind(name) != 0)

         {

            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

            

            if(type == 1)

            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

            else

            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

            

            ObjectSet(name, OBJPROP_COLOR, Col);

            ObjectSet(name,OBJPROP_WIDTH,1);

            

         }

         else

         {

            ObjectDelete(name);

            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

            

            if(type == 1)

            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

            else

            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

            

            ObjectSet(name, OBJPROP_COLOR, Col);        

            ObjectSet(name,OBJPROP_WIDTH,1);

          

         }
 
radik148844:
Дружище, прикрутить код "алерта" не сложно ... и тебе рады бы помочь, но надо полный рабочий код индикатора( дай ссылку на скачку индикатора).
 
nikelen:
Дружище, прикрутить код "алерта" не сложно ... и тебе рады бы помочь, но надо полный рабочий код индикатора( дай ссылку на скачку индикатора).
https://yadi.sk/d/rPUXnYVq3TLkpb
Pulse-Fibonacci-Pivot.mq4
Pulse-Fibonacci-Pivot.mq4
  • yadi.sk
Посмотреть и скачать с Яндекс.Диска
 

Рабочий код найден ... Алерты вставлены, но работать будет очень не приятно. Дело в том, что цена будет биться об уровни и алерты будут сыпаться непрерывно пока график не отойдет от уровня. Лучшее решение - поставить разные  звуковые сигналы для пересечения сопротивления и поддержки.  Полный код с алертами вот:

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property copyright "Kalenzo"
#property link      "bartlomiej.gorski@gmail.com"

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("П1");
   ObjectDelete("П2");
   ObjectDelete("П3");
   ObjectDelete("С1");
   ObjectDelete("С2");
   ObjectDelete("С3");
   ObjectDelete("PIVIOT");
   ObjectDelete("Поддержка 1");
   ObjectDelete("Поддержка 2");
   ObjectDelete("Поддержка 3");
   ObjectDelete("Уровень Пивота");
   ObjectDelete("Сопротивление 1");
   ObjectDelete("Сопротивление 2");
   ObjectDelete("Сопротивление 3");
   Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
//----
double rates[1][6],yesterday_close,yesterday_high,yesterday_low;
ArrayCopyRates(rates, Symbol(), PERIOD_D1);

if(DayOfWeek() == 1)
{
   if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,1)) == 5)
   {
       yesterday_close = rates[1][4];
       yesterday_high = rates[1][3];
       yesterday_low = rates[1][2];
   }
   else
   {
      for(int d = 5;d>=0;d--)
      {
         if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,d)) == 5)
         {
             yesterday_close = rates[d][4];
             yesterday_high = rates[d][3];
             yesterday_low = rates[d][2];
         }
         
      }  
   }
}
else
{
    yesterday_close = rates[1][4];
    yesterday_high = rates[1][3];
    yesterday_low = rates[1][2];
}


//---- Calculate Pivots

//Comment("\nYesterday quotations:\nH ",yesterday_high,"\nL ",yesterday_low, "\nC ",yesterday_close);
double R = yesterday_high - yesterday_low;//range
double p = (yesterday_high + yesterday_low + yesterday_close)/3;// Standard Pivot
double r3 = p + (R * 1.000);
double r2 = p + (R * 0.618);
double r1 = p + (R * 0.382);
double s1 = p - (R * 0.382);
double s2 = p - (R * 0.618);
double s3 = p - (R * 1.000);

drawLine(r3,"C3", Lime,0);
drawLabel("Сопротивление 3",r3,Lime);
drawLine(r2,"C2", Magenta,0);
drawLabel("Сопротивление 2",r2,Magenta);
drawLine(r1,"C1", OrangeRed,0);
drawLabel("Сопротивление 1",r1,OrangeRed);

drawLine(p,"PIVIOT",Blue,1);
drawLabel("Уровень пивота",p,Blue);

drawLine(s1,"П1",DeepPink,0);
drawLabel("Поддержка 1",s1,DeepPink);
drawLine(s2,"П2",Crimson,0);
drawLabel("Поддержка 2",s2,Crimson);
drawLine(s3,"П3",Red,0);
drawLabel("Поддержка 3",s3,Red);

//++++++++++++++++++++ Сигналы пересечения +++++++++++++++++++++++


if(Ask==NormalizeDouble(s1,Digits))   Alert(Symbol()," TF-",Period()," Цена подошла к П1!");
if(Ask==NormalizeDouble(s2,Digits))   Alert(Symbol()," TF-",Period()," Цена подошла к П2!");
if(Ask==NormalizeDouble(s3,Digits))   Alert(Symbol()," TF-",Period()," Цена подошла к П3!");
 
 if(Bid==NormalizeDouble(r1,Digits)) Alert(Symbol()," TF-",Period()," Цена подошла к С1!");
 if(Bid==NormalizeDouble(r2,Digits)) Alert(Symbol()," TF-",Period()," Цена подошла к С2!");
 if(Bid==NormalizeDouble(r3,Digits)) Alert(Symbol()," TF-",Period()," Цена подошла к С3!"); 
 
 if(Bid<NormalizeDouble(p,Digits) && Ask>NormalizeDouble(p,Digits))  {PlaySound("alert2.wav" );
 //Alert(Symbol()," TF-",Period()," Цена в точке разворота!");
 
 }
//----

   return(0);
  }
//+------------------------------------------------------------------+
void drawLabel(string name,double lvl,color Color)
{
    if(ObjectFind(name) != 0)
    {
        ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);
        ObjectSetText(name, name, 8, "Arial", EMPTY);
        ObjectSet(name, OBJPROP_COLOR, Color);
    }
    else
    {
        ObjectMove(name, 0, Time[10], lvl);
    }
}


void drawLine(double lvl,string name, color Col,int type)
{
         if(ObjectFind(name) != 0)
         {
            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
            
            if(type == 1)
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            else
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);
            ObjectSet(name,OBJPROP_WIDTH,1);
            
         }
         else
         {
            ObjectDelete(name);
            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
            
            if(type == 1)
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            else
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);        
            ObjectSet(name,OBJPROP_WIDTH,1);
          
         }
}

Но помимо всего, в значениях уровней индикатора что то напутано... 

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Check Market Time function Привет! Есть функция, которая...