Negociação Sistemática

Cuidado com Backtests Enganosos: Como Evitar Perdas com EAs no MetaTrader 4
MetaTrader4
Cuidado com Backtests Enganosos: Como Evitar Perdas com EAs no MetaTrader 4

Quando falamos de backtests no MetaTrader 4, é fácil se deixar levar por resultados promissores. A verdade é que você pode encontrar Expert Advisors (EAs) que parecem muito lucrativos se as ordens forem abertas e fechadas na mesma barra. Mas atenção! Isso geralmente é um erro, resultado das limitações dos backtests, especialmente quando lidamos com dados de prazos mais longos do que a estratégia de negociação em si.Os resultados de backtests são sempre duvidosos se uma ordem é preenchida e encerrada na mesma barra, a menos que a entrada seja na abertura ou a saída no fechamento. O motivo? É impossível saber como foi a ação do preço dentro da barra. O backtest apenas faz uma estimativa do que ocorreu durante aquele período. E, por vezes, essa estimativa pode indicar um preenchimento em um preço que, na prática, aconteceu depois do que foi previsto. Isso pode resultar em preços impossíveis, principalmente quando o mercado se movimenta rapidamente em uma direção. Algumas estratégias podem, sem querer, explorar esses preços irreais para gerar resultados igualmente impossíveis.Você pode acabar com um expert que parece extremamente lucrativo nos backtests, mas que pode resultar em grandes perdas na negociação real. É exatamente isso que pode acontecer com o EA que mencionamos. Se você quiser testar, faça no EUR/USD no gráfico de 1 hora.A única maneira de ter backtests confiáveis com dados de barra é entrar na abertura ou sair no fechamento. Assim, você tem certeza de quando esses pontos ocorreram, o que garante a ordem correta da ação do preço. Isso também evita que o expert abra e feche uma ordem na mesma barra, como acontece, por exemplo, em um Stop Loss.Como você pode imaginar, eu não recomendaria o uso desse expert para operações reais...

2006.09.18
gpfTCPivotLimit: Sistema de Trading para MetaTrader 4
MetaTrader4
gpfTCPivotLimit: Sistema de Trading para MetaTrader 4

    O gpfTCPivotLimit é um sistema de trading desenvolvido para operar no MetaTrader 4, utilizando níveis de tempo intraday e o indicador Pivot.    Aqui vai uma visão geral de como você pode fazer suas operações com este sistema:O sistema é usado no timeframe de 1 hora;Após a meia-noite, são calculados os níveis de Pivot, Resistência (Resist1, Resist2, Resist3) e Suporte (Support1, Support2, Support3);Para comprar, aguardamos o teste do nível de Suporte (n) por uma vela horária (T-2) e o fechamento da vela (T-1) acima desse nível. O stoploss é colocado no nível de Suporte (n1) e o takeprofit no nível de Resistência (n). T representa a hora atual;Utilizamos trailing stop para ajustar o stoploss ao ponto de equilíbrio;Para vender, fazemos o oposto: quando a vela horária (T-2) testa a Resistência (n) e a vela (T-1) fecha abaixo desse nível, colocamos o stoploss no nível de Resistência (n1) e o takeprofit no nível de Suporte (n).     Agora, vamos entender alguns parâmetros importantes de entrada:A variável TgtProfit define os níveis de stoploss e takeprofit, podendo assumir valores de 1 a 5;Se TgtProfit = 1, o nível testado (compra/venda) será Resist1/Support1, stoploss (compra/venda) = Resist2/Support2, e takeprofit (compra/venda) = Support1/Resist1;Se TgtProfit = 2, o nível testado (compra/venda) será Resist1/Support1, stoploss (compra/venda) = Resist2/Support2, e takeprofit (compra/venda) = Support2/Resist2;Se TgtProfit = 3, o nível testado (compra/venda) será Resist2/Support2, stoploss (compra/venda) = Resist3/Support3, e takeprofit (compra/venda) = Support1/Resist1;Se TgtProfit = 4, o nível testado (compra/venda) será Resist2/Support2, stoploss (compra/venda) = Resist3/Support3, e takeprofit (compra/venda) = Support2/Resist2;Se TgtProfit = 5, o nível testado (compra/venda) será Resist2/Support2, stoploss (compra/venda) = Resist3/Support3, e takeprofit (compra/venda) = Support3/Resist3;A variável isTradeDay determina se as posições abertas serão fechadas. Se isTradeDay = true, as ordens abertas serão forçosamente fechadas ao final do dia; caso contrário, as ordens permanecerão no mercado e serão fechadas pelo stoploss ou takeprofit;Ao instalar o valor da variável isTrace = True, o sistema registrará todas as informações possíveis para depuração dos Sistemas de Trading.    Resultados dos testes: nem todos os pares de moedas apresentam resultados positivos com essa abordagem. No entanto, uma rentabilidade positiva foi geralmente alcançada com o uso do trailing stop.

