Olá, traders! Hoje vamos falar sobre um dos indicadores mais utilizados no mercado: a Média Móvel. Este especialista em sinais de negociação utiliza uma média móvel única para abrir e fechar posições. As operações acontecem quando a média móvel encontra o preço na barra mais recente (com índice igual a 1). O tamanho do lote é otimizado através de um algoritmo especial.
O consultor especializado analisa a relação entre a média móvel e o gráfico de preços do mercado. Essa verificação é feita pela função CheckForOpen(). Se a média móvel estiver acima do preço de abertura, mas abaixo do preço de fechamento, uma posição de COMPRA será aberta. Por outro lado, se a média estiver abaixo do preço de abertura e acima do preço de fechamento, uma posição de VENDA será ativada.
A gestão de risco aplicada neste especialista é simples, mas eficaz: o controle do volume de cada posição depende dos resultados das transações anteriores. Isso é implementado pela função LotsOptimized(). O tamanho básico do lote é calculado com base no risco máximo permitido:
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
O parâmetro MaximumRisk é a porcentagem de risco básica para cada transação, geralmente variando entre 0,01 (1%) e 1 (100%). Por exemplo, se a margem livre (AccountFreeMargin) for de R$20.500 e as regras de gestão de capital indicarem um risco de 2%, o lote básico será: 20500 * 0.02 / 1000 = 0.41. É essencial controlar a precisão do tamanho do lote e normalizar o resultado dentro dos valores permitidos. Normalmente, são permitidos lotes fracionários com passo de 0,1. Portanto, uma transação com volume de 0,41 não será realizada. Para normalizar, usamos a função NormalizeDouble() com precisão de até 1 dígito após a vírgula, resultando em um lote básico de 0,4. Essa abordagem permite aumentar os volumes das operações conforme o sucesso nas negociações, ou seja, operar com reinvestimento. Este é o mecanismo fundamental com gestão de capital obrigatória para aumentar a efetividade das operações.
O DecreaseFactor é o fator pelo qual o tamanho do lote será reduzido após operações não lucrativas. Valores normais para este fator são 2, 3, 4 ou 5. Se as transações anteriores foram desfavoráveis, os volumes subsequentes diminuirão pelo fator DecreaseFactor para passar pela fase de perdas. Esta é a principal característica do algoritmo de gestão de capital. A ideia é simples: se as negociações estão trazendo lucro, o especialista opera com o lote básico para maximizar os ganhos. Após a primeira transação não lucrativa, o especialista "reduz a velocidade" até que uma nova operação positiva ocorra. O algoritmo permite desativar essa "redução de velocidade" ao especificar DecreaseFactor = 0. O número de transações consecutivas não lucrativas é calculado no histórico de negociações. O lote básico será recalculado com base nisso:
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Dessa forma, o algoritmo efetivamente reduz o risco resultante de uma sequência de operações não lucrativas. O tamanho do lote é sempre checado para o tamanho mínimo permitido ao final da função, pois os cálculos anteriores podem resultar em lot = 0:
if(lot<0.1) lot=0.1;
O especialista é projetado principalmente para operar em períodos diários e no modo de teste, deve ser realizado com preços de fechamento. Ele fará negociações apenas na abertura de uma nova barra, por isso os modos de modelagem a cada tick não são necessários.
Os resultados dos testes são apresentados no relatório.
Relatório do Testador de Estratégia
Média Móvel
Símbolo EURUSD (Euro vs Dólar Americano) Período 1 Hora (H1) 2003.01.08 00:00 - 2003.11.25 00:00 Modelo A cada tick (com base em todos os timeframes disponíveis com interpolação fractal de cada tick) Parâmetros Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11; Barras no teste 19371 Ticks modelados 656918 Qualidade da modelagem 25.00% Depósito inicial 10000.00 Lucro líquido total 1695.20 Lucro bruto 4293.20 Perda bruta -2598.00 Fator de lucro 1.65 Pagamento esperado 10.80 Drawdown absoluto 40.35 Drawdown máximo (%) 318.50 (3.0%) Total de operações 157 Posições curtas (porcentagem de acertos) 73 (26.03%) Posições longas (porcentagem de acertos) 84 (32.14%) Operações lucrativas (% do total) 46 (29.30%) Operações com perdas (% do total) 111 (70.70%) Maior operação lucrativa 262.55 operação com perda -91.00 Média operação lucrativa 93.33 operação com perda -23.41 Máximo vitórias consecutivas (lucro em dinheiro) 2 (387.15) perdas consecutivas (perda em dinheiro) 7 (-287.25) Máximo lucros consecutivos (contagem de vitórias) 387.15 (2) perdas consecutivas (contagem de perdas) -287.25 (7) Média vitórias consecutivas 1 perdas consecutivas 3
Publicações relacionadas
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Como Criar Sinais de Negociação com MQL5 Wizard Usando Estrelas da Manhã e da Noite + Estocástico
- MQL5 Wizard: Sinais de Negociação com Padrões Candlestick e RSI no MetaTrader 5
- MQL5 Wizard: Sinais de Negociação com Estrelas da Manhã/Noite + RSI para MetaTrader 5
- Como Criar um Expert Advisor com MQL5: Sinais de Negociação Baseados em Harami e RSI