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.
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.
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 takeProfit, stopLoss a 20 pips y lotSize a 0,1.
Vamos a empaquetarlo todo en una simple regla de trading que abrirá 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ú.
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:
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.
Trading smart means making the most of your time and resources, especially when comparing your current trading results with historical data. That’s where Quant Analyzer steps in, offering a streamlined …
We’d like to announce the release of the new SX 139 Dev 1 version – note that this is a development version for testing, not the final 139 version. Most …
Dive into Algorithmic Trading Without the Coding Headache! Are you intrigued by algorithmic trading but dread the thought of coding? Today marks the beginning of our exciting series that’s about …