Download MetaTrader 5

Teste de estratégias de negociação em ticks reiais

30 agosto 2016, 14:25
MetaQuotes Software Corp.
1
1 399
Neste artigo mostraremos os resultados de teste de uma estratégia de negociação simples em três modos: "OHLC em M1" usando apenas os preços Open, High, Low e Close das barras de minutos; em seguida a simulação detalhada no modo "Todos os ticks" e, o teste mais confiável, no modo "Cada tick baseado em ticks reais" usando os ticks gravados a partir do histórico.

A comparação de resultados permite avaliar a qualidade em vários modos, mostra como utilizar o testador para obter rapidamente resultados. O modo "OHLC em M1" permite obter um teste de estimativa rápido, a simulação no modo "Todos os ticks" dá uma boa aproximação á realidade, no entanto o teste em ticks reais proporciona resultados mais precisos, porém mais demorados. Tenha em mente que os erros na lógica do robô de negociação podem afetar a quantidade de operações de negociação, fazendo com que os resultados do teste sejam mais suscetíveis ao modo de teste selecionado.


Estratégia de negociação

Nós criamos uma estratégia de negociação baseada no rompimento do intervalo nas últimas barras RangeLength. As regras de negociação são as seguintes: na barra que acabou de ser aberta, calcula-se o intervalo de preços mais altos e mais baixos para as últimas barras N. No Expert Advisor anexado (conselheiro), o parâmetro RangeLength padrão é igual a 20 barras, ele indica a largura da janela na qual construímos o intervalo.

Após o primeiro rompimento do intervalo de cima para baixo, começa a acumular-se a estatística de ticks de entrada: número de ticks acima e abaixo do nível do intervalo penetrado. Uma vez o número de ticks de entrada é superior o igual a TicksForEnter=30, toma-se a decisão de entrar no mercado ao preço atual. Se o intervalo for penetrado para cima, o número de ticks acima do nível de penetração deve ser superior ao número de ticks abaixo desse nível. Neste caso, o EA (conselheiro) abrirá uma posição longa. Para entrar na posição curta, é o oposto.

A posição aberta se fecha após BarsForExit barras. Como você pode ver, as regras de negociação são simples. Para maior clareza, veja a imagem abaixo:


Vamos ver como são alterados os resultados do teste, para esta estratégia, em três modos diferentes de simulação de ticks.


Como testamos

A estratégia de negociação foi testada para o par EURUSD, em H1, nos primeiros 6 meses do 2016 (01.01.2016 — 30.06.2016). Todos os parâmetros do Expert foram definido como padrão, pois nossa tarefa era testar a estratégia em diferentes modos de simulação.



Comparação de resultados com diferentes modos de teste

Os resultados dos testes em diferentes modos estão resumidos na tabela abaixo. A primeira coisa que chama a atenção é a diferença do número de operações de negociação. Por conseguinte, todos os outros indicadores de teste são também diferentes. O teste no modo "OHLC em M1" durou 1.57 segundos, isto é, foi 3 vezes mais rápido do que no modo "Todos os ticks". Essa diferença será importante ao optimizar os parâmetros de entrada do sistema de negociação.

Por sua vez, o modo "Cada tick baseado em ticks reais" durou ainda mais tempo, isto é, 74 segundos em comparação com os 36.7 segundos no modo "Todos os ticks". Isso é facilmente explicado pelo fato de que, ao usar os ticks reais, foram simulados mais de 34 milhões de ticks, isto é, quase 2 dois vezes mais do que no modo "Todos os ticks". Assim, quanto mais ticks são usados nos testes, mais tempo é necessário para testar a estratégia.

Parâmetros
OHLC em M1
Todos os ticks
Cada tick
baseado em ticks reais
Ticks
731 466
 18 983 485
34 099 141
Lucro líquido
169.46 -466.81
-97.24
Trades
96
 158156
Negociações
192
 316312
Rebaixamento no capital líquido (%)
311.35 (3.38%)
 940.18 (9.29%)
625.79 (6.07%)
Rebaixamento no saldo281.25 (3.04%)
882.58 (8.76)
591.99 (5.76%)    
Trades favoráveis (%)
50 (52.08%) 82 (51.90%)73 (46.79%)
Média de vitórias contínuas
2
2
2
Tempo de teste, incluindo o tempo para geração de ticks
1.6 segundos
36.7 segundos
74 segundos (1 minuto 14 segundos)

Juntamos vários relatórios de teste em diferentes modos de simulação, eles são exibidos abaixo como imagens animadas, para que você possa ver a diferença nas estatísticas.


Os gráficos de saldo e de fundos próprios também são diferentes. Como podemos ver, essa simples estratégia de negociação não parece atraente: o período de crescimento é seguido pelo período de queda, e o gráfico de cada teste parece mais com uma cadeia de coincidências. Não se deve negociar segundo esse sistema, pois o resultado lembra a atirar uma moeda ao ar para ver quem ganha.



