Tuesday 5 December 2017

Walk forward testing trading system


Teste Walk-forward O AmiBroker 5.10 possui o modo automático de teste Walk-Forward. O teste automático Walk forward é uma técnica de projeto e validação do sistema na qual você otimiza os valores dos parâmetros em um segmento passado de dados do mercado (8221in-sample8221) e, em seguida, verifique o desempenho do sistema testando-o para a frente no tempo em dados após a otimização Segmento (8221out-of-sample8221). Você avalia o sistema com base em quão bem ele executa nos dados do teste (8221out-of-sample8221), e não nos dados em que foi otimizado. O processo pode ser repetido em segmentos de tempo subsequentes. A seguinte ilustração mostra como o processo funciona. O objetivo do teste walk-forward é determinar sempre que o desempenho do sistema de negociação otimizado é o realista ou o resultado do ajuste de curva. O desempenho do sistema pode ser considerado realista se tiver um valor preditivo e funcionar bem em dados de mercado não vistos (fora da amostra). Quando o sistema é projetado corretamente, o desempenho comercial em tempo real deve ser em relação ao descoberto durante a otimização. Se o sistema estiver funcionando na negociação real, primeiro deve passar por um teste de caminhada. Em outras palavras, nós realmente não nos interessamos nos resultados da amostra, pois eles são (ou devem ser) sempre bons. O que importa é o desempenho do sistema fora da amostra. É a estimativa realista de como o sistema funcionaria na negociação real e rapidamente revelará quaisquer problemas de ajuste de curva. Se o desempenho fora da amostra é fraco, então você não deve trocar esse sistema. A premissa de realizar vários passos de otimização de testes ao longo do tempo é que o passado recente é uma base melhor para selecionar os valores dos parâmetros do sistema do que o passado distante. Esperamos que os valores dos parâmetros escolhidos no segmento de otimização sejam bem adaptados às condições de mercado que se seguem imediatamente. Isso pode ou não ser o caso, à medida que os mercados passam pelo ciclo bearbull, então deve-se ter cuidado ao escolher o período de in-sample. Para obter mais informações sobre o design e verificação do sistema usando o procedimento walk-forward e todas as questões envolvidas, podemos recomendar o livro Howard Bandys: quotQuantitative Trading Systemsquot (veja links na página AmiBroker). Para usar a otimização Walk-Forward, siga estas etapas: Goto Tools-gtAutomatic Analysis Clique no botão Settings, depois mude para a guia Walk-Forward Aqui você pode ver as configurações de Walk forward para otimização em amostra, fora de amostra backtest Início e datas de término Marque o período inicial do início inicial Este período será movido para a frente até o final até o final atingir a última data. A data de início também pode avançar passo a passo ou pode ser ancorada (constante) se a verificação ancorado estiver ativada. Se você marca Usar hoje, a última data inserida será ignorada e HOJE (data atual) será usada em vez disso. Por padrão, um 8220EASY MODE8221 é selecionado, o que simplifica o processo de configuração de parâmetros WF. Assume-se que: a) O segmento fora da amostra segue imediatamente o segmento na amostra b) o comprimento do segmento fora da amostra é igual ao passo walk-forward Com base nessas duas premissas, o modo 8220EASY8221 toma a data da amostra END E estabelece a data de INÍCIO fora de amostra para o dia seguinte. Em seguida, adiciona STEP na amostra e isso se torna a data de END da amostra. Os valores de passo na amostra e fora da amostra são definidos para os mesmos valores. O modo 8220EASY8221 garante a correção das configurações do procedimento WF. Você deve usar o Modo Fácil (EOD) ao testar dados em fim de dia ou Modo Fácil (Intraday) ao testar dados intraday. A diferença é que, no modo EOD, a data de END do período anterior e a data de INÍCIO do próximo período são as mesmas - evitando assim o intervalo entre os períodos. O modo Intraday define a data de INÍCIO do próximo período como PRÓXIMO DIA após o final do período anterior. Isso garante que o dia do limite não seja contado duas vezes ao testar dados intraday. No modo Avançado. O usuário tem controle total sobre todos os valores, na medida em que eles não possam constituir um procedimento WF válido. A interface permite desativar seletivamente as fases na amostra e fora da amostra usando caixas de seleção na parte superior (para coisas especiais, como executar backtests seqüenciais sem otimização). Todas as configurações são imediatamente refletidas na lista PREVIEW que mostra todos os segmentos ISOOS gerados e suas datas. O campo 8220 Optimization target 8221 define o código de otimização COLUMN NAME que será usado para classificar os resultados e encontrar o BEST. Qualquer coluna incorporada pode ser usada (como aparece na saída de otimização), ou você pode usar qualquer métrica personalizada que você defina no backtester personalizado. O padrão é CARMDD, você pode, no entanto, selecionar qualquer outra medida incorporada do combo. Você também pode selecionar qualquer métrica personalizada que você tenha adicionado via interface de backtester personalizada. Uma vez que você definiu as configurações de Walk-Forward, vá para Análise automática e pressione a SETA desdobrável no botão Otimizar e selecione 8220Walk Forward Optimization8221 Isso executará a seqüência de otimizações e backtest e os resultados serão exibidos no documento 8220Walk Forward8221 que está aberto no Quadro de aplicação principal. Quando a otimização está em execução, você pode clicar no botão 8220MINIMIZE8221 na caixa de diálogo Progresso para minimizá-lo - isso permite ver a saída Walk Forward durante as etapas de otimização. Equivalência combinada IN-SAMPLE e OUT-OF-SAMPLE As equações combinadas em amostra e fora de amostra estão disponíveis por tickers compostos OSEQUITY (períodos consecutivos de IS e OOS são concatenados e dimensionados para manter a continuidade da linha de equivalência patrimonial - essa abordagem pressupõe que você geralmente Falar estão acumulando lucros). Para exibir IS e OOS equity você pode usar, por exemplo, isso: ISEQUITY. In-Sample Equity. cor vermelha . StyleLine) PlotForeign (relatório de resumo OUT-OF-SAMPLE (novo em 5.60) A versão 5.60 traz um novo relatório de resumo walk-forward que cobre todas as etapas fora da amostra. É visível no Report Explorer como o último e tem quotPSquot type Houve mudanças significativas para avançar testes feitos para permitir um relatório sumário fora da amostra. A mudança mais importante é que cada teste subseqüente de fora da amostra usa o patrimônio inicial igual ao passo anterior que finaliza o patrimônio. (Anteriormente usou constante inicial Equidade). Esta alteração é necessária para o cálculo adequado de todas as estatísticas em todas as seções do teste fora da amostra. O relatório de resumo mostra a nota de que as métricas integradas representam corretamente todas as etapas fora da amostra, mas as métricas personalizadas de resumo são compostas usando Método definível pelo usuário: 1 valor do primeiro passo, 2 valor do último passo, 3 soma, 4 média, 5 mínimo, 6 máximo. Por padrão, o relatório de resumo mostra o valor da última etapa das métricas personalizadas, a menos que o usuário especifique o método de combinação diferente em bo. AddCustom Chamada métrica (). Bo. AddCustomMetrics tem agora um novo parâmetro opcional - CombineMethod bool AddCustomMetric (string Título, variante Value, variante opcional LongOnlyValue, variante opcional ShortOnlyValue. Variante opcional DecPlaces 2, variante opcional CombineMethod 2) Este método adiciona métrica personalizada ao relatório de backtest, questummaryquot de teste e Lista de resultados de otimização. O título é um nome da métrica a ser exibida no relatório, o valor é o valor da métrica, os argumentos opcionais LongOnlyValue, ShortOnlyValue permitem fornecer valores para colunas longshort-only adicionais no relatório do backtest. O último argumento DecPlaces controla quantas casas decimais devem ser usadas para exibir o valor. Os valores de CombineMethod suportados são: 1 valor do primeiro passo, - o relatório de resumo mostrará o valor da métrica personalizada desde o primeiro valor de etapa anterior (padrão) da etapa 2, fora da amostra, - o relatório de resumo mostrará o valor da métrica personalizada a partir do último Out-of-sample etapa 3 soma, - relatório de resumo mostrará a soma dos valores da métrica personalizada de todas as etapas da amostra 4 média, - o relatório de resumo mostrará a média dos valores da métrica personalizada de todas as etapas da amostra 5 mínimo, - o relatório de resumo mostrará o menor valor da métrica personalizada a partir de todas as etapas da amostra 6 no máximo. - o relatório de resumo mostrará o maior valor da métrica personalizada a partir de todas as etapas da amostra. Observe que determinados métodos de cálculo de métricas são complexos e para Exemplo, a média deles não levaria a uma representação matematicamente correta de todos os testes fora da amostra. Os resumos de todas as métricas incorporadas são matematicamente corretos fora da caixa (ou seja, não são médias, mas métricas adequadamente calculadas usando um método apropriado para determinado valor). Isso contrasta com as métricas personalizadas, porque elas são definíveis pelo usuário e cabe ao usuário selecionar o método de combinação, e ainda pode acontecer que nenhum dos métodos disponíveis seja apropriado. Por esse motivo, o relatório inclui a nota que explica o método que definiu pelo usuário foi usado para combinar métricas personalizadas. Testes avançados por Jack L. Weinberg Herersquos como você pode usar o teste walk-forward como uma ferramenta para comparar os sistemas de negociação e obter informações Na comparação do desempenho futuro dos sistemas. Os avanços da R ecent no software do sistema de negociação e potentes recursos de hardware forneceram uma ferramenta valiosa para avaliar a viabilidade futura dos sistemas de negociação mdash walk-forward testing. Esta técnica permite que o desenvolvedor do sistema comercial avalie rapidamente se o sistema irá sobreviver (ou mesmo prosperar) no futuro. Isso faz isso segmentando o passado em períodos de amostra e fora da amostra, e ao otimizar cada período sucessivo na amostra para fornecer os valores para o próximo período fora da amostra. Além disso, o teste pode ser usado para comparar um sistema com outro. O teste avançado fornece uma visão única para comparar o desempenho projetado dos sistemas de negociação. Otimização e seus usos A otimização de sistemas de negociação é utilizada para aprender com o passado os valores que mais provavelmente terão sucesso no futuro. Este é o cerne da análise técnica do conceito de que o futuro (especialmente o futuro a curto prazo) pode ser previsto a partir do passado mais recente. Os valores determinados a partir da otimização do passado mais recente devem ser usados ​​no próximo período de tempo. No contexto do teste walk-forward, o passado mais recente é chamado de período na amostra, e o próximo horizonte temporal é chamado de período fora da amostra. A otimização dá ao designer do sistema comercial a capacidade de determinar os melhores valores para as variáveis ​​no período na amostra. Quando um designer de sistema comercial coloca muitas restrições nas regras do sistema, o sistema é ajustado à curva. O teste Walk-forward mostrará que, se um sistema estiver ajustado de curva, ele pode funcionar por um período no passado, mas falhará por períodos que não estão incluídos na amostra. FIGURA 1: TESTE DE PASSEIO. Aqui você vê as datas usadas para dados em amostra e fora da amostra. Importância do teste walk-forward O teste walk-forward é uma das ferramentas mais poderosas desenvolvidas para analisar o desempenho futuro dos sistemas de negociação. Para os fins desta análise comparativa, foi decidido que o período durante o qual a otimização progressiva seria realizada seria de oito anos, sendo que os primeiros quatro são o primeiro período na amostra. O teste Walk-forward funciona da seguinte forma: o primeiro período na amostra é selecionado e as variáveis ​​selecionadas são otimizadas para uma função objetiva escolhida. Esses valores são então usados ​​para o primeiro período fora da amostra. O processo é então repetido para cada conjunto de períodos in-sample e out-of-sample. Na Figura 1, você pode ver os conjuntos de datas que foram usados ​​nesta análise articlersquos dos sistemas. Com o teste walk-forward, podemos juntar os períodos fora da amostra para ter uma idéia clara de como o sistema teria realizado durante o período total de amostragem, desde 1º de janeiro de 2004 até 31 de dezembro de 2007. Uma questão-chave Para ser solicitado por qualquer designer de sistema ao implementar a otimização é: qual o objetivo a ser otimizado. A maioria dos softwares de negociação do sistema permitirão otimizar o lucro líquido, mas geralmente não é o que o comerciante do mundo real deve ser o objetivo mais importante. Para comparar sistemas, escolhi a medida de proporção K. Desenvolvido por Lars Kestner e detalhado em um artigo em Stocks amp Commodities. Esta medida pode ser chamada de uma das medidas mais importantes do desempenho de um sistema. O K-ratio é uma medida de desempenho sem unidade que pode ser comparada em mercados e períodos de tempo. Juntos, o índice Sharpe e a relação K são as medidas mais importantes ao avaliar o desempenho da estratégia comercial. Para obter mais informações sobre como escolher um objetivo para um sistema de negociação, consulte Sistemas de negociação quantitativa por Howard Bandy. Continuação na edição de janeiro da Análise Técnica de Stocks amp Commodities Extraído de um artigo originalmente publicado na edição de janeiro de 2009 da revista Technical Analysis of Stock ampères Commodities. Todos os direitos reservados. Copie Copyright 2009, Análise Técnica, Inc. O que é Walk Forward Analysis Avançar Avançado anaylsis é o processo de otimização de um sistema comercial usando um conjunto limitado de parâmetros e, em seguida, testando o melhor parâmetro otimizado definido em dados fora da amostra. Isso é semelhante a como você usaria seu consultor especialista em negociação ao vivo. Os princípios da análise progressiva foram descritos pela primeira vez no livro The Evaluation and Optimization of Trading Strategies de Robert Pardo. Para realizar uma análise progressiva no MetaTrader, primeiro otimize o consultor especialista no Strategy Tester. Em seguida, escolha o resultado mais lucrativo na guia Resultados da Otimização e execute um backtest durante um período de tempo imediatamente após o período de otimização. A data de término do período de otimização é igual à data de início do período de teste. Este processo é repetido repetidamente até atingir um tamanho de amostra satisfatório. Se o consultor especialista tiver um bom desempenho no teste, em relação aos resultados de otimização, pode-se concluir que o consultor especialista provavelmente será rentável na negociação ao vivo. Se, por outro lado, o consultor perito executa mal nos testes, então os parâmetros de otimização ou a duração dos períodos de teste e otimização precisarão ser ajustados. Se, após muitas tentativas, o consultor perito ainda não tiver um bom desempenho no teste, então pode-se concluir que o sistema de negociação não é lucrativo. A animação à direita ilustra o procedimento de análise avançado. Uma otimização é realizada durante um período mais longo (os dados na amostra) e, em seguida, o conjunto de parâmetros otimizados é testado durante um período mais curto subseqüente (dados fora da amostra). Os períodos de otimização e teste são deslocados para a frente e o processo é repetido até obter um tamanho de amostra adequado. Fonte Um exemplo de uma análise de marcha para frente Fornecer um exemplo da vida real: íamos fazer uma análise progressiva em um consultor especializado, usando o EURUSD M30. Bem otimize este consultor especializado durante um período de 120 dias. Nós escolhemos os 3 ou 4 parâmetros mais importantes para otimizar, de modo a não otimizar ou ajustar a curva nos resultados. Além disso, menos parâmetros significam um teste mais rápido. Bem, selecione o resultado mais lucrativo e reflite esses parâmetros durante um período de 30 dias imediatamente após o período de otimização. Recomenda-se usar um período de teste de aproximadamente 25 do comprimento do período de otimização. Uma vez que gravamos nossos resultados, bem, mova o próximo período de otimização e teste em 30 dias. Após 12 rodadas consecutivas de otimização e testes, bem, tenha um valor de anos de dados de análise avançados. Comparamos o lucro diário médio dos períodos de otimização com o lucro diário médio para os períodos de teste. Isso nos dará um cálculo chamado de taxa de eficiência de progresso. Uma relação de eficiência progressiva superior a 0,5 é considerada um resultado muito bom. É o que chamamos de sistema de negociação robusto. No entanto, um consultor especialista é negociável, desde que seja consistentemente rentável durante vários períodos de teste. Se o índice de eficiência progressiva é negativo, isso significa que o consultor especialista não apresentou desempenho em relação aos resultados de otimização. Claro, você pode fazer uma análise progressiva manualmente no MetaTraders Strategy Tester. Mas o processo é tedioso, demorado e propenso ao erro. Este é o lugar onde o software Walk Forward Analyzer entra. O programa executará automaticamente uma análise progressiva usando MetaTraders Strategy Tester durante qualquer período de tempo, com apenas algumas configurações fornecidas pelo usuário.

No comments:

Post a Comment