Alerta en el indicador. ¿Cómo insertar una alerta y una flecha en el indicador?

Trabajar con Telegram en MetaTrader. Canales de Telegram y bot
Mis secretos de Autolot. Lote Dinámico o Autolot.
Trabajar con Telegram en MetaTrader. Canales de Telegram y bot
Mis secretos de Autolot. Lote Dinámico o Autolot.

Descripción

Alerta: Las consultas más frecuentes en los motores de búsqueda y los temas populares en los foros a menudo incluyen las siguientes frases.

Una alerta sobre tales temas puede ayudarte a mantenerte actualizado con las últimas tendencias.

  • Indicador de alerta
  • ¿Cómo añades una señal sonora al indicador?
  • Ayúdame a insertar una señal sonora en el indicador
  • Cómo insertar Alertas y Flechas
  • ¿Cómo enviar un mensaje al correo electrónico o al teléfono cuando la señal proviene de un indicador?

En este artículo, describiré en detalle una manera fácil de añadir notificaciones de Alerta, Correo, Push y Flecha a cualquier indicador utilizando código adicional disponible en Expforex.

  

Prólogo 

Para instalar correctamente las Alertas en tu indicador, debes tener el código fuente de tu indicador. 

El código descompilado no es deseable porque, para los principiantes, el código descompilado proporciona información mínima. Es difícil de entender. 

También puedes encontrar problemas con la compilación después de editar. 

xCustomEA

Si estás buscando una manera más fácil de automatizar tu estrategia de trading sin sumergirte en una programación personalizada compleja, considera xCustomEA.

Este asesor experto de Expforex está diseñado para funcionar sin problemas con indicadores que generan señales de flechas. Con xCustomEA, puedes automatizar fácilmente cualquier indicador que muestre flechas de compra o venta, permitiéndote crear una estrategia automatizada poderosa sin las complicaciones de desarrollar código personalizado.

xCustomEA hace que la automatización de estrategias basadas en señales de indicadores sea increíblemente accesible. Permite a los traders enfocarse en optimizar su trading en lugar de gastar tiempo y recursos en programación personalizada. Este asesor experto sirve como una excelente alternativa a contratar a un programador, proporcionando una solución directa para convertir señales de indicadores en operaciones.

Para más información, visita la página de xCustomEA o explora otros asesores expertos de Expforex.

Comienzo del Trabajo para insertar Alerta

   Primero, necesitas determinar qué buffers del indicador proporcionan señales específicas, el propósito de crear una alerta y las condiciones para determinar la señal en el indicador. 

Importante: Solo los buffers externos definidos al inicio del código de variables pueden ser mostrados en los indicadores: 

#property indicator_buffers 1

Sin embargo, el indicador también puede contener buffers ocultos, que se establecen en la función init() y se declaran como variables:

IndicatorBuffers(7): Solo necesitamos los primeros buffers. 

Si, por ejemplo, tienes 1 buffer externo, entonces mira la variable: 

SetIndexBuffer(0, SarBuffer);
  • 0 es el primer buffer
  • 1 es el segundo buffer

Estos buffers o sus nombres pueden ser identificados pasando el cursor sobre una línea específica del indicador en el gráfico.

Value1 – Este es el primer buffer o 0 en el sistema de indexación del código.  

SetIndexBuffer(0, SarBuffer); // El nombre del buffer que necesitamos  

Si este es SarBuffer, entonces lo utilizaremos.

Además, es una cuestión técnica determinar cómo se activará la señal;

Por ejemplo, si esta es la intersección de la línea 0 desde arriba (abajo) moviéndose hacia abajo (arriba), se verá así:

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

Indicador cruzando el precio actual o una barra, un rompimiento de barra por el indicador, y así sucesivamente:

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

Si esta es la intersección de niveles únicos, indicadores como estocásticos:

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;

SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

Si ya hay flechas en tu indicador, entonces el siguiente tipo de señal también es posible:

DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE

En cualquier caso, necesitas aplicar lógica y creatividad para registrar la señal correctamente. Si encuentras alguna dificultad, escribe en este hilo, adjunta el indicador, muestra las líneas en el gráfico y describe en detalle lo que no puedes hacer. Enviar un mensaje como “necesitas insertar una alerta en el indicador” sin explicar dónde y qué hacer, y sin proporcionar el propio indicador, no es útil. 

Código “Alertas y Flechas de www.expforex.com”

El siguiente paso para añadir nuestra alerta a tu indicador consta de varios puntos:

PASO 1

Inserta el siguiente código al inicio del Asesor Experto antes de la función OnCalculate ()  (start):

