SomaOil
- Experts
-
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: - Versão: 1.1
- Atualizado: 18 julho 2026
- Ativações: 10
SomaOil é um Expert Advisor multiestratégia de breakout para MetaTrader 5, feito exclusivamente para petróleo bruto WTI (XTIUSD). Um gráfico, um EA, 20 estratégias independentes rodando juntas como um único portfólio diversificado.
Para torná-lo acessível no lançamento, uso um modelo transparente de preço escalonado:
- Preço de lançamento: 100 USD (48 horas)
- A partir de segunda-feira o preço aumenta 100 USD a cada 10 cópias vendidas
- Os aumentos de preço ocorrem no máximo uma vez por dia, mesmo quando mais de 10 cópias são vendidas no mesmo dia
Compradores antecipados garantem o menor preço durante toda a vida do produto.
Conceito
Em vez de rodar uma única configuração que tende a sobreajustar um regime estreito de mercado, o SomaOil vem com um conjunto curado de 20 estratégias pré-ajustadas que rodam em paralelo sob um único EA em um único gráfico de WTI.
Cada estratégia tem seu próprio magic number, comentário, timeframe, parâmetros de detecção de swing, saídas, distâncias de notícias e passo de lote. Elas compartilham o mesmo motor de execução, mas operam de forma independente, então você obtém diversificação real entre timeframes e amplitude de breakout sem gerenciar dezenas de gráficos.
Criação do portfólio
Rodei otimizações em dois intervalos in-sample complementares, cada um com a mesma grade de parâmetros:
- 5 grupos de timeframes: D1, H12, H8, H4, H1
- Três variantes de amplitude de breakout:
- V1 Broad: swings mais largos, menos porém setups mais fortes;
- V2 Medium: frequência de setups equilibrada;
- V3 Narrow: swings mais apertados, setups mais frequentes.
- Todas foram otimizadas por return / drawdown:
- Primeiro por Return / Balance DD
- Depois por Return / Equity DD
Os dois intervalos de otimização e suas janelas out-of-sample foram:
- 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 e Res2 são metades complementares da mesma história, então cada intervalo valida o outro fora da amostra. W2 OOS (2018–2020) fica dentro de W1 IS, e W1 OOS (2024–2026) fica dentro de W2 IS — o mesmo padrão Res1/Res2 validado cruzadamente usado no SomaBTC, ancorado ao histórico XTIUSD disponível desde 2018.10.10.
Essa combinação de timeframe × amplitude × intervalo de otimização é o que produz a diversificação. Estratégias diferentes disparam em regimes diferentes de volatilidade, então a curva de capital não depende de um único comportamento de mercado.
Cada estratégia candidata foi então filtrada:
- Se estratégias correlacionavam demais com outra estratégia restante, foram removidas.
- Se uma estratégia não correspondia a real ticks ou falhava sua janela out-of-sample, foi removida.
- Todas as otimizações foram feitas com fechamento de trading na sexta ativado, o que eliminou otimização baseada em gaps de fim de semana arriscados.
Assim, depois disso, restaram apenas 20 estratégias — 7 de Res1 e 13 de Res2.
Portfólio final por intervalo de otimização e timeframe 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
E, como último passo, o tamanho de lote de cada estratégia foi definido por um script Python proprietário que encontrou a melhor combinação de return / balance DD. Estratégias que correlacionam mais em DD recebem alocações menores, e estratégias que trazem mais valor recebem maior alocação de lote.
Magic numbers
Cada estratégia usa um magic number único de 8 dígitos para que o MetaTrader distinga suas operações de outros EAs ou ordens manuais. Você verá o magic em cada ordem e posição, e no comentário da estratégia (por exemplo SomaOil #1 81241201).
Os dígitos não são aleatórios — eles codificam o que a estratégia é:
- 1.º dígito — família do EA (8 = SomaOil)
- 2.º dígito — intervalo de otimização (1 = Res1, 2 = Res2)
- 3.º–4.º dígitos — timeframe de swing em horas (01 H1, 04 H4, 08 H8, 12 H12, 24 D1)
- 5.º dígito — amplitude de breakout (1 Broad, 2 Medium, 3 Narrow)
- 6.º dígito — alvo de otimização (1 Balance DD, 2 Equity DD)
- 7.º–8.º dígitos — ID do set-file original do lote de pesquisa
Exemplo: magic 81241201 lê-se como SomaOil · Res1 · D1 · Broad · Equity DD · set #01.
Isso facilita identificar qual estratégia abriu uma operação no terminal ou no histórico da conta, sem abrir as configurações do EA.
Risco e tamanho de lote
Dois modos de dimensionamento estão disponíveis:
- Lote manual — lotes fixos por trade
- Lot per balance step — dimensionamento automático com base no capital da conta, escalado por estratégia
Controles adicionais permitem ajustar o perfil de risco:
- Multiplicador global de risco sobre o lote calculado
- Teto opcional de lote EA via MaxLots ( 0 padrão = sem limite EA; apenas especificação da corretora); > 0 = máximo rígido
- Escolher saldo ou equity como base do dimensionamento
- Modo OnlyUp — os lotes sobem com o pico de capital mas nunca descem durante drawdowns de trading; saques reduzem o pico de dimensionamento e depósitos o elevam (ambos disparam sincronização imediata do pico e rebalanceamento pendente do lote). Na inicialização o EA define o pico histórico a partir do histórico recente de trades fechados (lookback configurável), para que a linha de base OnlyUp faça sentido desde o primeiro tick em vez de ser zerada a cada reinício
- Seletor de moeda base (USD, EUR, GBP, HKD, SGD ou um par personalizado) para dimensionamento correto em contas não em USD
- Proteção contra margin call (padrão ligada) — antes de enviar ordens o EA trata stops/limites pendentes do mesmo lado como se já exigissem a margem de ordem a mercado, evitando comprometer em excesso a margem livre quando a corretora reserva pouco em pendentes; também pode reduzir o lote calculado para que, no pior caso, ordens simultâneas do mesmo lado permaneçam dentro de um orçamento de margem ligado à sua base de dimensionamento. Desligue apenas se controlar totalmente alavancagem e folga de margem.
Filtro de notícias
O SomaOil inclui um calendário de notícias dos EUA integrado cobrindo três tipos de eventos de alto impacto:
- NFP — Non-Farm Payrolls
- CPI — Consumer Price Index
- IR / FOMC — decisões de taxa de bancos centrais
Em torno de cada evento o EA pode, de forma independente, bloquear novas entradas, cancelar ordens pendentes existentes e fechar posições abertas. Cada estratégia tem suas próprias janelas de minutos antes e depois, então a proteção por notícias é ajustada por estratégia e não aplicada globalmente.
O GMT da corretora pode ser definido manualmente ou detectado automaticamente, para que as janelas de notícias sempre alinhem com o horário da corretora, inclusive nas mudanças de horário de verão. O classificador foi reforçado para excluir falsos positivos comuns como ADP Nonfarm Employment e discursos/atas do FOMC.
Janela de negociação
Uma janela opcional de abertura na segunda / fechamento na sexta permite evitar gaps de fim de semana. Você pode escolher se também cancelar ordens pendentes ou fechar posições abertas fora da janela de negociação.
Várias estratégias também usam uma janela de sessão diária integrada (horas de início/fim por estratégia) para evitar períodos de baixa liquidez. Fazem parte do preset do portfólio e não são entradas de usuário separadas.
A otimização foi realizada com fechamento na sexta ativado, que é a configuração padrão, portanto não há sobreotimização em condições de gap de fim de semana arriscadas.
Filtro de spread
O SomaOil pode evitar colocar pendings de breakout quando o spread do broker está muito alto — importante no petróleo (rollover, notícias, baixa liquidez).
O filtro aplica-se apenas a ordens pendentes. Posições abertas e saídas (SL, TP, trailing, break-even) não são afetadas.
- MaxSpreadPips (padrão 80) — spread máximo em pontos MT5 na cotação WTI de 3 dígitos. 0 = desligado.
- RemovePendingSpreadSeconds (padrão 60) — remove pendings da estratégia se o spread ficar acima do limite de forma contínua por estes segundos. 0 = só bloqueio de novas entradas.
Normalização entre brokers de 2 e 3 dígitos; limite efetivo escalado por DefaultValue de cada estratégia e preço de referência do petróleo.
Conformidade Prop Firm
Pode aplicar um offset aleatório opcional em pips por operação a entradas e saídas via MaxRandomizationPips. Isso dá à sua conta níveis ligeiramente diferentes dos de outros traders rodando o mesmo EA — útil em contas prop-firm e funded onde padrões idênticos de copy-trading podem ser sinalizados. Defina o valor como zero para desativar.
O SomaOil também inclui uma camada de conformidade opcional (desligada por padrão): bloqueio por DD diário máx., regra no-hedge e limite de ordens pendentes. Veja EnablePropFirmCompliance e inputs relacionados abaixo.
Dashboard no gráfico
O SomaOil renderiza um dashboard ao vivo no gráfico mostrando:
- Status da licença e portfólio ativo
- Base do dimensionamento de lote e capital efetivo
- Ordens pendentes e posições abertas separadas por compra/venda
- P/L flutuante e P/L fechado do dia
- Drawdown de saldo e de equity, absoluto e percentual
- Estatísticas de slippage: todo o período, 7 dias, 24 horas
- Spread atual e contagem de estratégias ativas
- Próximos e últimos eventos NFP, CPI e IR/FOMC
O dashboard pode ser desativado no Strategy Tester para backtests mais rápidos.
Parâmetros
Overrides
- EnableMagicOverride -> quando ligado, os números de ID de trade são atribuídos como OverrideMagicBase + índice da estratégia; quando desligado (padrão) cada estratégia usa seu ID integrado
- OverrideMagicBase -> número de ID de trade inicial quando o override de magic está ativo
- EnableCommentOverride -> quando ligado, todas as operações compartilham um comentário; quando desligado (padrão) cada estratégia mantém o seu
- OverrideComment -> texto do comentário usado quando o override de comentário está ativo
Direção de negociação
- AllowBuyTrades -> permitir operações long e pendentes buy
- AllowSellTrades -> permitir operações short e pendentes sell
Tamanho de lote
- LotsAdjustMinChangePercent -> mudança mín. % antes de atualizar o lote ativo
- Risk -> ManualLotSize (StartLots fixo) ou LotSizeStep (auto por capital)
- AdjustLotsizeToVariableValues -> recalcular lotes quando saldo ou equity mudam
- StartLots -> lote fixo no manual ou piso no step
- MaxLots -> teto opcional EA; 0 = apenas especificação da corretora
- UseEquity -> dimensionar por equity em vez de saldo
- OnlyUp -> lotes só sobem com o pico de capital e nunca descem durante drawdowns de trading; saques reduzem o pico e depósitos o elevam
- RestorePeakFromHistory -> definir pico OnlyUp do histórico recente de trades fechados ao iniciar
- RestorePeakLookbackDays -> dias de lookback para restaurar o pico (0 = todo o histórico)
- ManualBalanceForLotSizing -> capital fixo para sizing se > 0
- RiskMultiplier -> multiplicador global no lote calculado
- MarginCallProtection -> reservar margem em pendentes do mesmo lado e limitar lote ao orçamento de margem
- BaseCurrency -> USD, EUR, GBP, HKD, SGD ou custom em contas não USD
- CustomBaseCurrencyPair -> símbolo da corretora para conversão quando BaseCurrency for custom
GMT
- Broker_GMT_OFFSET_Summer -> offset GMT manual da corretora no verão (horas)
- Broker_GMT_OFFSET_Winter -> offset GMT manual da corretora no inverno (horas)
- AutoGMT -> detectar GMT da corretora automaticamente (ignora offsets manuais)
Filtros de notícias
- EnableNFP_Filter -> ativar janela de proteção NFP
- NFP_CloseOpenTrades -> fechar posições antes do NFP
- NFP_ClosePendingOrders -> cancelar pendentes antes do NFP
- EnableIR_Filter -> ativar janela IR / FOMC
- IR_CloseOpenTrades -> fechar posições antes do IR
- IR_ClosePendingOrders -> cancelar pendentes antes do IR
- EnableCPI_Filter -> ativar janela CPI
- CPI_CloseOpenTrades -> fechar posições antes do CPI
- CPI_ClosePendingOrders -> cancelar pendentes antes do CPI
Minutos antes/depois por estratégia estão no portfólio, não são parâmetros separados.
Horário de negociação
- UseTradingTimeZones -> aplicar janela semanal segunda–sexta
- KillPending -> cancelar pendentes fora da janela
- KillOpen -> fechar posições fora da janela
- MondayOpenHour / MondayOpenMinute -> janela abre na segunda neste horário da corretora
- FridayCloseHour / FridayCloseMinute -> janela fecha na sexta neste horário da corretora
Várias estratégias também usam uma janela de sessão diária integrada (horas de início/fim por estratégia) como parte do preset do portfólio. Não são entradas de usuário separadas.
Dashboard
- DisableDashboardInTesting -> ocultar dashboard no Strategy Tester
- DashboardUpdateSeconds -> intervalo de atualização do dashboard (seg)
Spread Filter
- MaxSpreadPips -> spread máx. em pontos MT5 (convenção 3 dígitos); escalado por DefaultValue; 0 = off
- RemovePendingSpreadSeconds -> remover pendings após spread alto sustentado (seg.); 0 = nunca remover
Conformidade Prop Firm
Todos os inputs padrão off / zero — impacto zero no desempenho quando desativados.
- MaxRandomizationPips -> offset prop firm em entradas/saídas; único vs outros usuários do EA (0 = off)
- EnablePropFirmCompliance -> interruptor mestre; deve ser true para as regras abaixo terem efeito
- PF_MaxDailyDrawdownPercent -> perda diária máx. de equity como % da base diária (0 = off)
- PF_MaxDailyDrawdownMoney -> perda diária máx. de equity na moeda da conta (0 = off)
- PF_DailyResetHour -> hora corretora/servidor (0–23) quando a janela diária reinicia
- PF_DailyLossBufferPercent -> margem de segurança antes do limite rígido (padrão 10%)
- PF_DisallowHedging -> bloqueia entradas na direção oposta; remove pendings opostos
- PF_MaxTotalPendingOrders -> limite de ordens pendentes totais do EA (0 = off)
Configuração recomendada
- Símbolo: petróleo bruto WTI — anexe o EA ao gráfico US crude / WTI da sua corretora. O mesmo instrumento costuma ser listado com tickers diferentes; nos nossos terminais de teste vimos: XTIUSD, USOUSD, USOUSD.s, WTI, SpotCrude. O SomaOil foi projetado para símbolos que começam com XTIUSD; se a corretora usar outro nome, abra a Observação do Mercado e pesquise WTI, crude, oil ou USO para encontrar o gráfico correspondente.
- Timeframe: qualquer (o EA lê seus próprios timeframes internamente)
- Tipo de conta: recomenda-se conta ECN / RAW-spread para spreads apertados
- Saldo mínimo recomendado: 2000 USD para o risco padrão. O lote calculado não pode ser inferior a 0.01 por trade, portanto contas abaixo desse nível não podem reduzir mais o risco.
- VPS: recomendado para execução 24/5 estável
- Adicione "https : // ea-license-server . somatrade . org" e "https : // www . worldtimeserver . com/" às URLs permitidas no MT5 (Ferramentas - Opções - Consultores especialistas)
Resumo
- 20 estratégias de breakout pré-ajustadas em um único gráfico WTI (XTIUSD)
- Dois intervalos de otimização com OOS validado cruzadamente, 2018–2026
- Timeframes: D1, H12, H8, H4 e H1
- Saídas em camadas com break-even e trailing stops
- Proteção integrada de notícias dos EUA com filtragem de falsos positivos
- Randomização opcional de entradas/saídas para unicidade em prop firm (MaxRandomizationPips)
- Modo opcional de conformidade prop firm (DD diário máx., no-hedge, limite de pendentes) — desligado por padrão
- Dashboard ao vivo completo no gráfico
- Lançamento com preço escalonado transparente: início 100 USD, +100 USD a cada 10 cópias, máximo uma vez por dia
