Tuesday 10 April 2018

Caminhar em frente otimização mt4 forex


Otimização de walk-forward no MetaTrader 4 Muitos traders experientes usam otimização de walk-forward para seus sistemas de negociação algorítmica. Infelizmente, o MetaTrader 4 não fornece nenhum meio para realizar a otimização avançada de consultores especialistas (EA). É por isso que decidi implementar a biblioteca Walk-Forward Optimizer (WFO) e estou pronto para anunciar aqui nos blogs - este é o único lugar no mql5 (excluindo o próprio Mercado), onde os produtos existentes e futuros do Market podem ser apresentados e discutido sem um usuário ser banido. Eu não posso te dizer quando a biblioteca vai se tornar publicamente disponível, porque depende de muitos fatores externos, como esperar na fila para check-up de pré-lançamento, o próprio check-up e assim por diante. Eu nem tenho certeza que a biblioteca será distribuída através do mercado, porque não está claro se ele viola as regras de mercados ou não (estou tentando esclarecer o assunto com o suporte MQ, mas sem sucesso até agora). Mas se você está interessado na biblioteca, me mande uma linha, e vou notificá-lo sobre a sua disponibilidade. Como é uma biblioteca, o recurso WF será adequado apenas para aqueles que possuem códigos-fonte de seus especialistas e podem realizar pequenas alterações temporárias na origem. Se você não consegue lidar com programação, há duas outras maneiras de realizar otimização de caminhada no MetaTrader 4. O primeiro usa um programa de automação de UI externo que preenche as datas e alterna todas as opções necessárias no testador como se fosse um usuário, iniciar a otimização executa e encaminha execuções de teste (uma por uma), salvando os resultados em arquivos e, em seguida, outro programa deve analisar os resultados e criar um relatório. Essa abordagem exige que o usuário esteja familiarizado com esses programas externos e os configure apropriadamente. O segundo utiliza a linha de comando do MetaTraders (que requer que um usuário prepare vários arquivos de configuração (.ini. Set) e arquivos de shell (.bat ou. cmd), bem como um programa ou script externo para analisar os resultados resultantes do html. relatórios e combiná-los em um único relatório agregado. Ambas as formas não são muito mais simples do que alterar o EA com a biblioteca. A biblioteca suporta rolando para a frente, ancorada walk-forward e análise de cluster. Mas não espere que a sua implementação WF seja tão completa como os seus programas independentes bem conhecidos para negociação e backtesting. A biblioteca depende do testador integrado. Basicamente, ele gerencia e altera o intervalo de datas permitido para negociação da EA durante cada execução de otimização. Os resultados de todos os passos de otimização são salvos em um arquivo csv intermediário e em variáveis ​​globais especiais, que devem ser processadas por um script auxiliar - o repórter WF. Como resultado, ele gera uma página HTML com relatório compreensível de um dos tipos suportados. Aqui está como um relatório de teste para a frente se parece. Estes resultados são para o padrão EA Moving Average (da distribuição MetaTrader) geneticamente otimizado e testado no EURUSD D1 a partir de 2010 com um lote constante mínimo. Documentação completa e exemplos serão fornecidos assim que os produtos forem publicados. A biblioteca deve ser paga e o roteiro é gratuito. Ou vice versa. Biblioteca de otimização de encaminhamento para MetaTrader 4: FAQ Perguntas freqüentes P. Por que devo usar o WFO A. O WFO é uma implementação automatizada do processo de teste e monitoramento de EA, que um profissional normalmente executa por mãos. Além disso, o WFO fornece uma resposta justificada para as perguntas, qual período de otimização do EA escolher e por quanto tempo o desempenho otimizado do EA durará em média, para que se possa saber em que ritmo realizar a re-otimização. P. Por que a biblioteca WFO não está disponível para o MetaTrader 5 A. O MetaTrader 5 provavelmente suportará a otimização de walk-forward nativamente como um novo modo do testador embutido no futuro. Se você deseja desesperadamente que esta biblioteca seja transferida para o MetaTrader 5, envie sua solicitação ao autor - em alta demanda, ela pode ser re-trabalhada e fornecida livremente a todos os solicitantes que possuam a versão original do MetaTrader 4. P. Por que a otimização do WF e os períodos de teste são executados em uma única passagem de testador A. Um único passo de teste, dividido em janela de otimização e teste de encaminhamento, é usado porque simplifica a associação de períodos de otimização e teste correspondentes. Na verdade, o MQL4 não fornece nenhum meio para vincular dois passes de testador independentes entre si. Além disso, mesmo se fosse possível, testar as etapas futuras seria tratado como execuções de otimização e, assim, introduzir um viés na pesquisa de parâmetros ideais. E se marcarmos os testes forward com indicador de desempenho zero para eliminar o viés, o testador ignoraria a maioria dos testes avançados usando o algoritmo genético. E a recusa em usar a genética parece impraticável. P. Por que as restrições de otimização padrão devem ser desabilitadas no testador ao usar o WFO A. De fato, todos os sinalizadores na guia Otimização da caixa de diálogo Propriedades do especialista devem ser apagados antes de usar a biblioteca WFO. Isso ocorre porque as restrições são aplicadas nos valores correspondentes calculados para todo o período, mas o período é dividido internamente pelo WFO na otimização e nas partes do teste avançado, em que somente os valores de otimização devem ser importantes. A biblioteca WFO calcula todos os parâmetros importantes separadamente para ambas as partes e fornece acesso a indicadores de otimização por meio de variáveis ​​especiais, que podem ser usadas em fórmulas personalizadas. Se você quiser usar uma restrição, você pode especificar uma expressão para o estimador de desempenho em que o parâmetro específico é verificado em um limite e, se a condição não for atendida, o valor do estimador definido como 0. Por exemplo, se você deseja descartar todos os passes com rebaixamento relativo maior que 50, você pode multiplicar seu estimador de desempenho principal para a seguinte expressão min (max (50 - DDREL, 0), 1). Q. Alguns valores do fator lucro nas tabelas parecem estranhos. Por que A. Como o fator lucro é calculado como uma razão de lucros e perdas, pode haver casos em que ele é realmente indefinido - isso acontece se não houver perdas. Por padrão, o MetaTrader 4 atribui o valor DBLMAX para o fator lucro em tais casos, mas isso não é uma boa ideia, porque um teste com 1 negociação lucrativa e outro teste com 10 transações lucrativas obtêm o mesmo fator de lucro. Além disso, se o fator de lucro for usado em um estimador de desempenho composto, o DBLMAX provavelmente apresentará irregularidade. É por isso que, a biblioteca fornece 2 maneiras diferentes de lidar com fatores de lucro sobrecarregados. Quando o estimador é construído de forma livre ou direta, é estrito. fatores de lucro maiores que 10 são ajustados como 10 multiplicados pela raiz quadrada do número de negócios. Quando qualquer outro estimador é selecionado, você pode usar a função wfosetPFmax para especificar um número relativamente grande como limite superior do fator de lucro, mas significativamente menor que DBLMAX, por exemplo, 100. Finalmente, se você escolher wfoexpression. você pode executar o tratamento de casos especiais calculando o substituto do fator de lucro do lucro bruto (variável GP) e da perda bruta (variável GL) com fórmula específica arbitrária. P. Como sei que um teste de walk-forward foi aprovado ou reprovado A. A biblioteca da WFO não marca explicitamente os resultados de walk-forward como aprovados ou reprovados, porque os critérios preferidos dos usuários podem ser diferentes. Como regra geral, um teste é considerado aprovado se a eficiência for maior que 50 e a consistência for maior que 50, e o rebaixamento não ultrapassar 30. Também é possível tomar cuidado para que a distribuição de lucros em testes futuros não contenha outliers distintos (quando maior lucro por passe produz mais de 50 do lucro total). Todos esses fatores podem ser verificados visualmente nas tabelas do relatório específico. Q. Por que o Draw-Forward Drawdown é marcado como estimativa aproximada, normalizado A. Esse saque é calculado na curva de saldo forward usando unicamente lucros ou perdas em cada etapa (como um todo), e não leva as negociações subjacentes em consideração. Isso faz com que a estimativa aproximada de redução. Para calcular um levantamento exato, deve-se ter uma lista completa de negociações, mas a biblioteca WFO não as salva por uma questão de eficiência. De fato, se isso fosse feito, cada passagem geraria um arquivo separado e o número de passagens poderia ser centenas de milhares. O rebaixamento é chamado normalizado, porque é calculado a partir do lucro anualizado em dados dentro da amostra (período de otimização) em vez do depósito inicial. Redução convencional pode variar drasticamente, dependendo de um valor de depósito arbitrário escolhido pelo comerciante voluntariamente. Isso dificulta a compreensão dos riscos. Por exemplo, com depósito inicial igual a 10000, um rebaixamento em 1000 é de apenas 10, mas para 2000 é de 50. Quando o lucro anualizado é usado em vez de depósito, o rebaixamento expressa os riscos em escala universal dimensionados de acordo com a eficiência potencial dos sistemas de negociação (rentabilidade média). ). Q. Qual é o significado de Desvio nos relatórios, como interpretá-lo A. A linha da tabela com Desvio mostra o desvio padrão () do valor correspondente como uma medida de sua dispersão, ou seja, até onde ela flutua para cima ou para baixo através de sua Média. Se o desvio for igual ou maior que a média (ou média), então o parâmetro correspondente parece não confiável, porque seu valor observado provavelmente mudará com facilidade, independentemente do esperado, e isso é muito importante, por exemplo, para os lucros. Por exemplo, se o lucro médio for 100 e o desvio for 100, então a probabilidade de perda é aproximadamente 15,8, se o desvio for 50 - a probabilidade de perda é 2,2 e se o desvio for 33, então a probabilidade de perda é apenas 0,1. Pelo contrário, se o desvio for 200, então a probabilidade de uma perda aumenta até 31. Isto é ilustrado pelo gráfico abaixo. Usamos aqui a distribuição Normal, que pode ser discutível, mas é bem estudada e aplicável (sob certas hipóteses) para a maioria das séries de experimentos de longa duração (suponhamos que tenhamos um número suficiente de passes de avanço). Q. Minha otimização parou com o erro Manipulador de memória do testador: o testador parou porque não há memória suficiente. O que posso fazer? Você está tentando executar uma otimização muito grande que consumiu todos os recursos disponíveis para o testador do MetaTrader 4. Isso não é um problema da biblioteca. Esta é uma limitação do testador e do sistema operacional. Você precisa de alguma forma simplificar suas configurações de otimização ou adicionar mais recursos ao seu PC. Aqui estão alguns métodos: encurtar o intervalo de datas de teste (por exemplo, tomar 2-3 anos em vez de 5-6), diminuir o número de parâmetros habilitados para otimização, reduzir o número de iterações para parâmetros sendo otimizados (por exemplo, diminuir número de etapas adiante na despesa de aumentar o tamanho da etapa de encaminhamento no mesmo número de vezes), tente liberar memória MT4 descarregando tudo, exceto o EA sendo otimizado (note que o MT4 deve ser reiniciado após o descarregamento porque ele armazena muitas coisas internamente e eles deixaram na memória), habilitar o algoritmo genético no testador, adicionar memória física ao seu PC. P. Quais são as janelas personalizadas mínimas e tamanhos de etapas personalizados? É recomendável definir o tamanho da janela personalizada a partir de 1 mês ou mais, em última análise - duas semanas. O passo personalizado mínimo, bem como o seu incremento (ambos são atribuídos em porcentagens neste modo) devem ser selecionados de modo que, após sua conversão na escala de tempo (calculada como uma fração do tamanho da janela), você receba pelo menos 1 dia inteiro. Se o tamanho mínimo do passo for 10, não faz sentido usar o tamanho da janela em menos de 10 dias. Isso também é verdade para os incrementos deles. Por exemplo, pode-se escolher 10 dias como a janela mínima e seu incremento. Então você deve usar 10 como o passo mínimo e seu incremento para evitar frações de dias. Se você precisar do incremento das etapas 5 e 5, o tamanho mínimo da janela e seu incremento devem ser de 20 dias. P. Acho que encontrei um bug. O que devo fazer A. Mostre-me suas configurações para o testador e para o EA. Descreva o que você deseja alcançar e o que você recebe. Envie-me arquivos gerados, se houver. Se for um problema de biblioteca, envie-me os registros do testador com erros. Se for um problema de repórter, envie-me os registros da guia Especialistas. No FAQ - perguntas 4, para excluir o drawdown 50, você usaria a expressão min (max (50 - DDREL, 0), 1) como multiplicador para a fórmula principal do estimador de desempenho. Pergunta, por favor, como excluir fator de lucro menor que 1,2 Eu tenho tentado modificar a fórmula para excluir o fator de lucro lt 1.2, mas ainda não me desculpo ainda. Tente este por exemplo: min (max (PF - 1.2, 0), 1). Otimização para o Encaminhamento do Andar: Uma Explicação Mais Detalhada Duas semanas atrás, nós vimos um exemplo de otimização de otimização para a frente por VBO Systems que testou uma fuga de volatilidade. sistema. Embora este artigo tenha sido interessante a partir de um aspecto de porcas e parafusos, ele deixou muito na tabela em termos de explicação. Desde então, o autor expandiu esse post para incluir uma explicação mais detalhada sobre exatamente o que estamos tentando fazer com a otimização de avanço. Esta nova introdução ao artigo nos fornece alguns detalhes e informações sobre por que a otimização de otimização é tão eficiente. A otimização avançada permite testar como uma estratégia seria negociada em um ambiente ao vivo e avaliar quais parâmetros teriam melhor desempenho. O artigo começa listando algumas das razões pelas quais os sistemas podem perder sua vantagem: O sistema não é baseado em uma premissa válida As condições do mercado mudaram de uma maneira dramática que invalida as premissas teóricas sobre as quais o sistema foi desenvolvido O sistema não foi desenvolvido e testado com uma metodologia sólida. Por exemplo, (a) falta de robustez em um sistema devido a parâmetros impróprios e (b) regras inconsistentes e testes inadequados do sistema usando dados fora da amostra e na amostra Continua explicando como uma otimização básica de avanço é conduzido: A análise de avanço é o processo de otimização de um sistema de negociação usando um conjunto limitado de parâmetros e, em seguida, testando o melhor conjunto de parâmetros otimizados em dados fora da amostra. Este processo é semelhante a como um comerciante usaria um sistema de negociação automatizado em negociação real ao vivo. A janela de tempo in sample é deslocada para frente pelo período coberto pelo teste out-of-sample e o processo é repetido. No final do teste, todos os resultados registrados são usados ​​para avaliar a estratégia de negociação. Para garantir que o conceito seja entendido, também é explicado de outra forma: em outras palavras, a análise de avanço horizontal faz a otimização em um conjunto de treinamento testa um período após o conjunto e, em seguida, rola tudo para frente e repete o processo. Temos vários períodos fora da amostra e analisamos esses resultados juntos. O teste de caminhada é uma aplicação específica de uma técnica conhecida como validação cruzada. Isso significa pegar um segmento de dados para otimizar um sistema e outro segmento de dados para validar. Isso dá um período maior fora da amostra e permite que o desenvolvedor do sistema veja a estabilidade do sistema ao longo do tempo. Como abordamos no post anterior, há três aspectos principais desse processo: Definir períodos in-sample e out-of-sample Definir uma área de parâmetros robustos Executar o avanço Como você pode ver, executar uma otimização de encaminhamento em um sistema O que você está desenvolvendo irá ajudá-lo a entender como um sistema funcionará em tempo real e, ao mesmo tempo, encontrar os parâmetros ideais para a estratégia. Deixe uma resposta Cancelar resposta

No comments:

Post a Comment