Walk Forward Testing 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 de mercado (na amostra) e, em seguida, verifique o desempenho do sistema testando-o para a frente no tempo em dados após a otimização Segmento (fora da amostra). Você avalia o sistema com base em quão bem ele executa nos dados do teste (fora da amostra), 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 seja 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 de negociação 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 é ruim, então você não deve trocar esse sistema. A premissa de realizar vários passos de otimização em etapas ao longo do tempo é que o passado recente é uma base melhor para selecionar valores de 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 acompanham 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 todos os problemas envolvidos, podemos recomendar o livro Howard Bandys: Sistemas de negociação quantitativos (consulte os links na página do AmiBroker). Para usar a otimização Walk-Forward, siga estas etapas: Goto Tools-gtAutomatic Analysis Clique no botão Configurações e, em seguida, mude para a guia Walk-Forward Aqui você pode ver as configurações Walk forward para otimização In-sample, fora de amostra backtest Start e End dates Marca período inicial começar fim Este período será movido para a frente pelo passo 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 MODO EASY é selecionado, o que simplifica o processo de configuração de parâmetros WF. Assume 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 nestas duas premissas, o modo EASY toma a data da amostra END E apresenta 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 EASY garante a correção das configurações do procedimento WF. Você deve usar o Modo Fácil (EOD) ao testar dados do fim do 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 configura 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 podem 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 de destino de otimização define o código de otimização COLUMN NAME que será usado para classificar os resultados e encontrar o melhor. 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ê adicionou 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 DESTINADA no botão Otimizar e selecione Otimização de encaminhar para frente. Isso executará a seqüência de otimizações e backtest e os resultados serão exibidos no documento Avançar Avançado que está aberto no Quadro de aplicação principal. Quando a otimização é executada, você pode clicar no botão MINIMIZAR na caixa de diálogo Progresso para minimizá-la - isso permite ver a saída Avançar para Avanço durante as etapas de otimização. Equivalência combinada IN-SAMPLE e OUT-OF-SAMPLE As ações combinadas em amostra e fora da amostra estão disponíveis por tickers compostos OSEQUITY (períodos consecutivos de IS e OOS são concatenados e dimensionados para manter a linha de continuidade da equidade - essa abordagem pressupõe que você geralmente Falar estão acumulando lucros). Para exibir a equidade IS e OOS, você pode usar, por exemplo, isso: ISEQUITY. In-Sample Equity. cor vermelha. StyleLine) PlotForeign (teste Walk-forward 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 de mercado (8221in-sample8221) , Então verifique o desempenho do sistema testando-o para a frente no tempo nos dados após o segmento de otimização (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 os dados em que foi otimizado. O processo pode ser repetido em segmentos de tempo subseqüentes. A ilustração a seguir 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 De 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 está devidamente projetado, t 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 é ruim, então você não deve trocar esse sistema. A premissa de realizar vários passos de otimização em etapas ao longo do tempo é que o passado recente é uma base melhor para selecionar valores de 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 acompanham 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 a verificação do sistema usando o procedimento walk-forward e todas as questões envolvidas, podemos recomendar o livro Howard Bandys: QuotQuantitative Trading Systemsquot (consulte os links na página AmiBroker). Para usar a otimização Walk-Forward, siga estas etapas: Goto Tools-gtAutomatic Analysis Clique no botão Configurações e, em seguida, mude para a guia Walk-Forward Aqui você pode ver as configurações Walk forward para otimização In-sample, fora de amostra backtest Start e End dates Marque o período inicial do início inicial Este período será movido para a frente por Etapa até o final chegar à ú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 nestas duas premissas, o modo 8220EASY8221 toma a data da amostra END E apresenta 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 do fim do 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 configura 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 podem 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 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ê adicionou via interface de backtester personalizada. Depois de definir as configurações de Walk-Forward, vá para Análise automática e pressione a SETA DESTINADA 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á sendo executada, você pode clicar no botão 8220MINIMIZE8221 na caixa de diálogo Progresso para minimizá-la - isso permite ver a saída Walk Forward durante as etapas de otimização. Equivalência combinada IN-SAMPLE e OUT-OF-SAMPLE As ações combinadas em amostra e fora da amostra estão disponíveis por tickers compostos OSEQUITY (períodos consecutivos de IS e OOS são concatenados e dimensionados para manter a linha de continuidade da equidade - essa abordagem pressupõe que você geralmente Falar estão acumulando lucros). Para exibir a equidade IS e OOS, 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 quotPSchot 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 subsequente de fora da amostra usa o patrimônio inicial igual ao passo anterior que finaliza o patrimônio. (Anteriormente usou constante inicial Equidade). Essa 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 novo parâmetro opcional - CombineMethod bool AddCustomMetric (string Título, variante Valor, 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 e questummary 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 do 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 da etapa 2 do último passo fora da amostra, o relatório de resumo mostrará o valor da métrica personalizada a partir do último Soma da etapa 3 fora da amostra, - 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 O exemplo de 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. Backtesting e Teste Avançado: A Importância de Correlação Os comerciantes que estão ansiosos para tentar uma idéia comercial em um mercado ao vivo muitas vezes cometem o erro de confiar Inteiramente em resultados de teste para determinar se o sistema será lucrativo. Enquanto o backtesting pode fornecer aos comerciantes informações valiosas, muitas vezes é enganador e é apenas uma parte do processo de avaliação. Testes fora da amostra e teste de desempenho avançado fornecem confirmação adicional quanto à eficácia de um sistema, e podem mostrar cores verdadeiras de sistemas, antes que o dinheiro real esteja na linha. Uma boa correlação entre resultados de teste de backtesting, out-of-sample e forward performance é vital para determinar a viabilidade de um sistema de comércio. (Oferecemos algumas dicas sobre este processo que podem ajudar a refinar suas estratégias de negociação atuais. Para saber mais, leia Backtesting: Interpreting the Past.) Backtesting Basics Backtesting refere-se à aplicação de um sistema de negociação a dados históricos para verificar como um sistema teria realizado durante O período de tempo especificado. Muitas das plataformas de negociação de hoje apoiam backtesting. Os comerciantes podem testar idéias com algumas batidas de teclas e obter informações sobre a eficácia de uma idéia sem arriscar fundos em uma conta de negociação. Backtesting pode avaliar idéias simples, como a forma como um crossover médio móvel seria executado em dados históricos, ou sistemas mais complexos com uma variedade de insumos e disparadores. Enquanto uma idéia pode ser quantificada, ela pode ser testada novamente. Alguns comerciantes e investidores podem procurar a experiência de um programador qualificado para desenvolver a idéia em uma forma testável. Normalmente, isso envolve um programador que codifica a idéia na linguagem proprietária hospedada pela plataforma de negociação. O programador pode incorporar variáveis de entrada definidas pelo usuário que permitem ao comerciante ajustar o sistema. Um exemplo disto seria no sistema de cruzamento de média móvel simples observado acima: o comerciante poderia inserir (ou alterar) os comprimentos das duas médias móveis usadas no sistema. O comerciante poderia voltar a testar para determinar quais comprimentos de médias móveis teriam realizado o melhor nos dados históricos. (Obtenha mais informações no Tutorial de Negociação Eletrônica.) Estudos de Otimização Muitas plataformas de negociação também permitem estudos de otimização. Isso implica entrar em um intervalo para a entrada especificada e deixar o computador fazer a matemática para descobrir o que a entrada teria realizado o melhor. Uma otimização multi-variável pode fazer a matemática para duas ou mais variáveis combinadas para determinar quais níveis juntos teriam alcançado o melhor resultado. Por exemplo, os comerciantes podem dizer ao programa quais insumos eles gostariam de adicionar à sua estratégia; estes seriam então otimizados para seus pesos ideais, dado os dados históricos testados. Backtesting pode ser excitante na medida em que um sistema não lucrativo muitas vezes pode ser magicamente transformado em uma máquina de fazer dinheiro com algumas otimizações. Infelizmente, ajustar um sistema para alcançar o maior nível de rentabilidade passada muitas vezes leva a um sistema que funcionará mal em negociações reais. Esta sobre-otimização cria sistemas que ficam bons somente em papel. Curve fitting é o uso de análises de otimização para criar o maior número de negócios vencedores com o maior lucro nos dados históricos usados no período de teste. Embora pareça impressionante em resultados de backtesting, o ajuste de curva leva a sistemas não confiáveis, uma vez que os resultados são essencialmente personalizados para apenas esse dado e período de tempo específicos. Backtesting e otimização fornecem muitos benefícios para um comerciante, mas isso é apenas parte do processo ao avaliar um sistema comercial potencial. Um próximo passo dos comerciantes é aplicar o sistema a dados históricos que não tenham sido utilizados na fase inicial de teste posterior. (A média móvel é fácil de calcular e, uma vez plotada em um gráfico, é uma poderosa ferramenta de manchas visuais. Para obter mais informações, leia as Médias móveis simples, faça as tendências se destacarem.) Dados em amostra versus dados fora da amostra Ao testar uma idéia sobre dados históricos, é benéfico reservar um período de tempo de dados históricos para fins de teste. Os dados históricos iniciais em que a idéia é testada e otimizada são referidos como dados na amostra. O conjunto de dados que foi reservado é conhecido como dados fora da amostra. Esta configuração é uma parte importante do processo de avaliação porque fornece uma maneira de testar a idéia em dados que não foram um componente no modelo de otimização. Como resultado, a idéia não terá sido influenciada de forma alguma pelos dados fora da amostra e os comerciantes poderão determinar o quão bem o sistema pode executar em novos dados, ou seja, na negociação da vida real. Antes de iniciar qualquer backtesting ou otimização, os comerciantes podem reservar uma porcentagem dos dados históricos a serem reservados para testes fora da amostra. Um método é dividir os dados históricos em terços e segregar um terço para uso nos testes fora da amostra. Somente os dados na amostra devem ser usados para o teste inicial e qualquer otimização. A Figura 1 mostra uma linha de tempo onde um terço dos dados históricos é reservado para testes fora da amostra e dois terços são usados para o teste na amostra. Embora a Figura 1 represente os dados fora da amostra no início do teste, os procedimentos típicos teriam a parcela fora da amostra imediatamente anterior ao desempenho para a frente. Figura 1: uma linha de tempo que representa o comprimento relativo de dados na amostra e fora da amostra usados no processo de teste posterior. Uma vez que um sistema comercial foi desenvolvido usando dados em amostra, ele está pronto para ser aplicado aos dados fora da amostra. Os comerciantes podem avaliar e comparar os resultados de desempenho entre os dados na amostra e fora da amostra. A correlação refere-se a semelhanças entre os desempenhos e as tendências gerais dos dois conjuntos de dados. As métricas de correlação podem ser usadas na avaliação de relatórios de desempenho de estratégia criados durante o período de teste (um recurso que a maioria das plataformas de negociação fornece). Quanto mais forte for a correlação entre os dois, melhor será a probabilidade de um sistema funcionar bem no teste de desempenho direto e na negociação ao vivo. A Figura 2 ilustra dois sistemas diferentes que foram testados e otimizados em dados na amostra, depois aplicados a dados fora da amostra. O gráfico à esquerda mostra um sistema claramente ajustável para funcionar bem nos dados na amostra e falhou completamente nos dados fora da amostra. O gráfico à direita mostra um sistema que funcionou bem em dados internos e fora da amostra. Figura 2: Duas curvas de equidade. Os dados comerciais antes de cada seta amarela representam testes na amostra. Os negócios gerados entre as setas amarelas e vermelhas indicam testes fora da amostra. Os negócios após as setas vermelhas são das fases de teste de desempenho para frente. Se houver pouca correlação entre o teste na amostra e fora da amostra, como o gráfico esquerdo na Figura 2, é provável que o sistema tenha sido superestimado e não funcionará bem na negociação ao vivo. Se houver uma forte correlação no desempenho, como visto no gráfico certo na Figura 2, a próxima fase da avaliação envolve um tipo adicional de testes fora da amostra, conhecidos como testes de desempenho para a frente. (Para mais informações sobre a previsão, consulte Previsão Financeira: O Método Bayesiano.) Princípios básicos do teste de desempenho avançado Teste de desempenho direto, também conhecido como comércio de papel. Fornece aos comerciantes outro conjunto de dados fora da amostra para avaliar um sistema. O teste de desempenho avançado é uma simulação de negociação real e envolve seguir a lógica dos sistemas em um mercado ao vivo. Também é chamado de troca de papel, uma vez que todas as negociações são executadas apenas em papel, as entradas de comércio e as saídas são documentadas juntamente com qualquer lucro ou perda do sistema, mas nenhuma transação real é executada. Um aspecto importante do teste de desempenho direto é seguir exatamente a lógica dos sistemas, torna-se difícil, se não impossível, avaliar com precisão esta etapa do processo. Os comerciantes devem ser honestos em relação a quaisquer entradas e saídas de comércio e evitar comportamentos como cereais que escolhem comércios ou não incluindo uma troca de papel racionalizando que eu nunca teria negociado. Se o comércio tivesse ocorrido na sequência da lógica dos sistemas, ele deveria ser documentado e avaliado. Muitos corretores oferecem uma conta de negociação simulada onde os negócios podem ser colocados e o lucro e perda correspondente calculados. O uso de uma conta de negociação simulada pode criar uma atmosfera semi-realista para praticar o comércio e avaliar ainda mais o sistema. A Figura 2 também mostra os resultados para o teste de desempenho para frente em dois sistemas. Novamente, o sistema representado no gráfico à esquerda não consegue superar o teste inicial em dados na amostra. O sistema mostrado no gráfico certo, no entanto, continua a funcionar bem em todas as fases, incluindo o teste de desempenho para frente. Um sistema que mostra resultados positivos com boa correlação entre os testes de desempenho na amostra, fora da amostra e para frente está pronto para ser implementado em um mercado ao vivo. The Bottom Line Backtesting é uma valiosa ferramenta disponível na maioria das plataformas de negociação. A divisão de dados históricos em vários conjuntos para fornecer testes em amostra e fora da amostra pode fornecer aos comerciantes um meio prático e eficiente para avaliar uma idéia e sistema de negociação. Como a maioria dos comerciantes emprega técnicas de otimização no backtesting, é importante então avaliar o sistema em dados limpos para determinar sua viabilidade. Continuar os testes fora da amostra com teste de desempenho para a frente fornece outra camada de segurança antes de colocar um sistema no mercado arriscando dinheiro real. Os resultados positivos e a boa correlação entre os testes de backtesting e teste de desempenho avançado na amostra e fora da amostra aumentam a probabilidade de um sistema funcionar bem na negociação real. (Para obter uma visão abrangente sobre análise técnica, consulte Análise técnica: Introdução.)
No comments:
Post a Comment