Thursday 20 February 2020

Backtesting das estratégias de negociação


Backtesting O que é Backtesting Backtesting é o processo de testar uma estratégia de negociação em dados históricos relevantes para garantir sua viabilidade antes que o comerciante arrisque qualquer capital real. Um comerciante pode simular a negociação de uma estratégia durante um período de tempo adequado e analisar os resultados para os níveis de rentabilidade e risco. BREAKING DOWN Backtesting Se os resultados atendem aos critérios necessários que são aceitáveis ​​para o comerciante, a estratégia pode então ser implementada com algum grau de confiança de que resultará em lucros. Se os resultados forem menos favoráveis, a estratégia pode ser modificada, ajustada e otimizada para alcançar os resultados desejados, ou pode ser completamente descartada. Uma quantidade significativa do volume negociado no mercado financeiro de hoje é feita por comerciantes que usam algum tipo de automação de computador. Isto é especialmente verdadeiro para estratégias comerciais baseadas em análises técnicas. Backtesting é parte integrante do desenvolvimento de um sistema de negociação automatizado. Backtesting significativo Quando feito corretamente, backtesting pode ser uma ferramenta inestimável para tomar decisões sobre se utilizar uma estratégia de negociação. O período de tempo da amostra em que um backtest é executado é crítico. A duração do período de tempo da amostra deve ser suficientemente longa para incluir períodos de diferentes condições do mercado, incluindo as tendências de elevação, as tendências de baixa e a negociação limitada. Realizar um teste em apenas um tipo de condição de mercado pode produzir resultados únicos que podem não funcionar bem em outras condições do mercado, o que pode levar a conclusões falsas. O tamanho da amostra no número de trades nos resultados do teste também é crucial. Se o número da amostra de negócios for muito pequeno, o teste pode não ser estatisticamente significante. Uma amostra com muitos negócios durante um período muito longo pode produzir resultados otimizados, em que um número irresistible de negociações vencedoras coalesce em torno de uma condição ou tendência de mercado específica favorável à estratégia. Isso também pode causar um comerciante para tirar conclusões enganosas. Mantendo-o real Um backtest deve refletir a realidade na melhor medida possível. Os custos de negociação que podem ser considerados insignificantes pelos comerciantes, quando analisados ​​individualmente, podem ter um impacto significativo quando o custo total é calculado durante todo o período de teste. Estes custos incluem comissões, spreads e derrapagens, e podem determinar a diferença entre se uma estratégia de negociação é lucrativa ou não. A maioria dos pacotes de software de backtesting incluem métodos para explicar esses custos. Talvez a métrica mais importante associada ao backtesting seja o nível de robustez das estratégias. Isto é conseguido comparando os resultados de um teste de volta otimizado em um período de tempo de amostra específico (referido como na amostra) com os resultados de um teste de retorno com a mesma estratégia e configurações em um período de tempo de amostra diferente (referido como out - De-amostra). Se os resultados forem igualmente rentáveis, a estratégia pode ser considerada válida e robusta e está pronta para ser implementada em mercados em tempo real. Se a estratégia falhar nas comparações fora da amostra, então a estratégia precisa de um desenvolvimento adicional, ou deve ser abandonada por completo. Há alguns corretores que fornecem backtesting aos clientes como parte de sua suíte de software para clientes. No entanto, na maioria das vezes, essas são caixa preta no sentido de que você não sabe como os cálculos são feitos. Em seguida, existem backtesters gratuitos on-line. Mas IMO você obtém o que você paga. O software autônomo pode ser pesquisado em: Backtesting Software A lista inclui software backtesting incluído em ferramentas de corretoras, mas também possui software autônomo. Se você está negociando para ganhar a vida (seu próprio dinheiro ou alguém) é minha preferência para usar o software autônomo. Espero que seja útil. 794 Visualizações middot View Upvotes middot Não é para reprodução Harsh Vardhan Singh. Trabalhou por 8 anos em um banco de investimento global como um comerciante de derivados complexo. Em vez de lhe contar a melhor ferramenta ou processo que você pode usar para fazer backtesting, deixe-me concentrar-se nos maiores erros que você precisa evitar para fazer um backtest confiável. Estes são alguns dos fatores mais importantes que você precisa ter em mente quando testar estratégias de negociação de ações - Sobreposição de dados: Este é, de longe, o maior erro que a maioria das pessoas faz na busca de criar uma estratégia que dê resultados espetaculares. Ao criar a estratégia, se você começar a ajustar seus parâmetros de uma forma que maximize os retornos, então essa estratégia provavelmente falhará miseravelmente em condições de vida. Existem duas maneiras de superar isso: testes fora da amostra e criação de estratégias baseadas em lógica ao invés de ajustes de parâmetros de entrada. Compartilhamento avançado: isso acontece quando você usa dados para gerar sinais que de outra forma não estariam disponíveis nesse momento no passado. Por exemplo, se o final do ano financeiro de uma empresa for março e você use seus dados de ganhos para o ano anterior em 1º de abril, é muito provável que a empresa não anunciasse dados antes de maio ou junho. Isso resultaria em um viés voltado para o futuro. Sobrevida de sobrevivência. Este é um daqueles difíceis de notar erros. Digamos que você tem uma estratégia que opera a partir de uma lista de 500 ações de pequena capitalização com base em alguns indicadores técnicos. As hipóteses são que, se você tentar obter dados de preços históricos de 10 anos para esses 500 estoques para o seu backtesting, você não incluirá os dados de todos os estoques que foram retirados da lista nesse período de 10 anos. Quando você testar sua estratégia, você não contabilizaria possíveis negócios que teriam sido gerados em qualquer uma dessas ações ruins se você realmente tivesse executado essa estratégia durante esse período. Concentrando-se puramente em retornos. Há vários parâmetros que você precisa considerar para julgar a qualidade de uma estratégia. Concentrar-se puramente em retornos pode levar a problemas importantes. Por exemplo, se a Estratégia A oferecer 10 retornos ao longo de um determinado período com uma redução máxima de -2, e a estratégia B dá 12 retornos com uma redução de -10, então B não é claramente uma estratégia superior para A. Existem outros parâmetros importantes Tais como redução, taxa de sucesso, taxa de sharpe, etc. Impacto do mercado, taxas de transação. Ao analisar a viabilidade de uma estratégia, é muito importante considerar o possível impacto no mercado do comércio e também os custos de transação incorridos. Você pode ser tentado a criar uma estratégia que garanta grandes volumes de alguns estoques de baixa liquidez que tendem a dar retornos excepcionais. Mas quando você entra no mercado para executar esta estratégia, uma grande encomenda em um estoque ilíquido irá mover o preço que você não teria tido em conta em seus testes. Além disso, os custos de transação também podem alterar substancialmente os retornos, de modo que você sempre deve analisar os lucros líquidos. Mineração de dados . Isso é bastante semelhante ao problema de superposição de dados. Se você torturar os dados por tempo suficiente, confessará qualquer coisa. Essa é uma piada comum entre cientistas de dados que acreditam que, se você gastar tempo suficiente, você pode encontrar um padrão em quase qualquer conjunto de dados. Isso não significa necessariamente que esse padrão será válido no futuro. Mudança de fundamentos. Pode muito bem acontecer que você encontre uma estratégia que desempenhe excepcionalmente bem em dados passados. Mas uma mudança fundamental na dinâmica do mercado pode fazer a mesma estratégia falhar no futuro. É bem sabido que quase qualquer boa estratégia precisa continuar evoluindo com as mudanças nas condições do mercado. Quadro de tempo pequeno. É crucial testar a estratégia durante um período de tempo suficientemente longo e na mudança das condições de mercado. Isto é especialmente verdadeiro para as estratégias de negociação de ações que podem ser excepcionalmente bem em um mercado de touro, mas eliminariam sua conta bancária em um mercado de lado ou urso. Há muitas outras coisas a considerar quando testar. Mas eventualmente, a única maneira de garantir que uma estratégia funciona em condições de vida é testá-lo em condições de vida. (Disclaimer: Eu sou o co-fundador da Tauro Wealth. As opiniões apresentadas aqui são apenas minhas opiniões pessoais e são apenas para fins informativos.) Tauro Wealth é uma empresa de tecnologia financeira (Tauro Wealth) que está buscando resolver os problemas enfrentados por Investidores de varejo na Índia. Esperamos fornecer soluções globais de investimento a longo prazo em uma fração dos custos tradicionais. 2,8k Vistas middot View Upvotes middot Não para reprodução O software Zerodha pi trading incorporou a opção de codificar, fazer backtest e levar uma estratégia ao vivo nos mercados de ações indianos. Selecione o estoque para backtesting - aqui selecionamos o futuro do índice Nifty para backtesting. Codificação e Backtesting Agora você pode codificar as condições de negociação para comprar, vender, comprar posição sair e sair da posição de venda. Por exemplo, nós temos uma estratégia de estratégia móvel exponencial codificada: condição de compra: ClosegtEMA (fechar, 50), o que significa comprar quando o fechamento do preço das ações exceder a média móvel exponencial de 50 dias. Condição de venda: CloseltEMA (fechar, 50), o que significa vender quando o fechamento do preço das ações é inferior a média móvel exponencial de 50 dias. Agora quadro de tempo de entrada, não há dias para voltar a testar e, em seguida, clique em Teste de volta. Agora o relatório de teste de retorno é gerado como mostrado na imagem abaixo. O relatório mostra o número de negócios, o número de negócios lucrativos, o lucro líquido, o draw down máximo, a relação risco-recompensa e etc. O software pi está disponível a custo zero para os clientes da Zerodha. Abra uma conta com eles e obtenha acesso à plataforma de negociação avançada. Back Test demo video 576 Visualizações middot View Upvotes middot Não para ReproduçãoBacktesting: Interpretando o passado O Backtesting é um componente-chave do desenvolvimento efetivo do sistema comercial. É conseguido reconstruindo, com dados históricos, trades que teriam ocorrido no passado usando regras definidas por uma determinada estratégia. O resultado oferece estatísticas que podem ser usadas para avaliar a eficácia da estratégia. Usando esses dados, os comerciantes podem otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas e ganhar confiança em sua estratégia antes de aplicá-la aos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado provavelmente funcionará bem no futuro, e, inversamente, qualquer estratégia que tenha tido um desempenho fraco no passado provavelmente irá apresentar um desempenho fraco no futuro. Este artigo analisa o que os aplicativos são usados ​​para testar, o tipo de dados obtidos e a forma de usá-lo. O Backtesting de dados e ferramentas pode fornecer muitos comentários estatísticos valiosos sobre um determinado sistema. Algumas estatísticas de backtesting universais incluem: Lucro ou perda líquida - Ganho ou perda de porcentagem líquida. Prazo - Datas passadas em que ocorreu teste. Universo - Estoques incluídos no backtest. Medidas de volatilidade - percentual máximo para cima e para baixo. Médias - Ganho médio percentual e perda média, barras médias mantidas. Exposição - Porcentagem de capital investido (ou exposto ao mercado). Razões - Índice de vitórias para perdas. Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco. Normalmente, o software backtesting terá duas telas que são importantes. O primeiro permite ao comerciante personalizar as configurações de backtesting. Essas personalizações incluem tudo, desde o período de tempo até os custos de comissão. Aqui está um exemplo dessa tela em AmiBroker: a segunda tela é o relatório de resultados de backtesting real. Aqui é onde você pode encontrar todas as estatísticas mencionadas acima. Mais uma vez, aqui está um exemplo desta tela no AmiBroker: em geral, a maioria dos softwares de negociação contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para executar dimensionamento automático de posição, otimização e outros recursos mais avançados. Os 10 mandamentos Existem muitos fatores pelos quais os comerciantes prestam atenção quando estão testando as estratégias de negociação. Aqui está uma lista das 10 coisas mais importantes a serem lembradas durante o backtesting: leve em consideração as amplas tendências do mercado no período em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia só foi testada de 1999 a 2000, pode não estar bem em um mercado ostentoso. Muitas vezes, é uma boa idéia fazer um teste longo em um longo período de tempo que engloba vários tipos diferentes de condições de mercado. Tome em consideração o universo em que ocorreu o teste de retorno. Por exemplo, se um sistema de mercado amplo é testado com um universo composto por estoques tecnológicos, pode deixar de funcionar bem em diferentes setores. Como regra geral, se uma estratégia é direcionada a um gênero específico de estoque, limite o universo a esse gênero, mas, em todos os outros casos, mantenha um grande universo para fins de teste. As medidas de volatilidade são extremamente importantes a serem consideradas no desenvolvimento de um sistema de comércio. Isto é especialmente verdadeiro para contas alavancadas, que são sujeitas a chamadas de margem se seu patrimônio cai abaixo de um determinado ponto. Os comerciantes devem procurar reduzir a volatilidade para reduzir o risco e permitir uma transição mais fácil dentro e fora de uma determinada ação. O número médio de barras mantidas é também muito importante para assistir ao desenvolver um sistema comercial. Embora a maioria dos softwares de backtesting incluam custos de comissão nos cálculos finais, isso não significa que você deve ignorar esta estatística. Se possível, aumentando o número médio de barras mantidas pode reduzir os custos de comissão e melhorar seu retorno geral. A exposição é uma espada de dois gumes. O aumento da exposição pode levar a maiores lucros ou maiores perdas, enquanto a diminuição da exposição significa menores lucros ou menores perdas. No entanto, em geral, é uma boa idéia manter a exposição abaixo de 70 para reduzir o risco e permitir uma transição mais fácil dentro e fora de um dado estoque. A estatística de perda de ganhos médios, combinada com o índice de ganhos para perdas, pode ser útil para determinar o dimensionamento ótimo da posição e gerenciamento de dinheiro usando técnicas como o critério Kelly. (Ver Gestão de Dinheiro Usando o Critério de Kelly.) Os comerciantes podem assumir posições maiores e reduzir os custos de comissão, aumentando seus ganhos médios e aumentando seu índice de ganhos para perdas. O retorno anualizado é importante porque é usado como uma ferramenta para comparar os rendimentos dos sistemas em relação a outros locais de investimento. É importante não só olhar para o retorno anual anualizado, mas também levar em consideração o aumento ou diminuição do risco. Isso pode ser feito observando o retorno ajustado ao risco, que contabiliza vários fatores de risco. Antes de ser adotado um sistema comercial, ele deve superar todos os outros locais de investimento com risco igual ou menor. A personalização do backtesting é extremamente importante. Muitos aplicativos de backtesting têm entrada para valores de comissão, tamanhos de lotes redondos (ou fracionários), tamanhos de garotas, requisitos de margem, taxas de juros, suposições de deslizamento, regras de classificação de posição, regras de saída da mesma barra, configurações de parada (muito próximas) e muito mais. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o corretor que será usado quando o sistema for atualizado. Backtesting às vezes pode levar a algo conhecido como over-optimization. Esta é uma condição em que os resultados de desempenho são tão atentos ao passado que não são mais precisos no futuro. Geralmente, é uma boa idéia implementar regras que se aplicam a todos os estoques ou um conjunto seleto de ações segmentadas, e não são otimizadas na medida em que as regras não são mais compreensíveis pelo criador. Backtesting nem sempre é a maneira mais precisa de avaliar a eficácia de um determinado sistema de negociação. Às vezes, as estratégias que funcionaram bem no passado não conseguem fazer bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de trocar papel com um sistema que tenha sido testado com sucesso antes de entrar em operação para ter certeza de que a estratégia ainda se aplica na prática. Conclusão Backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema comercial. Se criado e interpretado adequadamente, pode ajudar os comerciantes a otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas, bem como ganhar confiança em sua estratégia antes de aplicá-la aos mercados do mundo real. Recursos Tradecision (tradecision) - Desenvolvimento de sistemas de negociação de gama alta AmiBroker (amibroker) - Desenvolvimento de sistema de comércio de orçamento.

No comments:

Post a Comment