![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
He descargado un indicador, que muestra la flecha verde/roja cuando la señal de compra/venta viene.
ahora quiero programar mi propio EA basado en este indicador.
pero solo tengo el archivo ex4 de este indicador(sin código fuente)
Quiero que mi EA lea la flecha del indicador en el gráfico principal y envíe la orden de compra/venta (flecha verde==>compra, flecha roja==>venta)
¿hay algún método para obtener la información de la flecha del indicador en el gráfico principal?
graciasUna flecha puede ser dibujada como un valor de uno de los buffers del indicador; en este caso, el color en las propiedades del indicador debería darle el número del buffer, lo cual es suficiente para llamarlo por la función "ICustom()"; También necesita llenar todos los valores de la pestaña "Input" como parámetros de la llamada ICustom().
Si la flecha no es un valor de un buffer, es un objeto. Selecciónelo para ver sus propiedades. La mayoría de las veces, es fácil entender cómo se generan los nombres y entonces será posible utilizar ObjectFind().
El EA debe observar ObjectsTotal(), y sólo cuando se incremente puede intentar reconocer el último objeto. Si el nombre es desconocido, el EA no puede utilizar OjectFind() y tiene que escanear todos los objetos para identificar el último. El último objeto no es obviamente el que tiene el índice más alto (ObjectsTotal() - 1), pero es mejor empezar a escanear desde el índice más alto ya que probablemente pueda romper más rápido. Ahora tienes que comparar el OBJPROP_TIME1 obtenido por ObjectGet() con Time[0] o Time[1] por ejemplo, y comprobar el color o el tipo de flecha, o una subcadena del nombre, para identificar una señal de compra o de venta.
Parece complejo pero no lo es. Intenta escribirlo y no dudes en pedir más precisiones si es necesario.
La respuesta anterior estaba incompleta.
Si el indicador es estándar en MT4, se mostrará en el lugar normal. Si es llamado por iCustom, también se mostrará, si está bien codificado.
Los siguientes EAs incluso hacen que los indicadores se muestren en la ventana del gráfico. Estúdielos para aprender cómo:
bouncingPipEA_mpowerV42.mq4
bouncingPipEA_BigBear_v23.mq4
Big BeGracias Big Be, los revisaré.![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
Una flecha se puede dibujar como un valor de uno de los buffers del indicador; en este caso, el color en las propiedades del indicador debería darte el número del buffer, que es suficiente para llamarlo por la función "ICustom()"; También necesitas llenar todos los valores de la pestaña "Input" como parámetros de la llamada ICustom().
Si la flecha no es un valor de un buffer, es un objeto. Selecciónelo para ver sus propiedades. La mayoría de las veces, es fácil entender cómo se generan los nombres y entonces será posible utilizar ObjectFind().
El EA debe observar ObjectsTotal(), y sólo cuando se incremente puede intentar reconocer el último objeto. Si el nombre es desconocido, el EA no puede usar OjectFind() y tiene que escanear todos los objetos para identificar el último. El último objeto no es obviamente el que tiene el índice más alto (ObjectsTotal() - 1), pero es mejor empezar a escanear desde el índice más alto ya que probablemente pueda romper más rápido. Ahora tienes que comparar el OBJPROP_TIME1 obtenido por ObjectGet() con Time[0] o Time[1] por ejemplo, y comprobar el color o el tipo de flecha, o una subcadena del nombre, para identificar una señal de compra o de venta.
Parece complejo pero no lo es. Intenta escribirlo y no dudes en pedir más precisiones si las necesitas.Gran explicación Michel ... ¡100% más completa que la mía !
Gracias para quien esté interesado.
FerruFx
cambiar ind en un EA
Me gustaría cambiar el indicador en un EA que tengo, pero no sé cómo hacerlo
no soy un programador de hecho no mucho sobre este tipo de cosas, a continuación es la única parte que se refiere al indicador quiero cambiar el DiMA a MFA(14)
quiero comprar @ >60 y vender@<40
double diClose0=iClose(NULL,5,0);
double diMA1=iMA(NULL,5,7,0,MODE_SMA,PRICE_OPEN,0);
double diClose2=iClose(NULL,5,0);
double diMA3=iMA(NULL,5,6,0,MODE_SMA,PRICE_OPEN,0);
if(AccountFreeMargin()<(1000*Lots)){
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());
return(0);
}
if (!ExistPositions()){
if ((diClose0<diMA1)){
AbrirCompra();
return(0);
}
if ((diClose2>diMA3)){
AbrirVender();
return(0);
}
}
¿alguien podría ayudarme?
denis
Por favor, publica tu indicador MFA. Necesito ver los buffers. ¿Bajo qué lógica querrá cambiar los indicadores?
Dave
hola dave no puedo publicar el indicador MFI no esta en la carpeta de indicadores puedes obtener el indicador desde la barra de herramientas bajo volúmenes, no se a que te refieres con bajo que lógica.
denis
hola dave no puedo publicar el indicador MFI no está en la carpeta de indicadores se puede obtener el indicador de la barra de herramientas en los volúmenes, no sé lo que quiere decir bajo qué lógica. denis
¿Éste? Índice de Facilitación del Mercado
hola linuxer no creo que sea ese pero gracias de todas formas, el que tengo se llama money flow index.
denis
hola linuxer no creo que sea ese pero gracias de todas formas, el que tengo se llama money flow index. denis
Lo siento, he escrito mal el nombre, es ese.
Money Flow Index.mq4 aka MFI.mq4