2006.01.25
gpfTCPivotStop: O EA Ideal para MetaTrader 4
MetaTrader4
gpfTCPivotStop: O EA Ideal para MetaTrader 4

    O gpfTCPivotStop é um sistema de trading que opera com base nos níveis diários de Pivot. Ele é gerado pelo nosso robô de trading, que se destaca na identificação de quebras nesses níveis.    Vamos entender como funciona a operação:As operações são realizadas no gráfico de 1 hora;Após a meia-noite do dia atual, calculamos os níveis de Pivot, Resistência 1, Resistência 2, Resistência 3, Suporte 1, Suporte 2 e Suporte 3;Quando uma vela horária fecha acima do nível de Pivot, abrimos uma compra com o stop loss definido em Suporte (n) e o take profit em Resistência (n);Utilizamos o trailing stop para garantir que o stop loss seja movido para o ponto de breakeven;Para vendas, se uma vela horária fechar abaixo do nível de Pivot, o stop loss será em Resistência (n) e o take profit em Suporte (n).    Vamos detalhar alguns parâmetros importantes para entrada:A variável TgtProfit define os níveis de stop e profit, podendo ter valores de 1, 2 ou 3;Se TgtProfit = 1, o stop loss (compra/venda) será em Resistência 1/Suporte 1 e o take profit (compra/venda) em Suporte 1/Resistência 1;Se TgtProfit = 2, o stop loss (compra/venda) será em Resistência 1/Suporte 1 e o take profit (compra/venda) em Suporte 2/Resistência 2;Se TgtProfit = 3, o stop loss (compra/venda) será em Resistência 2/Suporte 2 e o take profit (compra/venda) em Suporte 3/Resistência 3;A variável isTradeDay determina que as posições abertas serão fechadas. Se isTradeDay = true, as ordens abertas serão forçosamente fechadas ao final do dia; caso contrário, as ordens permanecerão no mercado até serem fechadas por stop ou pelo lucro;Ao instalar, a variável isTrace deve ser definida como True, o que permite registrar todas as informações de depuração do robô.    Resultados dos testes: nem todos os pares de moedas com essa abordagem de quebra atingem níveis de lucratividade consistentemente.    No próximo artigo, vamos explorar como o robô pode operar a partir dos mesmos níveis de forma ainda mais eficaz.

2006.01.19
Média Móvel: Seu Especialista em Sinais de Negociação para MetaTrader 4
MetaTrader4
Média Móvel: Seu Especialista em Sinais de Negociação para MetaTrader 4

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égiaMédia Móvel SímboloEURUSD (Euro vs Dólar Americano)Período1 Hora (H1) 2003.01.08 00:00 - 2003.11.25 00:00ModeloA cada tick (com base em todos os timeframes disponíveis com interpolação fractal de cada tick)ParâmetrosLots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11;Barras no teste19371Ticks modelados656918Qualidade da modelagem25.00%Depósito inicial10000.00Lucro líquido total1695.20Lucro bruto4293.20Perda bruta-2598.00Fator de lucro1.65Pagamento esperado10.80Drawdown absoluto40.35Drawdown máximo (%)318.50 (3.0%)Total de operações157Posiçõ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%)Maioroperação lucrativa262.55operação com perda-91.00Médiaoperação lucrativa93.33operação com perda-23.41Máximovitórias consecutivas (lucro em dinheiro)2 (387.15)perdas consecutivas (perda em dinheiro)7 (-287.25)Máximolucros consecutivos (contagem de vitórias)387.15 (2)perdas consecutivas (contagem de perdas)-287.25 (7)Médiavitórias consecutivas1perdas consecutivas3

2005.11.29
Primeiro Anterior 116 117 118 119 120 121