Sistemas de negociação que dependem da entrada de ticks

O sistema de negociação apresentado é altamente dependente do método de simulação, quer dizer, do número de ticks de entrada e da ordem de sua entrada. Ao testar no modo "OHLC em M1", o número reduzido de ticks simulados pode resultar insuficiente para entrar no mercado. Os modos "Todos os ticks" e "Cada tick baseado em ticks reais" podem ter ordens de entrada totalmente diferentes. Ao simular "Todos os ticks", possivelmente obteremos uma monótona seqüência de ticks crescente ou decrescente, o que garante a entrada no mercado durante um rompimento do intervalo. Ao testar no modo "Cada tick baseado em ticks reais", usa-se o histórico de ticks, nele a dinâmica de preços pode ser bastante inesperada.

Como resultado, mesmo no início do intervalo de teste, podemos ver que, nos gráficos, os níveis de entrada e saída são diferentes, e que existem omissões de alguns trades.



Quatro modos de geração de ticks

No terminal MetaTrader 5, o testador de estratégias permite verificar operações de negociação em quatro modos de simulação de ticks, eles são descritos no artigo Princípios básicos dos testes no MetaTrader 5. O trivial e rápido modo "Apenas preços de abertura" permite que as operações de negociação possam ser realizadas apenas com a abertura de uma nova barra. Neste modo, embora o EA não tenha à sua disposição nenhuma ação dentro da barra, é ideal para o teste de estratégias sem levar em conta como se desenvolve o preço dentro da barra.

Segundo a precisão de simulação, segue a modo "OHLC em M1", nele são simulados os preços Open, High, Low e Close de cada barra de minuto incluída no intervalo testável do histórico. Assim, ao testar, no timeframe H1, durante uma hora, o Expert será chamado 240 vezes: em cada uma das 60 barras de minuto, o manipulador OnTick() será chamado 4 vezes, uma para cada OHLC. Com essa simulação, já é possível utilizar o Trailing Stop, seguir o desenvolvimento do preço em outros timeframes e indicadores, se necessário. Por exemplo, testar estratégias de tipo "Estratégia de tela tripla de Elder".

Estes dois modos são adequados para testar um conjunto grande de estratégias de negociação, pois a maioria dos traders desenvolvem robôs para trabalhar precisamente na abertura da barra. Mas se você precisar realizar uma simulação mais precisa e detalhada dos ticks de entrada, terá de usar o modo "Todos os ticks". Neste modo, adicionalmente, simula-se a evolução dos preços dentro de cada barra de minuto, além disso a geração de ticks ocorre com bastante complexidade. O mecanismo de simulação de preço para este modo pode ser encontrado com mais detalhes no artigo Algoritmo de geração de pontos (ticks) dentro do examinador de estratégia da plataforma Metatrader 5.

Se você precisa de uma representação mais fiel do histórico, no testador de estratégia, utilize o modo "Cada tick baseado em ticks reais". Neste modo, o testador baixa, a partir do servidor da corretora, os ticks reais gravados e constrói a evolução dos preços segundo eles. Para faixas do histórico sem ticks reais, o testador simula o preço como no modo "Todos os ticks". Assim, se a corretora tiver todo o histórico gravado de todos os símbolos necessários, você poderá testar os verdadeiros dados históricos sem simulação artificial. No entanto, a desvantagem dessa precisão por tick será um aumento significativo no tempo de teste, como é mostrado na tabela com os resultados de comparação entre os três modos.

Comece a desenvolver um sistema com o modo "OHLC em M1"

Como você pode ver, não se deve perder em tudo: se quisermos poupar tempo e verificar rapidamente a ideia de negociação, perderemos precisão nos modos simples de simulação. Se, para o teste, for necessário garantir a precisão dos preços de entrada e, conseqüentemente, dos sinais de negociação, você precisará de utilizar os modos mais precisos, embora requeiram mais tempo.

Antes de começar a testar a estratégia de negociação, você deve ter em mente que o modo de simulação selecionado irá afetar a precisão dos resultados e o tempo gasto para obtê-las. Se você quiser testar e avaliar rapidamente uma estratégia de negociação, utilize o modo "OHLC em M1". Nele você vai conseguir avaliar rapidamente o potencial do sistema de negociação.

O próximo passo: depuração e modo "Todos os ticks"

Se os resultados preliminares serem satisfatórios, você poderá continuar a depuração e o análise do sistema de negociação nos modos de simulação mais precisos. Aqui é onde a depuração da estratégia no modo de teste vem em auxílio: você pode definir os pontos de interrupção e verificar o estado das variáveis, bem como a execução das condições previstas no Expert. Aqui poderá esperar surpresas desagradáveis, se você se esquecer de fornecer alguns detalhes de seu sistema.



Precisão contra velocidade

