Descargar MetaTrader 5

Como agregarle una alerta al indicador ultimate arrows

Para añadir comentario, por favor Autorícese o regístrese
Daiana1982
21
Daiana1982  
Hola, alguien me puede ayudar a agregarle una alerta a este indicador,gracias,besos
Archivos adjuntos:
Jose Miguel Soriano
5083
Jose Miguel Soriano  
Daiana1982:
Hola, alguien me puede ayudar a agregarle una alerta a este indicador,gracias,besos

Puedes incorporar esta función al código...

//+------------------------------------- FUNCION AVISO-ALERTA -----------------------------+
bool enviaAlerta(mis_TIPO_AVISOS avisoTipo, string mens, int velaAvisoAct= 1, int nAvisos= 2)
{                 //enum mis_TIPO_AVISOS {noW, eMail, SMS, allW};
   static int velaAvisoPrev= 0;
   static int cont= 0;
   bool enviar, enviado= _No;
   enviar= velaAvisoPrev!=velaAvisoAct || (cont>0 && cont<=nAvisos);     //si no se ha avisado tres veces en esta vela
   if(enviar)
   {
      velaAvisoPrev= velaAvisoAct;
      cont++;
      Alert(mens);
      PlaySound("news.wav");
      if(avisoTipo==eMail) enviado= SendMail(mens,"");
      if(avisoTipo==SMS) enviado= SendNotification(mens);
      if(avisoTipo==allW)
      {
         enviado= SendMail(mens,"");
         enviado= enviado && SendNotification(mens);
      }
   }
   if(cont==nAvisos) cont= 0;
   return(enviado);
}
Daiana1982
21
Daiana1982  
josemiguel1812:

Puedes incorporar esta función al código...

Hola Jose Miguel,muchas gracias por ayudarme.Pero cuando pego el codigo que me diste,en el metatraders no me registra el indicador,nose si lo escribi en un lugar donde no va o tengo que modificarle algo.Te adjunto el archivo con la codificacion.Aca abajo pongo como lo puse(parte en rojo) :

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

//|                                               zigzag-pointer.mq4 |

//|                                    zigzag modified by Dr. Gaines |

//|                                      dr_richard_gaines@yahoo.com |

//|                                        http://www.metaquotes.net |

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

#property copyright "dr_richard_gaines"

#property link      "http://www.metaquotes.net/"


#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_width1 5

#property indicator_color2 Lime

#property indicator_width2 5

//---- indicator parameters

extern int ExtDepth=115;//105;//21;

extern int ExtDeviation=130;//120;//24;

extern int ExtBackstep=80;//70;//14;

//---- indicator buffers

double ZigZagUp[];

double ZigZagDown[];


 //+-------------------------------------- FUNCION AVISO-ALERTA-----------------------------+

bool enviaAlerta(mis_TIPO-AVISOS avisoTipo, string mens, int velaAvisoAct= 1, int nAvisos = 2)

{               //enum mis-TIPO-avisos {NOW, EmAIL, sms, allW};

   static int velaAvisoPrev = 0;

   static int cont= 0;

   boll enviarm enviado= _No;

   enviar= velaAvisoPrev!=velaAvisoAct || (cont>0 && cont<=nAvisos);    // si no se ha avisado tres veces en esta vela

   if(enviar)

   {

     velaAvisoPrev = velaAvisoAct;

     cont++;

     Alert(mens);

     PlaySound("news.wav");

     if(avisoTipo==eMail) enviado= SendMail(mens,"");

     if(avisoTipo==SMS) enviado= SendNotification(men);

     if(avisoTipo==allW)

      {

        enviado=SenMail(mens,"");

        enviado= enviado && SenNotification(mens);

        }

      }

      if(cont==nAvisos) cont= 0;

      return(enviado);

   }

   

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

//| Custom indicator initialization function                         |

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

int init()

  {

   IndicatorBuffers(2);

//---- drawing settings

   SetIndexStyle(0,DRAW_ARROW);

   SetIndexArrow(0, 233);

   SetIndexStyle(1,DRAW_ARROW);

   SetIndexArrow(1, 234);

//---- indicator buffers mapping

   SetIndexBuffer(0,ZigZagUp);

   SetIndexBuffer(1,ZigZagDown);

   SetIndexEmptyValue(0,0.0);

   SetIndexEmptyValue(1,0.0);     

//---- indicator short name

   IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");

//---- initialization done

   return(0);

  }

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

//|                                                                  |

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

int start()

  {

   int    shift, back,lasthighpos,lastlowpos;

   double val,res;

   double curlow,curhigh,lasthigh,lastlow;


   for(shift=Bars-ExtDepth; shift>=0; shift--)

     {

      val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];

      if(val==lastlow) val=0.0;

      else 

        { 

         lastlow=val; 

         if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;

         else

           {

            for(back=1; back<=ExtBackstep; back++)

              {

               res=ZigZagUp[shift+back];

               if((res!=0)&&(res>val)) { ZigZagUp[shift+back]=0.0; } 

              }

           }

        } 

      ZigZagUp[shift]=val;

      //--- high

      val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];

      if(val==lasthigh) val=0.0;

      else 

        {

         lasthigh=val;

         if((val-High[shift])>(ExtDeviation*Point)) val=0.0;

         else

           {

            for(back=1; back<=ExtBackstep; back++)

              {

               res=ZigZagDown[shift+back];

               if((res!=0)&&(res<val)){ ZigZagDown[shift+back]=0.0; } 

              } 

           }

        }

      ZigZagDown[shift]=val;

     }


   // final cutting 

   lasthigh=-1; lasthighpos=-1;

   lastlow=-1;  lastlowpos=-1;


   for(shift=Bars-ExtDepth; shift>=0; shift--)

     {

      curlow=ZigZagUp[shift];

      curhigh=ZigZagDown[shift];

      if((curlow==0)&&(curhigh==0)) continue;

      //---

      if(curhigh!=0)

        {

         if(lasthigh>0) 

           {

            if(lasthigh<curhigh)

             {

              ZigZagDown[lasthighpos]=0;

             }

            else ZigZagDown[shift]=0;

           }

         //---

         if(lasthigh<curhigh || lasthigh<0)

           {

            lasthigh=curhigh;

            lasthighpos=shift;

           }

         lastlow=-1;

        }

      //----

      if(curlow!=0)

        {

         if(lastlow>0)

           {

            if(lastlow>curlow)

             {

              ZigZagUp[lastlowpos]=0;

            }

            else ZigZagUp[shift]=0;

           }

         //---

         if((curlow<lastlow)||(lastlow<0))

           {

            lastlow=curlow;

            lastlowpos=shift;

           } 

         lasthigh=-1;

        }

     }

  

   for(shift=Bars-1; shift>=0; shift--)

     {

      if(shift>=Bars-ExtDepth) ZigZagUp[shift]=0.0;

      else

        {

         res=ZigZagDown[shift];

         if(res!=0.0) ZigZagDown[shift]=res;

        }

     }

  }

   //end//

MetaTrader 4 Trading Platform / MetaQuotes Software Corp.
  • www.metaquotes.net
MetaTrader 4 is a free-of-charge program specially designed for online trading in the Forex market. The built-in technical indicators allow you to analyze securities' quotes, whilst the MQL4 network enables the development and usage of automated trading strategies.
Archivos adjuntos:
Para añadir comentario, por favor Autorícese o regístrese