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.
- Freelance: Programación personalizada en MetaTrader y MQL!
- Indicador de barra de señal. ¿De qué barra debes tomar una señal? Dibujando indicadores.
- CrossObjectALert Indicador de alerta al cruzar con objetos para terminales mt4 y mt5
- Trabajando con email y push en MetaTrader
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?
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
Leave a Reply