Trading Sistemático

Optimización de EA: MA en Momentum con Beneficio Mínimo
MetaTrader5
Optimización de EA: MA en Momentum con Beneficio Mínimo

La idea de un asesor experto Este EA opera con las señales del indicador personalizado 'MA en Momentum'. La señal se genera al intersectar dos líneas del indicador. Para abrir una posición de 'COMPRA', la intersección debe ocurrir por debajo del nivel '100', mientras que para abrir una posición de 'VENTA', la intersección debe estar por encima de dicho nivel. ATENCIÓN: 'Take Profit' en Puntos (1.00055-1.00045=10 puntos), 'Stop Loss' en dinero La posición se puede cerrar al alcanzar el nivel de 'Take Profit' (establecido en puntos) o al llegar al nivel de 'Stop Loss' (definido en dinero). No hay trailing en este EA. Cómo optimizar un Asesor Experto Para una optimización inicial, te recomiendo utilizar los siguientes parámetros: Fig. 1. MA en Momentum Beneficio Mínimo Peculiaridades: El EA puede optimizarse para el marco temporal de trabajo ('Marco temporal de trabajo') Solo puede haber un 'ingreso al mercado' por barra (este es un parámetro interno, no está incluido en los parámetros de entrada y no tiene relación con el parámetro 'Solo una posición') Al trabajar en modo 'inside bar' (parámetro 'Buscar señales en ...' igual a 'bar #0 (en cada tick)') la barra actual es la barra #0; en el modo 'solo al momento de nacer una nueva barra' (parámetro 'Buscar señales en ...' igual a 'bar #1 (en una nueva barra)') la barra actual es la barra #1 Ahora hablemos más sobre cada grupo de parámetros: Ajustes de trading: 'Marco temporal de trabajo' - este es el marco temporal en el que se crean los indicadores y se busca una nueva barra. El Stop Loss, el Take Profit y el Trailing se establecen en Puntos. Cualquiera de los parámetros ('Stop Loss', 'Take Profit', 'Trailing Stop') puede desactivarse, para ello, establece el parámetro seleccionado a '0.0'. Cómo funciona el trailing se muestra en las imágenes en el código de TrailingStop. Gestión del tamaño de posición (cálculo de lotes) El lote puede ser permanente ('Gestión de dinero' configurado a 'Lote constante' y establecer el tamaño del lote a 'El valor para "Gestión de dinero"') o dinámico - en porcentaje de riesgo por operación ('Gestión de dinero' configurado a 'Riesgo en porcentaje por operación' y establecer el porcentaje de riesgo en 'El valor para "Gestión de dinero"'). También puedes establecer un lote constante igual al lote mínimo - 'Gestión de dinero' configurado a 'Lotes Mínimos'. Características adicionales: La bandera 'Posiciones: Solo una' configurada a 'true' permite que el EA no tenga más de una posición en el mercado. ADVERTENCIA: 'Posiciones: Solo una' configurado a 'true' no anula 'Posiciones: Cerrar opuestas' configurado a 'true! La bandera 'Posiciones: Invertir' es responsable de la inversión de señales. Y una característica interesante es 'Posiciones: Cerrar opuestas' - cuando se configura a 'true', antes de abrir una posición, garantiza la eliminación de posiciones opuestas. La opción 'Imprimir log' genera un registro extendido de todas las operaciones. El parámetro 'Coeficiente de niveles de congelación y StopLevels' establece el coeficiente para los niveles de stop y congelación cuando estos niveles para un símbolo son iguales a cero. Se recomienda un valor de '3'.

2022.04.28
Cómo Detectar el Inicio de una Nueva Barra en MetaTrader 4: Guía Práctica
MetaTrader4
Cómo Detectar el Inicio de una Nueva Barra en MetaTrader 4: Guía Práctica

