SomaOil
- Asesores Expertos
-
Andrii Soma
If you bought my EA, contact me to join the Telegram group.
Also, there is a group on this website if you don't have Telegram: - Versión: 1.1
- Actualizado: 18 julio 2026
- Activaciones: 10
SomaOil es un Asesor Experto multiestrategia de rupturas para MetaTrader 5, diseñado exclusivamente para petróleo crudo WTI (XTIUSD). Un gráfico, un EA, 20 estrategias independientes que operan juntas como una única cartera diversificada.
Para hacerlo accesible en el lanzamiento, utilizo un modelo de precio progresivo transparente:
- Precio de lanzamiento: 100 USD (48 horas)
- A partir del lunes el precio aumenta 100 USD por cada 10 copias vendidas
- Los aumentos de precio ocurren como máximo una vez al día, incluso cuando se venden más de 10 copias el mismo día
Los compradores tempranos aseguran el precio más bajo de por vida del producto.
Concepto
En lugar de ejecutar una sola configuración que tiende a sobreajustarse a un régimen de mercado estrecho, SomaOil incluye un conjunto seleccionado de 20 estrategias preajustadas que operan en paralelo bajo un solo EA en un único gráfico de WTI.
Cada estrategia tiene su propio número mágico, comentario, marco temporal, parámetros de detección de swings, salidas, distancias a noticias y paso de lote. Comparten el mismo motor de ejecución pero operan de forma independiente, por lo que obtiene diversificación real entre marcos temporales y amplitud de ruptura sin gestionar decenas de gráficos.
Creación del portafolio
Ejecuté optimizaciones en dos rangos in-sample complementarios, cada uno con la misma cuadrícula de parámetros:
- 5 grupos de marcos temporales: D1, H12, H8, H4, H1
- Tres variantes de amplitud de ruptura:
- V1 Broad: swings más amplios, menos configuraciones pero más fuertes;
- V2 Medium: frecuencia de configuraciones equilibrada;
- V3 Narrow: swings más ajustados, configuraciones más frecuentes.
- Todas se optimizaron por return / drawdown:
- Primero por Return / Balance DD
- Luego por Return / Equity DD
Los dos rangos de optimización y sus ventanas out-of-sample fueron:
- Res1 — In Sample: 2018.10.10–2024.10.10 | OOS: 2024.10.10–2026.06.26
- Res2 — In Sample: 2020.06.26–2026.06.26 | OOS: 2018.10.10–2020.06.26
Res1 y Res2 son mitades complementarias de la misma historia, de modo que cada rango valida al otro fuera de muestra. W2 OOS (2018–2020) queda dentro de W1 IS, y W1 OOS (2024–2026) queda dentro de W2 IS — el mismo patrón Res1/Res2 validado cruzadamente usado en SomaBTC, anclado al historial XTIUSD disponible desde 2018.10.10.
Esta combinación de marco temporal × amplitud × rango de optimización es lo que produce la diversificación. Diferentes estrategias se activan en distintos regímenes de volatilidad, de modo que la curva de capital no depende de un único comportamiento del mercado.
Cada estrategia candidata se filtró después:
- Si las estrategias correlacionaban demasiado con otra estrategia restante, se eliminaron.
- Si una estrategia no coincidía con real ticks o fallaba su ventana out-of-sample, se eliminó.
- Todas las optimizaciones se realizaron con cierre de trading del viernes activado, lo que eliminó la optimización basada en gaps de fin de semana arriesgados.
Así que, después de eso, solo sobrevivieron 20 estrategias — 7 de Res1 y 13 de Res2.
Portafolio final por rango de optimización y marco temporal de swing:
- Res1 (7): 1 D1, 1 H12, 2 H4, 3 H1
- Res2 (13): 2 D1, 4 H12, 2 H8, 4 H4, 1 H1
- Total (20): 3 D1, 5 H12, 2 H8, 6 H4, 4 H1
Y como último paso, el tamaño de lote de cada estrategia se fijó con un script propietario en Python que encontró la mejor combinación de return / balance DD. Las estrategias que correlacionan más en DD reciben asignaciones menores, y las que aportan más valor reciben mayor asignación de lote.
Magic numbers
Cada estrategia usa un número mágico único de 8 dígitos para que MetaTrader distinga sus operaciones de otros EAs u órdenes manuales. Verá el magic en cada orden y posición, y en el comentario de la estrategia (por ejemplo SomaOil #1 81241201).
Los dígitos no son aleatorios — codifican qué es la estrategia:
- 1.er dígito — familia del EA (8 = SomaOil)
- 2.º dígito — rango de optimización (1 = Res1, 2 = Res2)
- 3.er–4.º dígitos — marco temporal de swing en horas (01 H1, 04 H4, 08 H8, 12 H12, 24 D1)
- 5.º dígito — amplitud de ruptura (1 Broad, 2 Medium, 3 Narrow)
- 6.º dígito — objetivo de optimización (1 Balance DD, 2 Equity DD)
- 7.º–8.º dígitos — ID del set-file original del lote de investigación
Ejemplo: el magic 81241201 se lee como SomaOil · Res1 · D1 · Broad · Equity DD · set #01.
Esto facilita identificar qué estrategia abrió una operación en el terminal o en el historial de la cuenta, sin abrir la configuración del EA.
Riesgo y tamaño de lote
Hay dos modos de tamaño:
- Lote manual — lotes fijos por operación
- Lot per balance step — tamaño automático según el capital de la cuenta, escalado por estrategia
Controles adicionales permiten afinar el perfil de riesgo:
- Multiplicador global de riesgo sobre el lote calculado
- Tope opcional de lote EA vía MaxLots ( 0 por defecto = sin límite EA; solo especificación del bróker); > 0 = máximo estricto
- Elegir balance o equity como base del tamaño
- Modo OnlyUp — los lotes suben con el capital máximo histórico pero nunca bajan durante drawdowns de trading; los retiros reducen el pico de dimensionamiento y los depósitos lo elevan (ambos activan sincronización inmediata del pico y rebalanceo pendiente del lote). Al iniciar, el EA inicializa el máximo histórico a partir del historial reciente de operaciones cerradas (retroceso configurable), de modo que la línea base OnlyUp es significativa desde el primer tick en lugar de reiniciarse en cada arranque
- Selector de divisa base (USD, EUR, GBP, HKD, SGD o un par personalizado) para un tamaño correcto en cuentas no denominadas en USD
- Protección de margin call (activada por defecto): antes de colocar órdenes el EA trata los stops/límites pendientes del mismo lado como si ya exigieran el margen de una orden a mercado, para no sobrecomprometer el margen libre cuando el bróker reserva poco en pendientes; también puede recortar el lote calculado para que, en el peor caso, las órdenes simultáneas del mismo lado sigan dentro de un presupuesto de margen ligado a su base de tamaño. Desactive solo si controla totalmente el apalancamiento y el colchón de margen.
Filtro de noticias
SomaOil incluye un calendario de noticias de EE. UU. integrado que cubre tres tipos de eventos de alto impacto:
- NFP — Non-Farm Payrolls
- CPI — Consumer Price Index
- IR / FOMC — decisiones de tipos de los bancos centrales
Alrededor de cada evento, el EA puede bloquear nuevas entradas de forma independiente, cancelar órdenes pendientes existentes y cerrar posiciones abiertas. Cada estrategia tiene sus propias ventanas de minutos antes y después, de modo que la protección por noticias se ajusta por estrategia y no de forma global.
El GMT del bróker puede configurarse manualmente o detectarse automáticamente, de modo que las ventanas de noticias se alineen siempre con la hora del bróker, incluidos los cambios de horario de verano. El clasificador se ha endurecido para excluir falsos positivos habituales como ADP Nonfarm Employment y discursos/actas del FOMC.
Ventana de trading
Una ventana opcional de apertura del lunes / cierre del viernes le permite evitar gaps de fin de semana. Puede elegir si también cancelar órdenes pendientes o cerrar posiciones abiertas fuera de la ventana de trading.
Varias estrategias también usan una ventana de sesión diaria integrada (horas de inicio/fin por estrategia) para evitar periodos de baja liquidez. Forman parte del preset del portafolio y no son entradas de usuario separadas.
La optimización se realizó con cierre del viernes activado, que es la configuración por defecto, por lo que no hay sobreoptimización en condiciones de gap de fin de semana arriesgadas.
Filtro de spread
SomaOil puede evitar colocar pendientes de ruptura cuando el spread del bróker es demasiado amplio — importante en petróleo crudo (rollover, noticias, baja liquidez).
El filtro afecta solo a órdenes pendientes. Las posiciones abiertas y sus salidas (SL, TP, trailing, break-even) no cambian.
- MaxSpreadPips (predeterminado 80) — spread máximo en puntos MT5 en cotización WTI de 3 dígitos. 0 = desactivado.
- RemovePendingSpreadSeconds (predeterminado 60) — elimina pendientes de la estrategia si el spread permanece por encima del límite de forma continua durante estos segundos. 0 = solo bloqueo de nuevas entradas.
Normalización entre brókers de 2 y 3 dígitos; límite efectivo escalado por DefaultValue de cada estrategia y precio de referencia del petróleo.
Cumplimiento Prop Firm
Se puede aplicar un desplazamiento aleatorio opcional en pips por operación a entradas y salidas mediante MaxRandomizationPips. Esto da a su cuenta niveles ligeramente distintos a los de otros traders que ejecutan el mismo EA — útil en cuentas prop-firm y funded donde patrones idénticos de copy-trading pueden ser marcados. Establezca el valor en cero para desactivar.
SomaOil también incluye una capa de cumplimiento opcional (desactivada por defecto): bloqueo por DD diario máx., regla no-hedge y tope de órdenes pendientes. Vea EnablePropFirmCompliance y entradas relacionadas abajo.
Panel en el gráfico
SomaOil muestra un panel en vivo en el gráfico con:
- Estado de licencia y portafolio activo
- Base del tamaño de lote y capital efectivo
- Órdenes pendientes y posiciones abiertas separadas por compra/venta
- P/L flotante y P/L cerrado del día
- Drawdown de balance y equity, absoluto y porcentual
- Estadísticas de deslizamiento: histórico completo, 7 días, 24 horas
- Spread actual y número de estrategias activas
- Próximos y últimos eventos NFP, CPI e IR/FOMC
El panel puede desactivarse en Strategy Tester para backtests más rápidos.
Parámetros
Overrides
- EnableMagicOverride -> activado: los ID de operación se asignan como OverrideMagicBase + índice de estrategia; desactivado (por defecto): cada estrategia usa su ID integrado
- OverrideMagicBase -> ID de operación inicial cuando magic override está activo
- EnableCommentOverride -> activado: todas las operaciones comparten un comentario; desactivado (por defecto): cada estrategia conserva el suyo
- OverrideComment -> texto del comentario cuando comment override está activo
Dirección
- AllowBuyTrades -> permitir long y pendientes buy
- AllowSellTrades -> permitir short y pendientes sell
Tamaño de lote
- LotsAdjustMinChangePercent -> cambio mín. % antes de actualizar el lote activo
- Risk -> ManualLotSize (StartLots fijo) o LotSizeStep (auto por capital)
- AdjustLotsizeToVariableValues -> recalcular lotes al cambiar balance o equity
- StartLots -> lote fijo en manual o referencia mínima en step
- MaxLots -> tope opcional EA; 0 = solo especificación del bróker
- UseEquity -> calcular desde equity en lugar de balance
- OnlyUp -> lotes solo suben con el pico de capital y nunca bajan durante drawdowns de trading; retiros reducen el pico y depósitos lo elevan
- RestorePeakFromHistory -> inicializar pico OnlyUp desde historial reciente de operaciones cerradas al arrancar
- RestorePeakLookbackDays -> días de historial para el pico (0 = todo)
- ManualBalanceForLotSizing -> capital fijo para sizing si > 0
- RiskMultiplier -> multiplicador global sobre el lote calculado
- MarginCallProtection -> reservar margen en pendientes del mismo lado y limitar lote al presupuesto de margen
- BaseCurrency -> USD, EUR, GBP, HKD, SGD o custom en cuentas no USD
- CustomBaseCurrencyPair -> símbolo del bróker si BaseCurrency es custom
GMT
- Broker_GMT_OFFSET_Summer -> offset GMT manual del bróker en verano (horas)
- Broker_GMT_OFFSET_Winter -> offset GMT manual del bróker en invierno (horas)
- AutoGMT -> detectar GMT del bróker automáticamente (ignora offsets manuales)
Filtros de noticias
- EnableNFP_Filter -> activar ventana de protección NFP
- NFP_CloseOpenTrades -> cerrar posiciones antes del NFP
- NFP_ClosePendingOrders -> cancelar pendientes antes del NFP
- EnableIR_Filter -> activar ventana de protección IR / FOMC
- IR_CloseOpenTrades -> cerrar posiciones antes del IR
- IR_ClosePendingOrders -> cancelar pendientes antes del IR
- EnableCPI_Filter -> activar ventana CPI
- CPI_CloseOpenTrades -> cerrar posiciones antes del CPI
- CPI_ClosePendingOrders -> cancelar pendientes antes del CPI
Los minutos antes/después por estrategia están en el portafolio, no son parámetros separados.
Horario de trading
- UseTradingTimeZones -> aplicar ventana semanal lunes–viernes
- KillPending -> cancelar pendientes fuera de la ventana
- KillOpen -> cerrar posiciones fuera de la ventana
- MondayOpenHour / MondayOpenMinute -> la ventana abre el lunes a esta hora del bróker
- FridayCloseHour / FridayCloseMinute -> la ventana cierra el viernes a esta hora del bróker
Varias estrategias también usan una ventana de sesión diaria integrada (horas de inicio/fin por estrategia) como parte del preset del portafolio. No son entradas de usuario separadas.
Panel
- DisableDashboardInTesting -> ocultar panel en Strategy Tester
- DashboardUpdateSeconds -> intervalo de actualización del panel (seg)
Spread Filter
- MaxSpreadPips -> spread máx. en puntos MT5 (convención 3 dígitos); escalado por DefaultValue; 0 = off
- RemovePendingSpreadSeconds -> eliminar pendientes tras spread alto sostenido (seg.); 0 = nunca eliminar
Cumplimiento Prop Firm
Todos los inputs por defecto off / cero — impacto cero en rendimiento cuando están desactivados.
- MaxRandomizationPips -> offset prop firm en entradas/salidas; único vs otros usuarios del EA (0 = off)
- EnablePropFirmCompliance -> interruptor maestro; debe ser true para que las reglas siguientes surtan efecto
- PF_MaxDailyDrawdownPercent -> pérdida diaria máx. de equity como % de la base diaria (0 = off)
- PF_MaxDailyDrawdownMoney -> pérdida diaria máx. de equity en divisa de cuenta (0 = off)
- PF_DailyResetHour -> hora bróker/servidor (0–23) cuando se reinicia la ventana diaria
- PF_DailyLossBufferPercent -> colchón de seguridad antes del límite duro (predeterminado 10%)
- PF_DisallowHedging -> bloquea entradas en dirección opuesta; elimina pendientes opuestos
- PF_MaxTotalPendingOrders -> tope de órdenes pendientes totales del EA (0 = off)
Configuración recomendada
- Símbolo: petróleo crudo WTI — adjunte el EA al gráfico US crude / WTI de su bróker. El mismo instrumento suele listarse con distintos tickers; en nuestros terminales de prueba hemos visto: XTIUSD, USOUSD, USOUSD.s, WTI, SpotCrude. SomaOil está diseñado para símbolos que empiezan por XTIUSD; si su bróker usa otro nombre, abra Observación del mercado y busque WTI, crude, oil o USO para encontrar el gráfico correspondiente.
- Marco temporal: cualquiera (el EA lee sus propios marcos temporales internamente)
- Tipo de cuenta: se recomienda ECN / RAW-spread para spreads ajustados
- Balance mínimo recomendado: 2000 USD para el riesgo por defecto. El lote calculado no puede ser inferior a 0.01 por operación, por lo que en cuentas por debajo de ese nivel no se puede reducir más el riesgo.
- VPS: recomendado para una ejecución 24/5 estable
- Añada "https : // ea-license-server . somatrade . org" y "https : // www . worldtimeserver . com/" a las URL permitidas en MT5 (Herramientas → Opciones → Asesores Expertos)
Resumen
- 20 estrategias de ruptura preajustadas en un único gráfico WTI (XTIUSD)
- Dos rangos de optimización con OOS validado cruzadamente, 2018–2026
- Marcos temporales: D1, H12, H8, H4 y H1
- Salidas en capas con break-even y trailing stops
- Protección integrada de noticias de EE. UU. con filtrado de falsos positivos
- Filtro de spread opcional para pendientes (MaxSpreadPips + eliminación por spread alto sostenido)
- Randomización opcional de entradas/salidas para unicidad en prop firm (MaxRandomizationPips)
- Modo opcional de cumplimiento prop firm (DD diario máx., no-hedge, tope de pendientes) — desactivado por defecto
- Panel en vivo completo en el gráfico
- Lanzamiento con precio progresivo transparente: inicio 100 USD, +100 USD por 10 copias, máximo una vez al día
