Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
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:
46
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

GBPUSD Ciclo 1HRC4 - verdadeiro backtest não otimizado


Este Expert Advisor é um sistema multiestratégia dividido em quatro subsistemas de negociação independentes (Ciclo 1 a Ciclo 4). Cada ciclo opera com seu próprio Número Mágico, indicadores, gatilhos de entrada e parâmetros exclusivos de gestão de capital.

1. Lógica do Ciclo 1: Confluência de múltiplos indicadores

O Ciclo 1 se baseia em um filtro composto que combina até três Médias Móveis (MA), um Índice de Força Relativa (RSI) e um Índice de Porcentagem de Williams (WPR).

Gatilhos de entrada

Uma variável central, c1_signal, atua como um registro binário para garantir que os indicadores não entrem em conflito. Se o indicador A emitir um sinal de compra, c1_signal passa a ser 1. Se, em seguida, o indicador B emitir um sinal de venda, c1_signal é reinicializado para 0, invalidando a operação.

  • Médias Móveis 1, 2 e 3:

    • Condição de compra: a barra anterior fecha acima da MA, e a barra atual abre acima da MA ($Close[1] > MA$ e $Open[0] > MA$).

    • Condição de venda: A barra anterior fecha abaixo da MA, e a barra atual abre abaixo da MA ($Close[1] < MA$ e $Open[0] < MA$).

  • Filtro RSI:

    • Condição de compra: o RSI cai abaixo do limite de sobrevenda (RSI_Buy_Level, por exemplo, 30).

    • Condição de venda: O RSI sobe acima do limite de sobrecompra (RSI_Sell_Level, por exemplo, 70).

  • Filtro WPR:

    • Condição de compra: o WPR cai abaixo do WPR_Buy_Level (por exemplo, -80).

    • Condição de venda: o WPR ultrapassa o WPR_Sell_Level (por exemplo, -20).

Processamento de sinais

  • Regra de sinais reversos: Se Reverse_Signals = true, um sinal final de compra (1) se transforma em um sinal de venda (2) e vice-versa.

  • Restrição de uma operação por barra: O EA verifica se o preço de abertura atual corresponde a c1_open_price. Se corresponder, uma posição já foi executada nessa barra, e novas execuções são bloqueadas até que uma nova barra seja aberta.

2. Lógica do Ciclo 2: Envelopes de Acompanhamento de Tendência

O Ciclo 2 utiliza um indicador clássico de envelopes de banda dupla para identificar rompimentos estruturais do mercado.

  • Gatilho de compra: a barra anterior fecha acima da banda superior do Envelope, e a barra atual abre acima dela ($Close[1] > UpperBand$ e $Open[0] > UpperBand$). Isso pressupõe uma forte ruptura com momentum de alta.

  • Gatilho de venda: a barra anterior fecha abaixo da banda inferior do Envelope, e a barra atual abre abaixo dela ($Close[1] < LowerBand$ e $Open[0] < LowerBand$), indicando uma quebra de tendência de baixa.

  • Inversão de sinais: Se Reverse_Signals2 = true, os rompimentos são convertidos em armadilhas de falso rompimento (suaviza o rompimento de baixa/alta).

3. Lógica do Ciclo 3: Reversão à Média dos Envelopes

O Ciclo 3 acompanha parâmetros idênticos aos do Ciclo 2, mas inverte a lógica de execução padrão para visar a reversão à média (atenuando os extremos).

  • Gatilho de compra: A barra anterior fecha acima da banda do Envelope Superior, e a barra atual abre acima dela. Lógica: O código atribui um sinal de venda aqui, pois presume que o ativo está sobrevalorizado e recuará para dentro das bandas.

  • Gatilho de venda: A barra anterior fecha abaixo da banda inferior do Envelope, e a barra atual abre abaixo dela. Lógica: O código atribui um sinal de compra aqui, apostando em uma recuperação imediata a partir da zona de sobrevenda.

4. Lógica do Ciclo 4: Ruptura de distância pontual dos Envelopes

O Ciclo 4 introduz uma restrição rígida de volatilidade/distância em pips ao indicador Envelopes, atuando como um sistema agressivo de rompimento.

  • Gatilho de compra: A distância entre a banda inferior do Envelope e o fechamento anterior é maior que Distância em pontos, E a distância entre a banda inferior do Envelope e o preço de compra atual também é maior que Distância ($LowerBand - Close[1] > Distância$ e $LowerBand - Bid > Distância$).

  • Gatilho de venda: A distância entre o fechamento anterior e a banda superior, bem como entre o preço de compra atual e a banda superior, excedem a “Distância” ($Close[1] - UpperBand > Distance$ e $Bid - UpperBand > Distance$).

5. Saída, Encerramento da Cesta e Lógica de Risco

A arquitetura de gerenciamento de saída não utiliza ordens padrão de Stop Loss (SL) ou Take Profit (TP) por posição. Em vez disso, ela se baseia em um Sistema Global de Acompanhamento de Cesta de Patrimônio da Conta mapeado por ciclo.

