JKEFAdvancedModel
- Asesores Expertos
-
Shi Yuan Wang
Desarrollo indicadores personalizados, Asesores Expertos (EA), scripts y herramientas de trading para MetaTrader 4 y MetaTrader 5, así como indicadores para TradingView (Pine Script).
Lo que puedo hacer por ti: - Convertir una regla de trading claramente descrita en un EA MQL4/MQL5 con backtesting - Versión: 1.5
- Activaciones: 5
JKEFAdvancedModel — Sistema de negociación de ruptura de tendencias adaptado a la volatilidad
Descripción general
JKEFAdvancedModel es un asesor experto totalmente automatizado para MetaTrader 5. En el marco temporal seleccionado, se adapta a la volatilidad del mercado para seguir la tendencia y operar en las rupturas de tendencia.
El sistema evalúa únicamente el estado de las barras cerradas, por lo que las señales no se ven afectadas por las barras aún no cerradas. Una vez confirmada la dirección, el robot puede entrar con una orden de mercado o colocar una orden stop a una distancia definida del precio actual y esperar a la confirmación de la ruptura, ajustando esa orden pendiente mientras permanezca sin ejecutar. Solo se mantiene una posición por ciclo. No se añaden posiciones, no se realiza un promedio a la baja y no se aplica ninguna lógica de rejilla ni de martingala.
Lógica de negociación
Detección de estado. En primer lugar, se mide la volatilidad del precio: cuanto mayor es la volatilidad, más rápido sigue el precio la media móvil; cuanto más tranquilo está el mercado, más suave es la media. A continuación, la media se somete a un proceso de suavizado ponderado por el impulso para generar una línea de referencia de la tendencia. Se calcula un percentil de desviación reciente por encima y por debajo de la línea de referencia. Un cierre por encima del percentil de desviación superior establece el estado de posición larga, y un cierre por debajo del percentil de desviación inferior establece el estado de posición corta. Los estados solo se actualizan en las barras completadas. El marco temporal de la señal viene definido por InpTF y puede diferir del marco temporal del gráfico.
Primera entrada. Tras la carga o tras pulsar «Inicio», si el símbolo actual no tiene ninguna posición ni ninguna orden pendiente de este sistema, el robot lee la dirección actual de la señal. Cuando se define una dirección y está permitida, abre inmediatamente una posición en el mercado con el stop loss inicial asociado. Cuando la dirección es neutral, permanece a la espera hasta que aparezca una dirección definida.
Tras el cierre de una posición. Cuando una posición finaliza —por stop loss, por trailing stop o manualmente—, el robot registra la hora de cierre, espera el número de segundos configurado y, a continuación, coloca una orden stop en la dirección de la señal actual: un stop de compra para posiciones largas y un stop de venta para posiciones cortas, a la distancia configurada del precio de mercado actual.
Gestión de órdenes pendientes. Mientras una orden stop está en espera, el robot la compara continuamente con la señal actual:
- si la dirección de la señal cambia, la orden pendiente se elimina y se coloca una nueva en la dirección opuesta;
- si la dirección queda excluida por el filtro de dirección de la operación, la orden pendiente se elimina y el temporizador de espera se reinicia;
- si el precio se mueve en la dirección favorable, la orden pendiente lo sigue —una orden stop de compra se desplaza hacia abajo y una orden stop de venta se desplaza hacia arriba—, de modo que la orden sigue al mercado en lugar de permanecer fija.
Una orden pendiente ejecutada se convierte en una posición abierta.
Gestión de posiciones. Mientras una posición está abierta, se eliminan todas las órdenes pendientes no ejecutadas y se mantiene el stop loss según los parámetros del trailing stop: el trailing stop se activa una vez que las ganancias alcanzan la distancia de activación, mantiene la distancia configurada respecto al precio actual y se mueve únicamente en la dirección favorable.
Salida. No se utiliza un take profit fijo. Las salidas se producen mediante el stop loss inicial, mediante el trailing stop o mediante el botón «Cerrar todo» del panel.
Gestión de riesgos
- Tamaño de lote fijo con una posición por ciclo. Sin añadir posiciones, sin promediar ni recuperar mediante estrategias de cobertura.
- Cada entrada lleva asociado un stop loss inicial a la distancia configurada en puntos; un valor de cero significa que no hay ningún stop loss asociado.
- Trailing stop opcional con parámetros independientes de activación y distancia; si se establece cualquiera de ellos en cero, se desactiva la función.
- El margen libre se calcula antes de cada solicitud de orden. Si el margen libre es insuficiente, no se envía ninguna orden, se registra una entrada en el registro y se inicia un periodo de espera para evitar repetidas solicitudes fallidas.
- El modo de ejecución admitido por el símbolo se detecta automáticamente, con reintentos de reserva cuando es necesario. Las órdenes de mercado y las órdenes pendientes se gestionan por separado.
- Se comprueban las sesiones de negociación y los modos de negociación de los símbolos, de modo que no se envían solicitudes mientras el mercado está cerrado y se aplica un periodo de espera para reducir los mensajes de error innecesarios.
- El tamaño del lote se normaliza según el mínimo, el máximo y el paso del símbolo para evitar rechazos del servidor debidos a la precisión.
Panel en el gráfico
El gráfico muestra tres botones —Iniciar, Detener y Cerrar todo— además de una línea de estado.
- «Iniciar» activa el trading automatizado. Si no hay ninguna posición, se intenta la primera entrada según la señal actual. Se borran los periodos de espera por cierre del mercado y por fondos insuficientes.
- «Detener» detiene las nuevas entradas. Las posiciones abiertas no se ven afectadas y el trailing stop sigue activo.
- «Cerrar todo» cierra las posiciones abiertas por este sistema en el símbolo actual, elimina las órdenes pendientes y detiene la negociación automática.
La línea de estado muestra si el sistema está en marcha o detenido, el marco temporal de la señal, la dirección permitida, el tamaño del lote, el modo de confirmación, el stop loss inicial, el activador y la distancia del trailing stop, la distancia de la orden pendiente, el tiempo de espera y la fase actual: mercado cerrado, fondos insuficientes, a la espera de la primera entrada, en posición, orden pendiente, a la espera de una orden pendiente o sin posiciones.
La ubicación del grupo de botones (una de las cuatro esquinas del gráfico), el desplazamiento horizontal y vertical, el ancho y la altura de los botones, y el tamaño de la fuente son configurables.
Condiciones de funcionamiento recomendadas
- Símbolo: instrumentos con buena liquidez y spreads estables, como los principales pares de divisas, cruces líquidos, metales preciosos y CFD sobre los principales índices. Compruébalo primero en una cuenta demo.
- Marco temporal: el robot se puede aplicar a cualquier gráfico; el marco temporal de la señal lo establece InpTF, por defecto M5.
- Tipo de cuenta: se admiten tanto cuentas de compensación como de cobertura.
- Tamaño de la cuenta: el tamaño del lote y el stop loss los define el usuario, por lo que debe calcular el tamaño del lote en función de la pérdida máxima que esté dispuesto a asumir por operación. Con el lote predeterminado de 0,01 y un stop loss inicial de 500 puntos, se recomienda generalmente un saldo de cuenta de al menos 500 USD o su equivalente; en caso de apalancamiento bajo o de instrumentos con un valor por punto elevado, utilice un saldo mayor o un tamaño de lote menor. Se trata únicamente de una sugerencia sobre la tolerancia de capital y no constituye una expectativa de rendimiento.
- Entorno: utiliza una cuenta con ejecución estable y baja latencia, y mantén la plataforma en línea en un VPS.
Parámetros de entrada
Parámetros de operación
Parámetro | Valor por defecto | Descripción |
|---|---|---|
InpTF | PERIOD_M5 | Marco temporal utilizado para el cálculo de la señal; puede diferir del marco temporal del gráfico |
InpTradeDirection | TRADE_DIR_BOTH | Dirección permitida: ambas, solo larga o solo corta |
InpLots | 0,01 | Tamaño de lote fijo, normalizado según las reglas del símbolo |
InpStopLoss | 500 | Distancia inicial del stop loss en puntos; 0 significa que no hay stop loss |
InpTrailTrigger | 200 | Beneficio necesario para activar el trailing stop, en puntos |
InpTrailDistance | 100 | Distancia que se mantiene entre el stop dinámico y el precio actual, en puntos |
InpWaitSeconds | 10 | Segundos de espera tras el cierre de una posición antes de la siguiente orden pendiente |
InpPendingDistance | 500 | Distancia de la orden stop respecto al precio de mercado actual, en puntos |
InpMagic | 20267777 | Identificador de la orden utilizado para diferenciar este sistema de otros programas |
InpSlippage | 30 | Desviación máxima aceptada para el envío de órdenes, en puntos |
Configuración del modo de ejecución
Parámetro | Valor por defecto | Descripción |
|---|---|---|
InpAutoDetectFilling | true | Detecta automáticamente los modos de relleno compatibles con el símbolo |
InpManualFilling | ORDER_FILLING_FOK | Modo de relleno utilizado cuando la detección automática está desactivada |
InpFillRetryMax | 4 | Número máximo de reintentos en el modo de llenado |
Opción de inicio
Parámetro | Valor por defecto | Descripción |
|---|---|---|
InpAutoStart | true | Iniciar la negociación inmediatamente después de la carga; compartido con el botón «Inicio» del panel |
Interfaz
Parámetro | Por defecto | Descripción |
|---|---|---|
InpBtnCorner | BTN_CORNER_RL | Esquina del gráfico para el grupo de botones |
InpBtnX | 10 | Desplazamiento horizontal desde la esquina seleccionada, en píxeles |
InpBtnY | 10 | Desplazamiento vertical desde la esquina seleccionada, en píxeles |
InpBtnW | 70 | Ancho del botón en píxeles |
InpBtnH | 25 | Altura del botón en píxeles |
InpText | 9 | Tamaño de la fuente del botón |
Instalación y guía de inicio rápido
- Instala el producto desde el Market o el Navigator; aparecerá en la carpeta «Experts\Market».
- Abre un gráfico del símbolo de interés y aplica el robot.
- Configure el tamaño del lote, el stop loss inicial, el trailing stop, la distancia de orden pendiente y el intervalo de tiempo de la señal en la pestaña «Inputs».
- Asegúrate de que la función de trading automático esté activada en la terminal y de que el nombre del robot, junto con un icono de carita sonriente, aparezca en la esquina superior derecha del gráfico.
- Mantén «InpAutoStart» configurado en «true» para un inicio inmediato, o pulsa «Start» en el panel.
- Pulsa «Detener» para detener nuevas entradas, o «Cerrar todo» para cerrar posiciones y eliminar las órdenes pendientes.
Recomendaciones para las pruebas
- Descarga el historial completo del símbolo y realiza pruebas con spreads reales o personalizados en el Strategy Tester.
- Ejecuta primero el robot en una cuenta de demostración para comprobar el comportamiento de las órdenes pendientes, el comportamiento del trailing stop y el registro de resultados.
- Cuando se ejecute con varios símbolos en una misma cuenta, utilice un gráfico independiente para cada símbolo y considere la posibilidad de utilizar identificadores de orden distintos para mantener los registros claros.
- Antes de cambiar el tamaño del lote, calcula la pérdida máxima por operación como el stop loss inicial en puntos multiplicado por el valor del punto y multiplicado por el tamaño del lote.
Limitaciones y notas
- El robot solo gestiona las posiciones y las órdenes pendientes del símbolo del gráfico actual que tengan su propio identificador de orden. Las posiciones manuales y las órdenes de otros programas no se ven afectadas.
- No se utiliza ningún objetivo de take profit; la cantidad de beneficio que se obtiene depende de los parámetros del trailing stop.
- No hay ningún filtro integrado de noticias, de sesión, de spread, de tiempo máximo de mantenimiento ni de límite de pérdidas diario.
- El tamaño del lote es fijo; no hay un cálculo automático del porcentaje de riesgo, por lo que hay que ajustarlo manualmente cuando cambie el saldo de la cuenta.
- La terminal debe permanecer conectada. No se envían solicitudes durante la desconexión, y el estado tras la reconexión depende de las posiciones y órdenes existentes en ese momento.
- Se tienen en cuenta las órdenes pendientes y las modificaciones del stop loss, por lo que los precios de ejecución reales dependen del spread, el deslizamiento y la liquidez.
Aviso sobre riesgos
El trading automatizado no elimina el riesgo de mercado. Los resultados obtenidos a partir de datos históricos no son indicativos de resultados futuros, y los resultados de las cuentas de demostración pueden diferir de los de las cuentas reales. Este producto no garantiza ningún beneficio y no constituye un consejo de inversión. Establezca el tamaño del lote y el stop loss de acuerdo con su propia tolerancia al riesgo y realice pruebas exhaustivas antes de utilizar una cuenta real. Los resultados de las operaciones obtenidos con este producto son responsabilidad exclusiva del usuario.
Preguntas frecuentes
El robot no abrió una operación justo después de iniciarse. ¿Es eso normal?
Sí. Si la dirección de la señal es neutra al iniciarse, el robot espera hasta que aparezca un estado definido de compra o venta.
¿Qué ocurre con las posiciones abiertas tras pulsar «Detener»?
La opción «Stop» solo detiene las nuevas entradas. Las posiciones abiertas se mantienen y el trailing stop sigue activo.
¿Se puede utilizar en varios símbolos a la vez?
Sí. Asignalo a un gráfico por símbolo. Se recomienda utilizar identificadores de orden distintos para mantener los registros claramente separados.
Una orden pendiente lleva mucho tiempo en espera. ¿Qué debo hacer?
El precio pendiente sigue al mercado cuando el precio se mueve en la dirección favorable. Si la dirección de la señal cambia o se filtra, la orden se elimina y se vuelve a programar según las reglas vigentes.
¿Por qué aparece en el registro un mensaje de fondos insuficientes?
Antes de cada solicitud se comprueba el margen libre. Cuando es insuficiente, no se envía ninguna orden, se registra el evento y comienza un periodo de espera. Reduce el tamaño del lote o ingresa fondos.