Como você pode ver a partir dos resultados de teste do sistema de negociação descrito em três modos, o trader sempre pode e deve escolher o modo de simulação de ticks apropriado para seu estratégia de negociação. Se você estiver testando um sistema no timeframe diário, o modo "Apenas preços de abertura" será o mais adequado para você, pois um teste de alta velocidade não irá interferir com a qualidade dos resultados obtidos.

Se você estiver desenvolvendo uma estratégia de escalpelamento ou arbitragem, ou se seu algoritmo é baseado em índices ou indicadores sintéticos em tempo real, então você vai precisar do modo "Cada tick baseado em ticks reais". Este teste demora consideravelmente mais tempo, mas você irá obter resultados mais próximos da realidade. No entanto, não devemos esquecer que o histórico nunca se repete, e, portanto, mesmo neste modo, uns parâmetros de entrada selecionados perfeitamente não garantem o sucesso do robô executado em uma conta real.

Entre os modos mencionados existem "OHLC em M1" e "Todos os ticks", eles trabalham mais rapidamente do que "Cada tick baseado em ticks reais", porém sua precisão de teste é menor. Em termos gerais, é possível formular uma lei que descreva o tempo e a precisão do teste:

Quanto mais rápido for o teste, menor a precisão da simulação de negociação. Quanto mais detalhada e precisa é a simulação da evolução do preço no histórico, mais tempo é necessário para realizar o teste.

Há muitos anos os servidores de negociação acumulam o histórico de ticks real, e o testador de estratégias, na MetaTrader 5, no modo "Cada tick baseado em ticks reais", baixa automaticamente todo o histórico necessário. Mas, quanto mais confiável for o teste, mais recursos necessitará. Por isso, escolha um equilíbrio entre precisão e velocidade. 

Nem todas as estratégias precisam de uma simulação detalhada nas fases iniciais da criação. A escolha correta do modo de teste irá ajudá-lo a economizar tempo e eliminar um grande número de estratégias ruins!

Após resolver o problema principal (criação de um sistema de negociação automático rentável), você poderá otimizar em ticks reais. Neste ponto, você terá de usar o poder da rede de computação MQL5 Cloud Network.

Traduzido do russo por MetaQuotes Software Corp.
Artigo original: https://www.mql5.com/ru/articles/2612

Arquivos anexados |
SimpleBreakOut.mq5 (20.38 KB)
Últimos Comentários | Ir para discussão (1)
Thiago Ferreira
Thiago Ferreira | 30 ago 2016 em 14:56
Olá. Isso é muito bom! A partir de quando este dado historico tick real existe? De alguns meses?
Como adicionar rapidamente paneis de controle a indicadores e conselheiros (EA) Como adicionar rapidamente paneis de controle a indicadores e conselheiros (EA)

Você deseja adicionar ao seu indicador ou conselheiro um painel gráfico para um controle fácil e rápido, mas não sabe como fazê-lo? Neste artigo, vou mostrar passo a passo como "atar" o painel de diálogo com os parâmetros de entrada do seu programa MQL4/MQL5.

Auto-otimização do EA: Algoritmos evolutivos e genéticos Auto-otimização do EA: Algoritmos evolutivos e genéticos

Este artigo aborda os principais princípios estabelecidos nos algoritmos evolutivos, suas variedades e características. Vamos fazer uma experiência com um Expert Advisor simples, usado como exemplo para mostrar os benefícios do sistema de negociação a partir da otimização. Também iremos considerar programas de software que implementam otimizações genéticas, evolutivas, entre outros, fornecendo exemplos de aplicação ao otimizar um conjunto preditor e os parâmetros do sistema de negociação.

Interfaces Gráficas IV: Elementos Informativos da Interface (Capítulo 1) Interfaces Gráficas IV: Elementos Informativos da Interface (Capítulo 1)

No atual estágio de desenvolvimento, a biblioteca para a criação de interfaces gráficas contém um formulário e vários controles que podem ser ligados a ele. Foi mencionado antes que um dos artigos futuros seria dedicado ao modo multi-janela. Agora, nós já temos tudo preparado para considerar tal questão, desse modo, nós vamos lidar com isso no capítulo seguinte. Neste capítulo, nós vamos escrever as classes para criar os elementos de interface barra de status e dica de contexto.

Interfaces Gráficas IV: O Modo Multi-Janela e o Sistema de Prioridades (Capítulo 2) Interfaces Gráficas IV: O Modo Multi-Janela e o Sistema de Prioridades (Capítulo 2)

Neste capítulo, nós vamos estender a implementação da biblioteca para possibilitar a criação de interfaces de multi-janela para as aplicações MQL. Nós também vamos desenvolver um sistema de prioridades para clique esquerdo do mouse sobre os objetos gráficos. Isso se faz necessário para evitar problemas quando os elementos não respondem as ações do usuário.