Cuando trabajamos con un Asesor Experto (AE) en nuestra plataforma de MetaTrader, es fundamental saber cuándo comienza una nueva barra. A diferencia de los ticks que llegan constantemente, no existe una función predeterminada para manejar el inicio de una nueva barra (o vela). Para detectar cuándo se abre una nueva barra, debemos estar atentos al tiempo de apertura de la barra más reciente. Cuando este tiempo cambia, significa que hemos tenido el inicio de una nueva barra y podemos reaccionar a ello. A continuación, te comparto un código de ejemplo que es compatible tanto con MQL4 como con MQL5, que muestra cómo lograr esto: // Manejador de eventos de tick predeterminado    void OnTick()    {       // Verificamos si hay una nueva barra (compatible con MQL4 y MQL5).          static datetime dtBarActual  = WRONG_VALUE;                 datetime dtBarAnterior = dtBarActual;                          dtBarActual  = iTime( _Symbol, _Period, 0 );                 bool     bNuevoEventoBarra  = ( dtBarActual != dtBarAnterior );       // Reaccionamos ante el evento de nueva barra y lo manejamos.          if( bNuevoEventoBarra )          {             // Detectamos si es el primer tick recibido y lo manejamos.                /* Por ejemplo, cuando se adjunta por primera vez a un gráfico y                   la barra está en medio de su progreso y                   no es realmente el inicio de una nueva barra. */                if( dtBarAnterior == WRONG_VALUE )                {                   // Hacemos algo en el primer tick o en medio de la barra ...                }                else                {                   // Hacemos algo cuando comienza una barra normal ...                };             // Hacemos algo independientemente de la condición anterior ...          }          else          {             // Hacemos algo más ...          };       // Hacemos otras cosas ...    }; En el código anterior, la variable estática mantiene un seguimiento del tiempo de apertura de la barra, incluso al regresar de la función OnTick(). A diferencia de una variable local normal, esta memoriza su contenido y no se libera al salir de la función. Esta es la clave para detectar un cambio en el tiempo de apertura de la barra actual. Es importante mencionar que cuando el AE se coloca por primera vez en un gráfico, el código anterior reacciona como si la barra acabara de abrirse. Esta condición requiere un manejo especial si se necesita tratar la situación de manera diferente. Recuerda que todo el código fuente de mis publicaciones en CodeBase también está disponible en la pestaña de "Proyectos Públicos" del MetaEditor bajo el nombre "FMIC".

2022.04.24
Cómo Detectar el Inicio de una Nueva Barra en MetaTrader 5
MetaTrader5
Cómo Detectar el Inicio de una Nueva Barra en MetaTrader 5

Para un Asesor Experto (EA), cuando llega una nueva cotización, el terminal de MetaTrader invoca la función de manejo de eventos OnTick(). Sin embargo, no existe una función predeterminada para manejar el inicio o la apertura de una nueva barra. Para detectar esto, es necesario monitorear el tiempo de apertura de la barra más reciente. Una vez que cambia, significa que se ha iniciado una nueva barra, y se puede reaccionar y manejar el evento. A continuación, te muestro un código de ejemplo, compatible tanto con MQL4 como con MQL5, que ilustra cómo se puede lograr esto: // Manejador de eventos de tick por defecto    void OnTick()    {       // Verifica si hay una nueva barra (compatible con MQL4 y MQL5).          static datetime dtBarActual  = WRONG_VALUE;                 datetime dtBarAnterior = dtBarActual;                          dtBarActual  = iTime( _Symbol, _Period, 0 );                 bool     bNuevoEventoBarra  = ( dtBarActual != dtBarAnterior );       // Reacciona a un nuevo evento de barra y maneja la situación.          if( bNuevoEventoBarra )          {             // Detecta si este es el primer tick recibido y manéjalo.                /* Por ejemplo, cuando se adjunta por primera vez a un gráfico y                   la barra está en medio de su progreso y                   no es realmente el inicio de una nueva barra. */                if( dtBarAnterior == WRONG_VALUE )                {                   // Haz algo en el primer tick o en medio de la barra ...                }                else                {                   // Haz algo cuando comienza una barra normal ...                };             // Haz algo sin importar la condición anterior ...          }          else          {             // Haz algo diferente ...          };       // Haz otras cosas ...    }; En el código anterior, la variable estática mantiene un registro del tiempo de apertura de la barra, incluso al regresar de la función OnTick(). A diferencia de una variable local normal, memoriza su contenido de datos y no se libera al salir de la función. Este es el truco para detectar un cambio en el tiempo de apertura de la barra actual. También es importante notar que cuando se coloca el EA por primera vez en un gráfico, el código anterior reacciona como si la barra acabara de abrirse. Esta condición requiere un manejo especial si la situación necesita ser tratada de manera diferente.Recuerda que todo mi código publicado en CodeBase ahora también está disponible en la pestaña "Proyectos Públicos" de MetaEditor bajo el nombre "FMIC".

2022.04.24
Estrategia de Trading con DeMarker: Abriendo Posiciones en MetaTrader 5
MetaTrader5
Estrategia de Trading con DeMarker: Abriendo Posiciones en MetaTrader 5