Captura de marcos

Quando a contagem de posições de um ciclo passa de 0 para 1 (rastreada por meio de c1_Buycount == 0 ou c1_Sellcount == 0), o EA registra o patrimônio líquido de referência exato da conta de negociação naquele momento:

$$\text{Patrimônio de Referência} = \text{AccountInfoDouble}(\text{ACCOUNT\_EQUITY})$$

Usando essa linha de base, ele define metas globais estáticas para aquela direção específica de negociação:

  • Meta de Take Profit: Se target_amount for especificado, ele atribui $\text{Baseline} + \text{target\_amount}$. Caso contrário, ele usa uma fórmula percentual:

    $$\text{Preço-alvo} = \text{Referência} + \left(\frac{\text{Referência} \times \text{target\_percent}}{100}\right)$$
  • Meta de Stop Loss: Utiliza uma restrição de drawdown percentual em relação ao patrimônio líquido registrado no instantâneo:

    $$\text{Preço de Risco} = \text{Linha de Base} - \left(\frac{\text{Linha de Base} \times \text{Porcentagem de Risco da Conta}}{100}\right)$$

Verificação dinâmica da cesta

A cada tick, o EA calcula o total acumulado de lucros/perdas flutuantes em tempo real, swaps e comissões para todas as posições ativas que correspondam ao Número Mágico e ao tipo de operação (MyAccountProfit_Buy ou MyAccountProfit_Sell) desse ciclo específico.

$$\text{Valor atual da carteira} = \text{Patrimônio de referência} + \text{Lucro/prejuízo flutuante}$$

Execução da saída

Se $\text{Valor atual da carteira} \ge \text{Preço-alvo}$ (meta de lucro atingida) OU $\text{Valor atual da carteira} \le \text{Preço de risco}$ (ultrapassagem do limite máximo de risco):

  1. O EA chama a função ClosePositions().

  2. Ele percorre todas as posições de mercado de trás para frente, filtrando por correspondência entre o Número Mágico e o Tipo de Posição.

  3. Cada operação correlacionada é liquidada instantaneamente por meio de uma ordem de mercado.

  4. O rastreador de ciclo de direção é reinicializado para 0, preparando o EA para estabelecer um instantâneo de referência totalmente novo no próximo sinal do indicador estrutural.

6. Lógica de dimensionamento (gestão de capital)

Os cálculos de volume são realizados dinamicamente pela rotina getLots(int cycle):

  • Lotes fixos: Se AutoLots for falso, ela retorna a configuração padrão de tamanho de lote codificada (por exemplo, LotSize = 0,01).

  • Escalonamento dinâmico de risco: Se AutoLots = true, o sistema ajusta automaticamente o volume da operação com base na margem livre:

    1. Ele consulta a margem exata necessária para lidar com uma transação padrão de 1,0 lote no ativo atual usando OrderCalcMargin.

    2. Ele projeta uma capacidade de investimento viável usando a fórmula:

      $$\text{Volume Projetado} = \frac{\text{MargemLivreDaConta} \times \left(\frac{\text{Lots\_Risk}}{100}\right)}{\text{Margem por 1,0 lote}}$$
    3. O resultado final é limitado de acordo com as restrições impostas pela corretora, utilizando MathMin e MathMax para garantir que ele se encaixe precisamente no intervalo válido entre SYMBOL_VOLUME_MIN e SYMBOL_VOLUME_MAX, arredondado corretamente para o tamanho de passo do ativo da bolsa mais próximo (SYMBOL_VOLUME_STEP).

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

KCI Volatility Distance KCI Volatility Distance

A Distância de Volatilidade KCI é um algoritmo avançado e adaptativo, meticulosamente projetado para mapear o momentum do mercado e a direção da tendência com precisão absoluta. Utilizando um cálculo proprietário baseado em matriz, essa ferramenta filtra dinamicamente o ruído do mercado e oferece uma perspectiva estritamente quantitativa sobre a força direcional. Construída com um núcleo de Programação Orientada a Objetos (OOP) altamente otimizado, ela foi projetada tanto para proporcionar clareza visual nas negociações quanto para uma integração perfeita com Expert Advisors ou módulos de Aprendizado de Máquina, garantindo um desempenho ultraleve da CPU em diversos ativos.

Double Enevlopes (Historical Gauged) Double Enevlopes (Historical Gauged)

Uma ferramenta e um sistema de gestão de serviços de babá :D

MA + Envelope Breakouts MA + Envelope Breakouts

Rupturas com base em canal ou banda de envelope; lógica de múltiplos EAs em um único EA

CKS Position Risk Dashboard CKS Position Risk Dashboard

Um painel do MT5 somente para leitura que exibe o dimensionamento de lotes com base no risco, a saúde da conta, os limites de volume da corretora e a exposição atual aos símbolos.