Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
68
Avaliação:
(4)
Publicado:
Atualizado:
\MQL5\Files\
trend_detector.onnx (6444.66 KB)
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Backtest EURUSD 01/03/2025 - 20/01/2026 Timeframe M5(treinamento ONNX AI especificamente para M5-M15)

Backtest GBPUSD 01/03/2025 - 20/01/2026 Timeframe M5 (treinamento ONNX AI especificamente para M5-M15)


1. Visão geral

O SidewaysMartingale é um Consultor Especializado projetado para negociar em mercados laterais (com limite de faixa) usando uma estratégia de recuperação de martingale, aprimorada com um detector de tendências baseado em IA implementado por meio de um modelo ONNX.

O EA combina:

  • Classificação de tendência de IA (lateral / alta / baixa)

  • Indicador de envelopes para entradas baseadas em faixas

  • Escalonamento controlado da posição da martingale

  • Fechamento de cesta baseado em lucro

  • Parada de emergência baseada em margem

A ideia central é:

Negocie somente quando o mercado for estatisticamente classificado como lateral e evite adicionar posições de martingale quando for detectada uma forte tendência.


2. Detector de tendência de IA (integração ONNX)

Saída do modelo ONNX

O modelo ONNX retorna:

  • Um rótulo previsto (não usado diretamente)

  • Um vetor de probabilidade com três probabilidades:

Variável Significado
prob_side Probabilidade de que o mercado esteja em uma posição lateral/abrangente
prob_bull Probabilidade de que o mercado esteja em alta (tendência de alta)
prob_bear Probabilidade de o mercado estar em baixa (tendência de baixa)

Essas probabilidades são extraídas como:

float prob_side = prob_data[0].values[0]; float prob_bull = prob_data[0].values[1]; float prob_bear = prob_data[0].values[2];


3. Engenharia de recursos (entradas de IA)

O EA alimenta o modelo ONNX com 9 recursos projetados:

Característica Índice Descrição
f[0] Inclinação da EMA200 (direção e força da tendência)
f[1] Distância do preço em relação à EMA200
f[2] Valor ATR (volatilidade)
f[3] Intervalo de velas normalizado pelo ATR
f[4] Pressão de rompimento vs. alta anterior
f[5] Dominância do corpo da vela
f[6] Dia da semana
f[7] Hora do dia
f[8] Direção da vela anterior


Esses recursos permitem que o modelo de IA detecte:

  • Volatilidade do mercado

  • Força da tendência

  • Padrões de comportamento baseados no tempo

  • Comportamento da estrutura de preços


4. Lógica de detecção de mercado lateral

Um mercado é considerado lateral quando:

bool is_sideway = (prob_side >= InpAISidewayThreshold);

Exemplo:

  • Se InpAISidewayThreshold = 0,70

  • Então, é necessário ter pelo menos 70% de confiança para classificar o mercado como lateral

Nenhuma nova negociação é aberta a menos que essa condição seja atendida.


5. Lógica de entrada (escalpelamento em intervalo)

O EA usa Envelopes para detectar os extremos da faixa.

Entrada de compra

if(price_close <= lower[0] && is_sideway)

  • O preço toca ou rompe o envelope inferior

  • A IA confirma um mercado lateral

  • Abre uma posição de COMPRA

Entrada de venda

else if(price_close >= upper[0] && is_sideway)

  • O preço toca ou rompe o envelope superior

  • A IA confirma um mercado lateral

  • Abre uma posição de VENDA

Isso garante que as negociações sejam feitas somente nos extremos da faixa durante condições que não sejam de tendência.


6. Lógica de recuperação de Martingale

Quando já existem posições, o EA aplica uma martingale baseada na distância:

  • A nova posição é aberta somente se o preço se afastar por uma distância definida de pip

  • O tamanho do lote aumenta usando um multiplicador (LotMultiplier)

  • O número máximo de negociações é limitado ( MaxTradesInSeries )

Verificação de distância

if(dist >= reqDist)


7. Filtro de segurança de IA para Martingale

Esse é um mecanismo crítico de controle de risco.

Antes de adicionar uma nova posição de martingale, o EA verifica:

Se a série atual é de COMPRA

if(s_seriesType == POSITION_TYPE_BUY && prob_bear >= InpAISafetyThreshold) return;

Se a série atual é VENDA

if(s_seriesType == POSITION_TYPE_SELL && prob_bull >= InpAISafetyThreshold) return;

Significado:

  • Se a IA detectar uma forte tendência oposta

  • E a confiança exceder o InpAISafetyThreshold

  • A expansão de Martingale é interrompida

Isso evita:

  • Martingale durante fortes rompimentos

  • Rebaixamentos profundos causados pela continuação da tendência


8. Meta de lucro e fechamento de cesta

O EA monitora o lucro flutuante total em todas as posições:

if(totalProfitUSD >= TakeProfitTargetUSD)

Uma vez atingido:

  • Todas as posições são fechadas

  • A série Martingale é reiniciada

  • O EA espera por uma nova configuração lateral

Essa abordagem trata todas as posições como uma única cesta de negociação.


9. Gerenciamento de risco

Parada de emergência baseada em margem

if(((bal - eq)/bal)*100.0 >= StopLossByMarginPercent)

Se o drawdown do patrimônio exceder uma porcentagem definida:

  • Todas as posições são imediatamente fechadas

  • Evita cenários de chamada de margem


10. Resumo da estratégia

Componente Objetivo
Detector de tendências de IA Classifica o regime de mercado
prob_side Permite a negociação somente em intervalos
prob_bull / prob_bear Bloqueia a martingale durante tendências fortes
Envelopes Define os extremos do intervalo
Martingale Recuperação em mercados laterais
Cesta TP Saída rápida após reversão à média
Margem SL Proteção no nível da conta

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/68537

nModificar pedidos nModificar pedidos

Função para modificar posições abertas e ordens pendentes

nPosições de lucros e perdas nPosições de lucros e perdas

Calculadora de lucros/perdas de posições (ordens abertas)

VR Breakdown level - Estratégia de negociação baseada na ruptura do High ou Low anterior VR Breakdown level - Estratégia de negociação baseada na ruptura do High ou Low anterior

Estratégia de negociação baseada na simples ruptura dos níveis anteriores de High ou Low

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.