Cómo utilizar códigos MQL4 personalizados en el Asistente de EA

EA Wizard contiene un montón de funciones útiles que se pueden utilizar fácilmente y le permite construir rápidamente su propio asesor experto. Si necesita una función que no está presente no está atascado. En tal caso, puede utilizar la función personalizada del Asistente de EA.

El uso de esta función requiere que usted es capaz de entender las líneas de código simple de código MQL4. Si usted no está familiarizado con cualquier lenguaje de programación todavía debe ser capaz de completar solución simple como mostramos en este tutorial.

En este tutorial le mostraremos cómo calcular de forma sencilla el número de barras que cerraron por encima de un indicador de media móvil para un número determinado de barras hacia atrás. Este proceso requiere un bucle que va hacia atrás y comprueba cada barra usando una simple comparación del precio de cierre de una barra y el valor de la media móvil.

Esta función puede ser muy útil cuando queremos evaluar una tendencia en el mercado. Si todas las barras evaluadas en un periodo determinado cierran por encima del valor de la media móvil, podemos considerar que el mercado se encuentra en una tendencia alcista. Lo contrario ocurrirá con una tendencia bajista.

Bien, empecemos con la función personalizada en sí.

Creación de funciones MQL4 personalizadas en el Asistente de EA

Todas las funciones personalizadas que desee utilizar en sus proyectos del Asistente de EA deben colocarse en el archivo CustomFunctions.mq4 ubicado en la carpeta de instalación del Asistente de EA bajo la carpeta de código.

Una vez que instale su copia de MetaTrader4 en su ordenador, podrá editar este archivo utilizando la herramienta MetaEditor.

Abra el archivo CustomFunctions.mq4

Para contar las barras que cerraron por encima del indicador de media móvil utilizaremos esta sencilla función personalizada:

int getBarCloseAboveAverage(int barsPeriod, int maPeriod) {


int contador = 0;


for (int i = 1; i <= PeriodoBarra; i++) {


if (Close[i] > iMA(NULL, 0, maPeriod, 0, MODE_EMA, PRICE_CLOSE, i))


contra++;


}


contador de devoluciones; }

Repasemos cada línea y expliquemos con más detalle lo que representa cada una de ellas.

int getBarCloseAboveAverage(int barsPeriod, int maPeriod) { - esta línea define nuestra función personalizada. El tipo de retorno se establece en "int", lo que significa que la función devolverá un número entero, es decir, el número de barras que cerraron por encima de nuestra media móvil. La función también contiene dos parámetros - barsPeriod que es un número entero que representa el número de barras que comparamos con la media móvil y maPeríodo que representa un período que se utilizará como longitud móvil. El nombre de estas variables son importantes sólo dentro de la propia función. Dentro del Asistente de EA podemos utilizar diferentes nombres para los valores de entrada como se verá más adelante.

int contador = 0; - esta línea define un contador. Almacenará la suma de las barras que cumplan nuestros criterios, es decir, las barras que cerraron por encima de la línea de la media móvil.

for (int i = 1; i <= PeriodoBarra; i++) { - esta línea inicia el bucle. La variable "i" representa el índice de la barra que estamos evaluando. Comenzamos con la barra #1 y continuamos sobre cada barra hasta que todas las barras (barsPeriod) son comprobadas. Cada vez también incrementamos el valor de "i" en 1 (nos movemos a la barra anterior)

if (Close[i] > iMA(NULL, 0, maPeriod, 0, MODE_EMA, PRICE_CLOSE, i)) - esta condición comprueba si una barra cierra por encima del valor de la media móvil. Observe la variable "i" que utilizamos para referenciar cada barra a medida que el bucle avanza sobre todas las barras. También usamos la media móvil exponencial (MODE_EMA) como se especifica en la ayuda de MQL4 https://docs.mql4.com/indicators/ima

Aunque esto pueda parecerte demasiado complejo, es bastante intuitivo sobre todo si el MetaEditor también te ayuda a completar el código. Ver la captura de pantalla.

Una vez completada la función podemos guardar nuestro trabajo, abrir el Asistente de EA y utilizar la función creada en nuestro nuevo asesor experto.

Uso de funciones personalizadas en el Asistente de EA

Ahora vamos a crear un simple asesor experto que utilizará la función creada. El primer paso será definir variables y entradas. Ver captura de pantalla adjunta.

Definición de entradas para el asesor experto

averagePeriod - esta variable de entrada representa el periodo de la media móvil. Por defecto se fija en 34

barsTrendPeriod - esta variable de entrada representa la cantidad total de barras que contamos. Por defecto se establece en 20

minBarsUptrend - esta variable de entrada representa las barras mínimas que necesitamos que estén por encima de la media móvil. Por defecto se fija en 15

También fijamos takeProfitstopLoss a 20 pips y lotSize a 0,1.

Vamos a empaquetarlo todo en una simple regla de trading que abrirá una posición larga.

Reglas para una posición larga

Además de nuestra función personalizada, la condición larga también incluye una comprobación de si no tenemos una posición en el mercado. A menos que tengamos una podemos abrir una nueva posición. También nos aseguramos de que la regla se evalúa sólo cuando se cierra una barra (no en cada tick) utilizando la función Is Bar Open is True función.

Así es como configuramos la función personalizada e incluimos variables definidas en el Asistente de EA utilizando Función personalizada que se encuentra en la opción Funciones menú.

Función Personalizada : getBarCloseAboveAverage(barsTrendPeriod, averagePeriod)

En este momento nuestro asesor experto está listo para usar. El último paso que tenemos que hacer es exportar el código en MetaTrader 4. He aquí cómo hacerlo:

Exportar el código de la estrategia

Ahora puede probar el asesor experto en MetaTrader y gracias a las entradas definidas el asesor experto también está listo para un proceso de optimización. Usted puede tratar de encontrar los mejores ajustes para los valores de entrada o añadir reglas y filtros adicionales para las señales de trading.

Puede descargar el proyecto del Asistente EA aquí: Cierre de barras por encima de EMA.sqw

Suscríbase a
Notificar a
0 Comentarios
Feedbacks de Inline
Ver todos los comentarios

Seguir leyendo