//+==+//+ www.expforex.com editar AlertaFlecha +//+==+
extern string Alerts="Alertas y flechas de www.expforex.com";
extern bool AlerT=true; // Emitir una alerta en la pantalla
extern bool Mail=true; // Enviar mensaje
extern bool Push=true; // Enviar PUSH al teléfono
extern bool Arrow=true; // Poner flechas en las señales
extern int shift=1; // En qué barra contar la señal 0 - en la actual, 1 - en la cerrada
int timeee;
// Variable interna
string nameInd;
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3)
{
  if(nm=="")
    nm=DoubleToStr(Time[0], 0);
  if(t1 <= 0)
    t1=Time[0];
  if(p1 <= 0)
    p1=Bid;
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  wind=0;
  if(ObjectFind(nm) < 0)
    ObjectCreate(nm, OBJ_ARROW, wind, 0, 0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_WIDTH, sz);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0)
{
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  if(wind==-1)
    wind=0;
  ObjectCreate("Originalalert", OBJ_LABEL, wind, 0, 0);
  ObjectSetText("Originalalert", "Modificación AlertaFlecha www.expforex.com", 10, "Arial Bold", Red);
  ObjectSet("Originalalert", OBJPROP_CORNER, 2);
  ObjectSet("Originalalert", OBJPROP_XDISTANCE, 200);
  ObjectSet("Originalalert", OBJPROP_YDISTANCE, 10);
  if(!history)
  {
    if(AlerT)
      Alert(text);
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]);
    if(!IsTesting())
      if(Mail)
        SendMail(text, text);
    if(!IsTesting())
      if(Push)
        SendNotification(text);
  }
  if(history)
  {
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]);
  }
}//+==+//+ www.expforex.com editar AlertaFlecha +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  for(int i=ObjectsTotal(); i>=0; i--)
  {
    if(StringFind(ObjectName(i), nameInd)!=-1)
      ObjectDelete(ObjectName(i));
  }
}
//+------------------------------------------------------------------+

PASO 2

 Antes de cerrar la función OnCalculate (), inserta el siguiente código:

return(rates_total); }

Pega el siguiente código:

//+==+//+ www.expforex.com editar AlertaFlecha +//+==+

nameInd=WindowExpertName();

if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP", 1);
  timeee=Time[0];
}
if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN", 2);
  timeee=Time[0];
}//+==+//+ www.expforex.com editar AlertaFlecha +//+==+

PASO 3

Este código servirá como nuestra señal.

Naturalmente, necesitas reemplazar parte del código con el tuyo propio. 

El siguiente código sirve como señal para una alerta:

1. Intersección de la línea 0 desde arriba (abajo) moviéndose hacia abajo (arriba), se verá así:

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

2. Indicador cruzando el precio actual o una barra, un rompimiento de barra por el indicador, y así sucesivamente:

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

3. Si esta es la intersección de niveles únicos, indicadores como estocásticos:

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;

SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

Después de Usar

Para añadir una señal sonora al indicador, sigue estos pasos:

  • 1. Abre la configuración del indicador.
  • 2. Busca la sección “Alerta” o “Flechas“.
  • 3. Selecciona la opción para añadir una alerta sonora.
  • 4. Elige el archivo de sonido que deseas usar como alerta.
  • 5. Guarda los cambios.

Al insertar una señal sonora en el indicador, puedes recibir una notificación audible cuando se cumplan ciertas condiciones, lo que puede ayudarte a tomar mejores decisiones de trading.

Si Necesitas Flechas en el Historial, Entonces Debes Hacer Esto:

Después del código anterior, añade lo siguiente:

//+==+//+ www.expforex.com editar AlertaFlecha +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
if(counted_bars > 0)
   counted_bars--;
int limit2 = Bars - counted_bars;
for(int i2 = 0; i2 < limit2; i2++) {
    nameInd = WindowExpertName();
    if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP" + i2, 1, true, i2);
    }
    if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN" + i2, 2, true, i2);
    }
}
//+==+//+ www.expforex.com editar AlertaFlecha +//+==+

Ejemplos

Estos ejemplos se toman de la sección correspondiente de nuestro foro. He modificado los indicadores según los principios descritos anteriormente. 

Conclusiones

En este artículo, expliqué el proceso de creación de señales para el indicador de la manera más detallada y comprensible posible.

El código anterior puede ser usado sin restricciones en cualquier indicador. Es importante no cambiar el nombre del autor al añadir el código al indicador. 

Si te gustó este artículo y encontraste útil este método de insertar señales, por favor deja tus comentarios y califica los temas. 

Barra de Señal: Esto Es Importante Saber

¿Preguntas?

Si tienes alguna pregunta, por favor hazla. No vendemos una moneda en el bolsillo.

Además, cada uno de nuestros productos puede ser probado antes de la compra.

Agradecemos tu interés y apoyo a nuestros productos y nos esforzamos por mantener altos estándares de calidad.

¡Gracias por estar con nosotros!

¿Tienes una pregunta?

Leave a Reply

Your email address will not be published. Required fields are marked *

This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어


    Por favor, espera, contactando con IA...

     

    Advertencia de riesgo:


    Los resultados comerciales pasados no garantizan resultados futuros.

    La negociación de divisas con margen conlleva un alto grado de riesgo y puede no ser adecuada para todos los inversores.

    Ten en cuenta que utilizar robots de negociación implica un riesgo considerable, y podrías perder más que tu inversión inicial.

    Por favor, procede con cautela, evalúa cuidadosamente tu situación financiera y considera la posibilidad de pedir consejo a un profesional cualificado.

    Descargo de responsabilidad

    Este sitio web utiliza cookies para mejorar su experiencia. Al usar este sitio web, usted acepta nuestra Política de Protección de Datos y Descargo de Responsabilidad.
    Leer más