MultiStrat Engine EA
- Asesores Expertos
- Julien Favre
- Versión: 1.0
- Activaciones: 5
El asesor experto MultiStrat Engine se basa en una regla de oro fundamental: cada operación abierta es una operación totalmente asumida . Sin Stop Loss, nunca se materializa ninguna pérdida : las posiciones se mantienen hasta que se regresa al equilibrio ( Punto Cero ) .
Un Asesor Experto (EA) diseñado para automatizar completamente la gestión de posiciones en todo tipo de instrumentos financieros (Forex, acciones, índices, materias primas ). Incorpora una arquitectura modular excepcionalmente completa, que combina más de 28 modos de negociación distintos, gestión dinámica de riesgos, un sistema de compensación de comisiones de bróker y un panel de control HTML interactivo para análisis comparativos de backtesting.
Arquitectura general
Experto (EA) se basa en una clara separación entre las operaciones de COMPRA y VENTA , cada una con sus propios parámetros independientes : modo trailing stop , marco temporal, tamaño del lote, toma de ganancias , stop loss, distancias entre órdenes y comportamiento dinámico. Esta dualidad permite combinar estrategias asimétricas o perfectamente simétricas según las necesidades del operador.
Los más de 28 métodos de negociación
Lado COMPRADOR :
- BUY_MODE_NONE : Colocación de una orden BuyStop con trailing simple y TP individual fijo por posición.
- BUY_MODE_NONE_CANDLE : Idéntico, pero el cierre global se activa con la vela si el beneficio neto general es positivo.
- BUY_CLOSE_CANDLE — Cierra todas las posiciones de COMPRA en cada nueva vela si el beneficio total es positivo.
- BUY_CUMUL_SINGLE — Take Profit acumulativo virtual: la suma ponderada de pips ( netos de comisiones) de todas las posiciones de COMPRA debe alcanzar el TP configurado antes del cierre global.
- BUY_CUMUL_MULTI — Variante CUMUL: el TP objetivo se multiplica por la relación volumen total / volumen base, compensando la acumulación de lotes.
- BUY_CUMUL_POS — TP progresivo por número de posiciones: cada posición adicional reduce el TP unitario según un factor configurable, con un mínimo.
- BUY_HEDGE_VANDLE : Cada entrada de COMPRA genera automáticamente una posición de cobertura de VENTA de tamaño proporcional; se cierra en la vela si el beneficio total es positivo .
- BUY_HEDGE_SINGLE — Cobertura automática + TP acumulativo ÚNICO.
- BUY_HEDGE_MULTI — Cobertura automática + TP MULTI acumulativo.
- BUY_HEDGE_SINGLE_ADD_SELL_TP — Cobertura ÚNICA con compensación integrada de pérdidas flotantes de la cobertura SELL en el cálculo del TP de COMPRA.
- BUY_HEDGE_MULTI_ADD_SELL_TP — Cobertura MULTI con la misma compensación.
- BUY_DIRECT_HEDGE — Cobertura directa permanente: con cada nueva operación de COMPRA ejecutada , la antigua cobertura de VENTA se reemplaza por una nueva . La cobertura de VENTA se cierra automáticamente al cerrarse con éxito una operación de COMPRA .
- BUY_DIRECT_HEDGE_ADD_SELL_TP — COBERTURA DIRECTA con inclusión de las pérdidas de VENTA en el TP de COMPRA.
- BUY_DIRECT_HEDGE_ADD_SELL_TP_AUTO_MAX — Idéntico al cálculo automático del precio máximo de compra mediante medias móviles.
- BUY_PARTIAL_CLOSURE — Sistema sofisticado de cierre parcial : el lote principal se divide en unidades , las unidades auxiliares se colocan progresivamente según el nivel de la cuadrícula alcanzado, y las ganancias combinadas de la unidad auxiliar + la unidad principal desencadenan una reducción progresiva de la operación principal.
- BUY_LADDER_PROFIT — Cierre individual de cada posición tan pronto como sus pips netos alcancen el TP ( escala de ganancias ) configurado .
- COMPRA_EN_OLA — Cierre rápido en cuanto se alcance el 30% del TP, y reapertura inmediata para "surfear" la siguiente ola.
- BUY_VIX_REVERSION — Especialización del VIX : cierre si el VIX supera los umbrales para volver a la media.
- BUY_MOMENTUM_BURST : Cierre ultrarrápido al 20% del TP, seguido de múltiples entradas con volumen reducido para aprovechar los impulsos del momentum.
- BUY_SCALP_ACCUMULATOR — Scalp al 15% del TP por posición, seguido de una reapertura inmediata para acumular ganancias microfraccionarias .
- BUY_VIX_OSCILLATION_MASTER : Gestión avanzada del VIX en múltiples zonas con reglas de cierre que dependen del precio de entrada y del nivel actual del VIX.
- COMPROBACIÓN DE GANANCIAS — Reinversión amplificada : dependiendo de la ganancia obtenida , el lote de reentrada se multiplica ( hasta x2 ) .
- BUY_BREAKOUT_SURFER — Detección de impulso en M1 : cierre al 70% del TP, reentrada condicional si se detecta una ruptura .
- BUY_ADAPTIVE_PYRAMID : TP adaptativo calculado según la volatilidad ( desviación estándar de los precios de apertura) y el número de posiciones abiertas.
- BUY_GRID_RECOVERY_SMART — Detección inteligente de recuperación de cuadrícula : cierra si la ganancia es positiva y el precio está por encima de la mediana de la cuadrícula, luego vuelve a entrar con un volumen reducido .
- BUY_PATIENCE_ACCUMULATOR : el TP disminuye con el tiempo ( −1 % por hora) para fomentar la paciencia y compensar las operaciones mantenidas durante mucho tiempo.
- BUY_FIBONACCI_ZONES — Cierre en los niveles de Fibonacci del 50%, 61,8% o 78,6% calculados a partir de los precios de apertura de las posiciones activas.
- BUY_VOLATILITY_RIDER : TP adaptativo basado en ATR M1: cuanto mayor sea la volatilidad , menor será el TP para asegurar ganancias rápidamente.
- BUY_PROFIT_PYRAMID : Cierre individual de la pirámide al 60 % del TP, con reapertura de una nueva capa si quedan 2 o más posiciones activas.
Los modos de VENTA son perfectamente simétricos , con sus propias variantes SINGLE, MULTI, VANDLE, DIRECT_HEDGE, ADD_BUY_TP, etc.
sistema de red dinámico
EA admite dos regímenes de procesamiento por lotes para cada lado :
- Modo FIJO : lote constante configurable mediante el parámetro LotSizeBuy / LotSizeSell.
- Modo GRID : progresión geométrica de lotes según BaseVolume × GridMultiplier^N, con un límite superior de MaxBaseVolume. El multiplicador puede ser 1,0 (cuadrícula lineal ) o superior (cuadrícula de martingala).
La distancia entre órdenes (DistanceOrderBuy/Sell) y el umbral de reajuste ( TrailingDistanceOrderBuy /Sell) controlan con precisión el reposicionamiento de las órdenes pendientes en cada tick o vela.
Gestión de pedidos
La función ManagePendingOrders reposiciona automáticamente las órdenes BuyStop, BuyLimit, SellStop y SellLimit para mantenerlas a la distancia correcta del precio actual. Incorpora la lógica NewOrdersAtHigherPrice (dinámica): en el modo "solo bajo" para órdenes de COMPRA, solo se conservan las órdenes inferiores al mínimo actual ; se eliminan las duplicadas que estén demasiado cerca . Un mecanismo de protección impide la eliminación de la última orden/posición restante.
Compensación automática de las comisiones de corretaje
comisiones reales pagadas por posición (a través del historial de operaciones), los swaps acumulados y estima la comisión de salida futura. Estas comisiones se convierten en pips mediante MoneyToPoints y se añaden automáticamente al Take Profit (TP) de cada posición (AdjustTPWithRealFees), lo que garantiza que cada cierre sea realmente rentable neto de comisiones. Un sistema de caché configurable (CommissionCacheSeconds) evita recálculos excesivamente frecuentes .
Gestión automática de setos y patas
Los modos HEDGE generan automáticamente una pierna opuesta con cada nueva entrada . En DIRECT_HEDGE , solo se mantiene una pierna de VENTA simultáneamente con las posiciones de COMPRA activas, y se reemplaza con cada nueva compra . El cierre de una posición de COMPRA ganadora (detectada a través de OnTradeTransaction y ProcessDealTicket) activa automáticamente el cierre de las piernas de VENTA asociadas . La proporción del lote de cobertura es configurable a través de preajustes (1:1, 1:2, 1:3, 1:4, 2:1, 3:1) o un valor personalizado .
Señales virtuales EDGE
Los modos de negociación HEDGE utilizan señales virtuales : en lugar de colocar una orden pendiente tradicional, el Asesor Experto (EA) mantiene una señal interna (g_buyEdgeVirtualSignalActive) con seguimiento dinámico. La señal solo se convierte en una operación real cuando el precio la cruza , lo que minimiza las falsas alarmas y permite la recalibración automática si cambia la restricción de distancia.
Precio máximo de compra dinámico (MA)
El parámetro MaximumPurchasePriceSource calcula automáticamente el precio máximo de compra basándose en dos medias móviles configurables ( periodo , método EMA /SMA/SMMA/LWMA, marco temporal). El promedio de las dos medias móviles se ajusta mediante un porcentaje configurable ( MaximumPurchasePriceAutoOffsetPct) para crear una zona de seguridad dinámica . Una línea naranja en el gráfico indica el nivel actual .
Sistema avanzado de cierre parcial ( PARCIAL_CLOSURE )
Este modo único divide automáticamente cada lote principal en unidades óptimas (adaptadas al SYMBOL_VOLUME_STEP ). Las operaciones auxiliares se colocan en el mercado según el nivel de la cuadrícula alcanzado. Cuando la combinación de profit_helper y main_unit_profit alcanza el objetivo de toma de ganancias, la operación auxiliar se cierra y se reduce una unidad de la operación principal ( PositionClosePartial ) . El ciclo se repite hasta que la operación principal se agota por completo .
Gestión avanzada del tiempo
Cada lado ( COMPRA /VENTA) tiene un marco temporal independiente con hora y minuto de inicio configurables . El cálculo de validez (IsValidTradingTime) alinea los disparadores con ciclos precisos desde la hora de inicio , evitando duplicados dentro de la misma vela. Tras el cierre , una lógica de " reinicio rápido" permite entrar en la primera mitad del siguiente ciclo sin esperar a la siguiente alineación completa. Un parámetro opcional, BlockTradingAroundSessionEdges , bloquea todas las operaciones durante los 5 minutos que rodean la apertura o el cierre de las sesiones.
Control presupuestario y protección del capital
La función CanAffordNextTrade simula el coste total (posiciones existentes + nueva operación) si el precio volviera a cero , y bloquea cualquier nueva entrada si este coste supera el capital asignado (MaxAccountBalance en las pruebas retrospectivas , BackTestStopThreshold en las operaciones en tiempo real). Este mecanismo de protección evita las llamadas de margen no intencionadas, independientemente de la configuración de la cuadrícula.
Exclusión de períodos (períodos fantasma)
Se pueden excluir hasta dos periodos calendario del backtesting. El Asesor Experto (EA) espera a que todas las operaciones abiertas se cierren de forma natural antes de suspender cualquier nueva actividad durante el periodo fantasma . El número de días excluidos se deduce automáticamente del cálculo de los periodos sin ganancias para evitar que afecte negativamente a las estadísticas de rendimiento.
Sistema de informes mensuales y panel de control HTML
Al final de cada backtest, el Asesor Experto (EA) genera un archivo CSV acumulativo (backtest_monthly_totals.csv) que registra todas las ejecuciones con: puntuación OnTester, totales mensuales, máxima reducción, número máximo de días sin ganancias y parámetros de identificación . Se regenera un panel HTML interactivo ( backtest_monthly_totals.html ) para cada ejecución, que permite la comparación visual de todos los backtests mediante gráficos circulares mensuales, tablas de clasificación y dos puntuaciones: retorno puro ( OnTester) y una puntuación equilibrada ( que penaliza la irregularidad mensual mediante la desviación estándar normalizada ) . Los filtros dinámicos (número mostrado , ponderación de irregularidad , exclusión de meses negativos ) son accesibles directamente en el navegador sin recargar.
Criterios para la finalización automática de la prueba retrospectiva
Varios mecanismos de parada temprana protegen la optimización :
- Antecedentes de reducción de capital : detenerse si saldo − capital ≥ BackTestStopThreshold.
- Mes calendario no positivo : opción StopIfNonPositiveClosedMonth para detenerse tan pronto como un mes completo cierre en ≤ 0 € .
- Filtro de ventana deslizante mensual : se detiene si la ganancia durante los últimos N meses cerrados es menor que el umbral MonthlyMinProfitThreshold.
- Días sin ganancias : detenerse si no hay ninguna operación ganadora durante X días naturales consecutivos ( excluyendo períodos fantasma ) .
Visualización gráfica en tiempo real
Un panel configurable (colores, tamaños, posiciones) muestra en tiempo real para cada activo/número mágico monitorizado : número de posiciones abiertas de COMPRA/VENTA, tiempo del bróker, spread actual, tiempo hasta la siguiente orden, niveles de saldo cero (punto de equilibrio largo y corto) con líneas horizontales en el gráfico, así como ganancias/pérdidas durante 7 periodos ( flotante, día, ayer, 7 días, 14 días, mes actual, mes anterior ) con coloración dinámica verde/roja. El TP virtual se traza en una línea en el gráfico para los modos acumulativos.
Stop Loss dinámico
Se puede configurar un trailing stop estándar en cada lado con TrailingStartBuy /Sell (umbral de activación en pips) y TrailingStopLossBuy/Sell (distancia de mantenimiento). En los modos CUMUL y HEDGE, el trailing stop se calcula sobre la suma ponderada de los pips de todas las posiciones activas, no posición por posición.
Compatibilidad y configuración
- Compatible con todos los instrumentos MT5 (Forex, acciones CFD, índices, materias primas , VIX ).
- Número mágico configurable para permitir que varias instancias coexistan en la misma cuenta .
- Distribución personalizada en las pruebas retrospectivas para simular condiciones realistas .
- Los registros de depuración se pueden habilitar o deshabilitar para evitar que afecten al rendimiento de la optimización.
- Verificación de la coherencia de los parámetros al inicio , con bloqueo en caso de configuración no válida .
El Trailing SL solo está activo en los siguientes modos.
Lado COMPRADOR :
- MODO DE COMPRA NINGUNO
- COMPRA_DIRECTA_COBERTURA
- COMPRA_DIRECTA_COBERTURA_AÑADIR_VENDER_TP (familia)
- COMPRA_ACUMUL_INDIVIDUAL
- COMPRAR_CUMPLIDO_MULTI
- COMPRA_COBERTURA_SIN VECES
- COMPRAR_COBERTURA_MULTI
- COMPRA_COBERTURA_SINGLE_AÑADIR_VENDER_TP
- COMPRAR_COBERTURA_MULTI_AÑADIR_VENDER_TP
- COMPRA_CUMUL_POS
Lado de venta :
- MODO DE VENTA NINGUNO
- VENDER_DIRECTO_COBERTURA
- VENDER_DIRECTO_COBERTURA_AÑADIR_COMPRA_TP
- VENDER_ACUMUL_SINGLE
- VENDER_ACUMUL_MULTI
- VENDER_COBERTURA_SIN VECES
- VENDER_COBERTURA_MULTI
- VENDER_COBERTURA_SINGLE_AÑADIR_COMPRA_TP
- VENDER_COBERTURA_MULTI_AÑADIR_COMPRA_TP
- VENDER_CUMUL_POS
