MultiStrat Engine EA
- Experts
- Julien Favre
- Versão: 1.0
- Ativações: 5
O EA MultiStrat Engine baseia-se numa regra de ouro fundamental: cada operação aberta é uma operação totalmente assumida . Sem Stop Loss, nenhuma perda é concretizada — as posições são mantidas até o retorno ao equilíbrio ( Ponto Zero ) .
Um Expert Advisor (EA) projetado para automatizar completamente a gestão de posições em todos os tipos de instrumentos financeiros (Forex, ações, índices, commodities ). Ele incorpora uma arquitetura modular excepcionalmente rica, combinando mais de 28 modos de negociação distintos, gestão dinâmica de risco, um sistema de compensação de taxas de corretagem e um painel HTML interativo para análise comparativa de backtesting.
Arquitetura geral
Expert Advisor (EA) baseia-se numa clara separação entre as ordens de COMPRA e VENDA , cada uma com seus próprios parâmetros independentes : modo trailing stop , período gráfico, tamanho do lote, take profit , stop loss, distância entre ordens e comportamento dinâmico. Essa dualidade permite a combinação de estratégias assimétricas ou perfeitamente simétricas, dependendo das necessidades do trader.
Os mais de 28 métodos de negociação
Lado COMPRADOR :
- BUY_MODE_NONE — Colocação de uma ordem BuyStop com trailing stop simples e TP individual fixo por posição.
- BUY_MODE_NONE_CANDLE — Idêntico, mas com fechamento global acionado pela vela se o lucro líquido total for positivo.
- BUY_CLOSE_CANDLE — Feche todas as posições de COMPRA em cada nova vela se o lucro total for positivo.
- BUY_CUMUL_SINGLE — Take Profit cumulativo virtual: a soma ponderada dos pips ( líquida de taxas) de todas as posições de COMPRA deve atingir o TP configurado antes do fechamento global.
- BUY_CUMUL_MULTI — Variante CUMUL: o preço de venda alvo é multiplicado pela relação entre o volume total e o volume base, compensando o acúmulo de lotes.
- BUY_CUMUL_POS — Preço de compra progressivo por número de posições: cada posição adicional reduz o preço de compra unitário de acordo com um fator configurável, com um valor mínimo.
- BUY_HEDGE_CANDLE — Cada entrada de COMPRA gera automaticamente uma posição de VENDA (hedge) proporcionalmente maior; fecha na vela se o lucro total for positivo .
- COMPRAR_HEDGE_ÚNICO — Hedge automático + TP cumulativo ÚNICO.
- COMPRAR_HEDGE_MULTI — Hedge automático + TP cumulativo MULTI.
- BUY_HEDGE_SINGLE_ADD_SELL_TP — Hedge único com compensação integrada de perdas flutuantes do hedge de venda no cálculo do TP de compra.
- COMPRAR_HEDGE_MULTI_ADICIONAR_VENDER_TP — Proteger MULTI com a mesma compensação.
- BUY_DIRECT_HEDGE — Hedge direto permanente: a cada nova ordem de COMPRA executada , o hedge de VENDA anterior é substituído por um novo . O hedge de VENDA é fechado automaticamente após o fechamento bem-sucedido de uma ordem de COMPRA .
- COMPRA_HEDGE_DIRETO_ADICIONAR_PRONTO_DE_VENDA — HEDGE_DIRETO com inclusão de perdas de VENDA no PRONTTO_DE_COMPRA.
- BUY_DIRECT_HEDGE_ADD_SELL_TP_AUTO_MAX — Idêntico ao cálculo automático do preço máximo de compra por meio de médias móveis.
- BUY_PARTIAL_CLOSURE — Sistema sofisticado de fechamento parcial : o lote principal é dividido em unidades , unidades auxiliares são posicionadas progressivamente de acordo com o nível da grade alcançado, e os lucros combinados da unidade auxiliar + unidade principal desencadeiam uma redução progressiva na negociação principal.
- BUY_LADDER_PROFIT — Fechamento individual de cada posição assim que seus pips líquidos atingirem o TP (Take Take-Off) configurado ( escala de lucro ) .
- COMPRAR_PARA_RIDAR_A_ONDA — Fechamento rápido assim que 30% do TP for atingido, seguido de reabertura imediata para "surfar" a próxima onda.
- BUY_VIX_REVERSION — Especialização VIX : fechamento da posição se o VIX ultrapassar os limites para retorno à média.
- COMPRA_MOMENTUM_BURST — Fechamento ultrarrápido a 20% do preço-alvo, seguido de múltiplas entradas com volume reduzido para capitalizar os impulsos de momentum.
- BUY_SCALP_ACCUMULATOR — Faça scalping a 15% do TP por posição, seguido de uma reabertura imediata para acumular ganhos microfracionários .
- BUY_VIX_OSCILLATION_MASTER — Gerenciamento avançado de VIX em múltiplas zonas com regras de fechamento dependentes do preço de entrada e do nível atual do VIX.
- BUY_PROFIT_COMPOUNDING — Reinvestimento amplificado : dependendo do lucro obtido , o lote de reentrada é multiplicado ( até x2 ) .
- BUY_BREAKOUT_SURFER — Detecção de momentum no gráfico M1 : fechamento a 70% do TP, reentrada condicional se o rompimento for detectado .
- BUY_ADAPTIVE_PYRAMID — TP adaptativo calculado de acordo com a volatilidade ( desvio padrão dos preços de abertura) e o número de posições em aberto.
- BUY_GRID_RECOVERY_SMART — Detecção inteligente de recuperação da rede : feche se o lucro for positivo e o preço estiver acima da mediana da rede , depois reentre com volume reduzido .
- BUY_PATIENCE_ACCUMULATOR — TP (Taxa de Propósito) diminuindo ao longo do tempo ( −1 % por hora), para incentivar a paciência e compensar operações mantidas por um longo período.
- BUY_FIBONACCI_ZONES — Fechamento nos níveis de Fibonacci de 50%, 61,8% ou 78,6%, calculados a partir dos preços de abertura das posições ativas.
- BUY_VOLATILITY_RIDER — TP adaptativo baseado no ATR M1: quanto maior a volatilidade , menor o TP para garantir ganhos rapidamente.
- BUY_PROFIT_PYRAMID — Fechamento individual da pirâmide a 60% do TP, com reabertura de uma nova camada se 2 ou mais posições permanecerem ativas.
Os modos de VENDA são perfeitamente simétricos , com suas próprias variantes: ÚNICO, MÚLTIPLO, VELA, HEDGE_DIRETO, ADICIONAR_COMPRA_TP, etc.
sistema de grade dinâmica
EA suporta dois regimes de lote para cada lado :
- Modo FIXO : lote constante configurável pelo parâmetro LotSizeBuy / LotSizeSell.
- Modo GRID : progressão geométrica de lotes de acordo com BaseVolume × GridMultiplier^N, com um limite máximo de MaxBaseVolume. O multiplicador pode ser 1,0 (grade linear ) ou maior (grade martingale).
A distância entre as ordens (DistanceOrderBuy/Sell) e o limite de reajuste ( TrailingDistanceOrderBuy /Sell) controlam precisamente o reposicionamento das ordens pendentes a cada tick ou vela.
Gestão de pedidos
A função ManagePendingOrders reposiciona automaticamente as ordens BuyStop, BuyLimit, SellStop e SellLimit para mantê-las à distância correta do preço atual. Ela incorpora a lógica NewOrdersAtHigherPrice (dinâmica): no modo "apenas baixa" para ordens de COMPRA, somente as ordens com preço inferior à mínima atual são mantidas ; ordens duplicadas muito próximas são excluídas . Um mecanismo de proteção impede a exclusão da última ordem/posição restante.
Compensação automática de taxas de corretagem
comissões reais pagas por posição (com base no histórico de negociações), os swaps acumulados e estima a comissão de saída futura. Essas taxas são convertidas em pips por meio do MoneyToPoints e adicionadas automaticamente ao Take Profit (TP) de cada posição (AdjustTPWithRealFees), garantindo que cada fechamento seja realmente lucrativo, descontadas as taxas. Um sistema de cache configurável (CommissionCacheSeconds) evita recálculos excessivamente frequentes .
Gestão automática de sebes e pernas
Os modos HEDGE geram automaticamente uma perna oposta a cada nova entrada . No modo DIRECT_HEDGE , apenas uma perna de VENDA é mantida simultaneamente com as posições de COMPRA ativas, sendo substituída a cada nova compra . O fechamento de uma posição de COMPRA vencedora (detectada por meio de OnTradeTransaction e ProcessDealTicket) aciona automaticamente o fechamento das pernas de VENDA associadas . A proporção do lote de hedge é configurável por meio de predefinições (1:1, 1:2, 1:3, 1:4, 2:1, 3:1) ou um valor personalizado .
sinais virtuais EDGE
Os modos de negociação HEDGE utilizam sinais virtuais : em vez de colocar uma ordem pendente tradicional, o Expert Advisor (EA) mantém um sinal interno (g_buyEdgeVirtualSignalActive) com trailing stop dinâmico. O sinal só é convertido em uma negociação real quando o preço o cruza , minimizando falsos alarmes e permitindo a recalibração automática caso a restrição de distância mude.
Preço máximo de compra dinâmica (MA)
O parâmetro MaximumPurchasePriceSource calcula automaticamente o preço máximo de compra com base em duas médias móveis configuráveis ( período , método EMA /SMA/SMMA/LWMA, intervalo de tempo). A média das duas médias móveis é compensada por uma porcentagem configurável ( MaximumPurchasePriceAutoOffsetPct) para criar uma zona de segurança dinâmica . Uma linha laranja no gráfico indica o nível atual .
Sistema avançado de fechamento parcial ( PARCIAL_CLOSURE )
Este modo exclusivo divide automaticamente cada lote principal em unidades otimizadas (adaptadas ao SYMBOL_VOLUME_STEP ). Operações auxiliares são colocadas no mercado de acordo com o nível da grade alcançado. Quando a combinação de profit_helper e main_unit_profit atinge o objetivo de take profit, a operação auxiliar é fechada e uma unidade da operação principal é reduzida ( PositionClosePartial ) . O ciclo se repete até que a operação principal seja totalmente liquidada .
Gestão avançada do tempo
Cada lado ( COMPRA /VENDA) possui um período de tempo independente com hora e minuto de início configuráveis . O cálculo de validade (IsValidTradingTime) alinha os gatilhos a ciclos precisos a partir do horário de início , evitando duplicatas dentro do mesmo candle. Após o fechamento , uma lógica de " reinicialização rápida" permite a entrada na primeira metade do próximo ciclo sem esperar pelo próximo alinhamento completo. Um parâmetro opcional, BlockTradingAroundSessionEdges , bloqueia todas as negociações nos 5 minutos que antecedem ou sucedem a abertura ou o fechamento das sessões.
Controle orçamentário e proteção de capital
A função CanAffordNextTrade simula o custo total (posições existentes + nova negociação) caso o preço retorne a zero e bloqueia novas entradas se esse custo exceder o capital alocado (MaxAccountBalance em backtesting , BackTestStopThreshold em negociação real). Esse mecanismo de proteção evita chamadas de margem não intencionais, independentemente da configuração da grade.
Exclusão de períodos (períodos fantasmas)
É possível excluir até dois períodos do calendário do backtest. O Expert Advisor (EA) aguarda o fechamento natural de todas as operações em aberto antes de suspender qualquer nova atividade durante o período fantasma . O número de dias excluídos é automaticamente deduzido do cálculo dos períodos sem lucro para evitar impactos negativos nas estatísticas de desempenho.
Sistema de relatórios mensais e painel de controle HTML
Ao final de cada backtest, o Expert Advisor (EA) gera um arquivo CSV cumulativo (backtest_monthly_totals.csv) registrando todas as execuções com: pontuação OnTester, totais mensais, drawdown máximo, número máximo de dias sem ganhos e parâmetros de identificação . Um painel HTML interativo ( backtest_monthly_totals.html ) é regenerado para cada execução, permitindo a comparação visual de todos os backtests por meio de gráficos de pizza mensais, tabelas de classificação e duas pontuações: retorno puro ( OnTester) e uma pontuação balanceada ( penalizando a irregularidade mensal por meio do desvio padrão normalizado ) . Filtros dinâmicos (número exibido , ponderação da irregularidade , exclusão de meses negativos ) são acessíveis diretamente no navegador, sem necessidade de recarregar a página.
Critérios para o encerramento automático do backtest
Diversos mecanismos de parada antecipada protegem a otimização :
- Cenário de drawdown : interromper se saldo − patrimônio ≥ BackTestStopThreshold.
- Mês não positivo no calendário : opção StopIfNonPositiveClosedMonth para interromper assim que um mês completo fechar com saldo ≤ € 0 .
- Filtro de janela deslizante mensal : interromper se o lucro nos últimos N meses fechados for menor que o limite MonthlyMinProfitThreshold.
- Dias sem ganhos : interromper a operação se não houver nenhuma operação vencedora por X dias corridos ( excluindo períodos fantasmas ) .
Exibição gráfica em tempo real
Um painel configurável (cores, tamanhos, posições) exibe em tempo real, para cada ativo/número mágico monitorado : número de posições de COMPRA/VENDA em aberto, horário da corretora, spread atual, tempo até a próxima ordem, níveis de saldo zero (ponto de equilíbrio para posições compradas e vendidas) com linhas horizontais no gráfico, bem como lucros/prejuízos em 7 períodos ( float, dia, ontem, 7 dias, 14 dias, mês atual, mês anterior ) com coloração dinâmica em verde/vermelho. O TP virtual é plotado em uma linha no gráfico para os modos cumulativos.
Stop Loss Móvel
Um trailing stop padrão está disponível em cada lado com TrailingStartBuy /Sell (limiar de ativação em pips) e TrailingStopLossBuy/Sell (distância de retenção). Nos modos CUMUL e HEDGE, o trailing stop é calculado com base na soma ponderada dos pips de todas as posições ativas, e não posição por posição.
Compatibilidade e configuração
- Compatível com todos os instrumentos MT5 (Forex, CFDs, ações, índices, commodities , VIX ).
- Número mágico configurável para permitir que várias instâncias coexistam na mesma conta .
- Distribuição personalizada em backtesting para simular condições realistas .
- Os registros de depuração podem ser ativados/ desativados para evitar impactos no desempenho da otimização.
- Verificação de consistência de parâmetros na inicialização com bloqueio em caso de configuração inválida .
O rastreamento SL só está ativo nos seguintes modos.
Lado COMPRADOR :
- MODO_DE_COMPRA_NENHUM
- COMPRA_DIRETA_HEDGE
- COMPRA_DIRETA_HEDGE_ADD_VENDA_TP (família)
- COMPRAR_CUMUL_UNIDADE
- COMPRAR_CUMUL_MULTI
- COMPRAR_HEDGE_ÚNICO
- COMPRAR_HEDGE_MULTI
- COMPRA_HEDGE_ADICIONAR_VENDA_ÚNICO_TP
- COMPRAR_HEDGE_MULTI_ADD_VENDER_TP
- COMPRAR_CUMUL_POS
Lado da VENDA :
- MODO_DE_VENDA_NENHUM
- VENDA_HEDGE_DIRETO
- VENDA_HEDGE_DIRETO_ADICIONE_COMPRE_TP
- VENDER_CUMUL_SINGLE
- VENDER_CUMUL_MULTI
- VENDER_HEDGE_ÚNICO
- VENDER_HEDGE_MULTI
- VENDA_HEDGE_ADICIONAL_ÚNICO_COMPRA_TP
- VENDA_HEDGE_MULTI_ADD_COMPRA_TP
- VENDA_CUMUL_POS