Estrategia de Trading La idea principal de este Sistema de Trading es abrir posiciones de 'COMPRA' en cada nueva barra, siempre que el indicador 'DeMarker' esté por debajo del nivel 'DeM: Level DOWN'. Del mismo modo, se abrirán posiciones de 'VENTA' cuando el indicador 'DeMarker' esté por encima del nivel 'DeM: Level UP'. De forma predeterminada, el parámetro 'Posiciones: Solo una' está configurado en 'falso', lo que permite al EA operar en modo de "abrir una nueva posición incluso si ya hay posiciones en el mercado". Cada nueva posición se abre en el momento en que aparece una nueva barra, y no se verifica si el precio de apertura es el más favorable. Este Sistema de Trading no tiene Stop Loss, Take Profit o Trailing; las posiciones se cierran según la señal opuesta y solo si, tras el cierre, hay un beneficio mayor a cero. Fig. 1. DeMarker ganando volumen de posiciones Ejemplo de pruebas para todos los símbolos Fig. 2. Configuraciones Fig. 3. Entradas Fig. 4. Resultado A continuación, te explico más sobre cada grupo de parámetros: Configuraciones de Trading: 'Marco temporal de trabajo' - marco temporal en el que se crean los indicadores y se busca una nueva barra. Gestión del tamaño de posiciones (cálculo de lotes) El lote puede ser permanente ('Gestión de dinero' configurado en 'Lote constante' y establecer el tamaño del lote en 'El valor para "Gestión de dinero"') o dinámico, en porcentaje de riesgo por operación ('Gestión de dinero' configurado en 'Riesgo en porcentaje por operación' y establecer el porcentaje de riesgo en 'El valor para "Gestión de dinero"'). También puedes establecer un lote constante igual al lote mínimo - 'Gestión de dinero' configurado en 'Lotes Mín.'. Características adicionales: La opción 'Posiciones: Solo una' configurada en 'true' permite que el EA tenga como máximo una posición en el mercado. La opción 'Posiciones: Inversas' es responsable de la inversión de la señal. La opción 'Imprimir registro' imprime un registro detallado de todas las operaciones.

2022.04.21
PriceChannel_Signal_v2 EA: Estrategia de Trading para MetaTrader 5
MetaTrader5
PriceChannel_Signal_v2 EA: Estrategia de Trading para MetaTrader 5

Estrategia de Trading El indicador personalizado 'PriceChannel_Signal_v2' (lo descargué aquí) genera varias señales: dos tipos para abrir una posición de 'COMPRA', dos tipos para abrir una posición de 'VENTA', una señal para cerrar 'COMPRA' y otra para cerrar 'VENTA'. No cuenta con Stop Loss, Take Profit ni Trailing. Ejemplo de apertura de una posición: Imagen 1. PriceChannel_Signal_v2 EA Peculiaridades: El EA se puede optimizar para el marco temporal de operación ('Marco temporal de trabajo') Solo puede haber una operación de 'entrada al mercado' por barra Al trabajar en modo 'inside bar' (parámetro 'Buscar señales en ...' igual a 'barra #0 (en cada tick)'), la barra actual es la barra #0. Al trabajar en el modo 'solo en el momento de la aparición de una nueva barra' (parámetro 'Buscar señales en ...' igual a 'barra #1 (en una nueva barra)'), la barra actual es la barra #1. Ahora, más sobre cada grupo de parámetros: Ajustes de Trading: 'Marco temporal de trabajo' - es el marco temporal en el que se crean los indicadores y se busca una nueva barra. Gestión del tamaño de la posición (cálculo de lotes) El lote puede ser permanente ('Gestión del dinero' configurado en 'Lote constante' y establecer el tamaño del lote en 'El valor para "Gestión del dinero"') o dinámico, en porcentaje de riesgo por operación ('Gestión del dinero' configurado en 'Riesgo en porcentaje por operación' y establecer el porcentaje de riesgo en 'El valor para "Gestión del dinero"'). También puedes establecer un lote constante igual al lote mínimo: 'Gestión del dinero' configurado en 'Lotes Mínimos'. Funciones adicionales: La opción 'Posiciones: Solo una' configurada en 'true' permite que el EA tenga como máximo una posición en el mercado. La opción 'Imprimir log' imprime un registro extendido de todas las operaciones. 

2022.04.16
CHO Smoothed EA: Estrategia de Trading para MetaTrader 5
MetaTrader5
CHO Smoothed EA: Estrategia de Trading para MetaTrader 5

Estrategia de tradingEl CHO Smoothed EA utiliza un indicador personalizado llamado 'CHO Smoothed'. Este indicador se basa en dos líneas: la línea iCHO (Chaikin Oscillator, CHO) y la línea iCHO suavizada mediante una Media Móvil. El indicador se crea en el marco de tiempo especificado como 'Marco de tiempo de trabajo', que es el mismo que se utiliza para determinar el momento de la aparición de una nueva barra (importante para los parámetros 'Trailing en ...' y 'Búsqueda de señales en ...'). Puedes ajustar los parámetros para que sean más estrictos, configurando el parámetro 'Usar Nivel Cero' a 'verdadero'.Señales de trading:La señal se produce cuando las dos líneas del indicador se cruzan. Si se establece en modo estricto (es decir, el parámetro 'Usar Nivel Cero' está configurado a 'verdadero'), las señales de apertura 'COMPRA' solo se generarán por debajo de cero, y las señales de apertura 'VENTA' solo por encima de cero.Fig. 1. CHO Smoothed EAParticularidades:El EA puede ser optimizado para el marco de tiempo de trabajo ('Marco de tiempo de trabajo').Solo puede haber una operación de 'entrada al mercado' por barra (esto es un parámetro interno y no está incluido en los parámetros de entrada, no tiene relación con el parámetro 'Solo una posición').Al trabajar en modo 'inside bar' (el parámetro 'Búsqueda de señales en ...' se establece en 'barra #0 (en cada tick)'), la barra actual es la barra #0; si trabajas en el modo 'solo en el momento de la aparición de una nueva barra' (el parámetro 'Búsqueda de señales en ...' se establece en 'barra #1 (en una nueva barra)'), la barra actual será la barra #1.El parámetro 'Modo de trading:' define la dirección en la que se puede operar. Puede tener los valores 'Solo posiciones de COMPRA permitidas', 'Solo posiciones de VENTA permitidas' y 'Posiciones de COMPRA y VENTA permitidas'.El parámetro 'Usar control de tiempo' establece el intervalo de tiempo para la búsqueda de señales de trading desde 'Hora de inicio':'Minuto de inicio' hasta 'Hora de fin':'Minuto de fin'. El rango de tiempo puede configurarse tanto dentro del día como cruzándolo.Ahora hablemos más sobre cada grupo de parámetros:Ajustes de trading:'Marco de tiempo de trabajo' - es el marco de tiempo en el que se crean los indicadores y se busca una nueva barra. El Stop Loss, Take Profit y Trailing se establecen en Puntos. Cualquiera de los parámetros ('Stop Loss', 'Take Profit', 'Trailing Stop') puede ser desactivado configurándolo en '0.0'. El funcionamiento del trailing se muestra en las imágenes en el código de TrailingStop.Gestión del tamaño de la posición (cálculo de lotes)El lote puede ser permanente ('Gestión de dinero' configurado en 'Lote constante' y el tamaño del lote establecido en 'El valor para la

2022.04.13
Verifica el Tiempo de Operación: Herramienta Esencial para MetaTrader 4
MetaTrader4
Verifica el Tiempo de Operación: Herramienta Esencial para MetaTrader 4

En el mundo del trading, saber cuándo abrir o cerrar una operación puede marcar la diferencia entre una buena ganancia y una pérdida significativa. Por eso, hoy te traigo una función muy útil para MetaTrader 4 que te ayudará a gestionar tus tiempos de operación de manera más eficiente. Este código es una función sencilla que te permite verificar si el tiempo actual se encuentra dentro de dos horarios específicos. ¿Por qué es importante esto? Muchas veces, los Asesores Expertos (o EAs) necesitan entrar en el mercado solo en ciertos momentos del día. Esto puede ser crucial dependiendo de la estrategia que estés utilizando. La función toma dos entradas: el horario de inicio y el horario de finalización. Luego, revisa si la hora actual está entre esos dos puntos y devuelve el resultado correspondiente. ¿Cómo funciona el código?El código es bastante intuitivo y fácil de implementar. A continuación, te dejo un ejemplo de cómo puedes usarlo:Entrada 1: Hora de inicio (por ejemplo, 09:00)Entrada 2: Hora de finalización (por ejemplo, 17:00)Resultado: Devuelve verdadero o falso según si el tiempo actual está dentro de ese rango. Implementar este tipo de funciones en tu MetaTrader 4 puede ayudarte a optimizar tus operaciones y aprovechar mejor las oportunidades del mercado. ¡No dudes en experimentar y ajustar los horarios según tus necesidades!

2021.12.17
Primero Anterior 8 9 10 11 12 13 14 15 16 17 18 Siguiente Último