Wednesday, 11 April 2018

Testing trading strategies in excel


Em vez de contar a você a melhor ferramenta ou processo que você pode usar para backtesting, deixe-me concentrar nos maiores erros que você precisa evitar para fazer um backtest confiável. Esses são alguns dos fatores mais importantes que você precisa ter em mente ao fazer o backtesting de estratégias de negociação de ações - Sobrecarga de dados: Este é, de longe, o maior erro que a maioria das pessoas faz na busca de uma estratégia que forneça resultados espetaculares. Ao criar a estratégia, se você começar a ajustar seus parâmetros de uma maneira que maximize os retornos, essa estratégia provavelmente falhará miseravelmente em condições reais. Existem 2 maneiras de superar isso - testes fora da amostra e criação de estratégias baseadas em lógica, em vez de ajustes nos parâmetros de entrada. Bias de previsão: isso acontece quando você usa dados para gerar sinais que, de outra forma, não estavam disponíveis naquele momento no passado. Por exemplo, se o final do ano fiscal de uma empresa é março e você usa os dados de ganhos do ano anterior em 1º de abril, é muito provável que a empresa não tenha anunciado esses dados antes de maio ou junho. Isso resultaria em um viés prospectivo. Viés de sobrevivência . Este é um daqueles difíceis de perceber erros. Vamos dizer que você tem uma estratégia que troca de uma lista de 500 ações de pequena capitalização com base em alguns indicadores técnicos. As chances são de que, se você tentar obter dados de preços históricos de 10 anos para essas 500 ações para o seu backtesting, você não incluirá os dados de todas as ações que foram excluídas desse período de 10 anos. Quando você testa sua estratégia, você não levaria em conta as possíveis negociações que teriam sido geradas em qualquer uma dessas ações ruins se você tivesse realmente executado essa estratégia durante esse período. Concentrando-se puramente nos retornos. Há vários parâmetros que você precisa considerar para avaliar a qualidade de uma estratégia. Concentrar-se puramente nos retornos pode levar a grandes problemas. Por exemplo, se a Estratégia A dá 10 retornos durante um certo período com um rebaixamento máximo de -2, e a estratégia B dá 12 retornos com um rebaixamento de -10, então B claramente não é uma estratégia superior para A. Existem outros parâmetros importantes tais como rebaixamento, taxa de sucesso, taxa de sharpe, etc. Impacto no mercado, custos de transação. Ao analisar a viabilidade de uma estratégia, é muito importante considerar o possível impacto no mercado do negócio e também os custos de transação incorridos. Você pode ser tentado a criar uma estratégia que compra / vende grandes volumes de algumas ações de baixa liquidez que tendem a gerar retornos excepcionais. Mas quando você entra no mercado para executar essa estratégia, uma grande ordem sobre uma ação ilíquida irá mover o preço que você não teria contabilizado nos seus testes. Além disso, os custos de transação também podem alterar substancialmente os retornos, portanto, você deve sempre observar os lucros líquidos. Mineração de dados . Isso é bem parecido com o problema de sobrealimentação de dados. Se você torturar os dados por tempo suficiente, confessará qualquer coisa. Essa é uma piada comum entre os cientistas de dados que acreditam que, se você passar bastante tempo, poderá encontrar um padrão em quase todos os conjuntos de dados. Isso não significa necessariamente que esse padrão será válido no futuro. Os fundamentos mudam. Pode muito bem acontecer que você encontre uma estratégia que tenha um desempenho excepcional nos dados anteriores. Mas uma mudança fundamental na dinâmica do mercado pode fazer com que a mesma estratégia falhe no futuro. É sabido que quase qualquer boa estratégia precisa continuar evoluindo com as mudanças nas condições do mercado. Pequeno período de tempo. É crucial testar a estratégia durante um período de tempo suficientemente longo e em condições de mercado variáveis. Isto é especialmente verdadeiro para as estratégias de negociação de ações que podem funcionar excepcionalmente bem em um mercado de touro, mas iria acabar com sua conta bancária em um mercado lateral ou bear. Há muitas outras coisas a serem consideradas no backtesting. Mas, eventualmente, a única maneira de garantir que uma estratégia funcione em condições reais é testá-la em condições reais. (Isenção de responsabilidade: 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á procurando resolver os problemas enfrentados por investidores de varejo na Índia. Esperamos fornecer soluções abrangentes de investimento a longo prazo por uma fração dos custos tradicionais. 2,1k Visualizações middot Ver Upvotes middot Não para reprodução Mccabe Hurley. Opção Marker Market, Mentor Options Negociação de equipes para clientes Existem algumas corretoras que fornecem backtesting para clientes como parte de seu pacote de software de cliente. No entanto, mais frequentemente do que não, esses são caixa preta no sentido de que você não sabe como os cálculos são feitos. Em seguida, há backtesters gratuitos on-line. Mas IMO você obtém o que você paga. O software autônomo pode ser pesquisado em: Software de backtesting A lista inclui software de backtesting incluído em ferramentas de corretoras, mas também possui software independente. Se você está negociando para ganhar a vida (seu próprio dinheiro ou alguém), é minha preferência usar software independente. Espero que seja útil. 196 visualizações middot Ver Upvotes middot Não para reprodução Pratik Jain. Editor Chefe: Tradingtuitions Não há nada tão superior quanto o Amibroker quando se trata de Backtesting. É uma das ferramentas mais versáteis para o desenvolvimento e teste do sistema de negociação. Ele tem um mecanismo de backtest e otimização muito robusto fora da caixa. Além disso, ele também fornece uma interface personalizada de backtester, com a qual você pode brincar com as regras e métricas padrão do backtest. Confira abaixo alguns artigos que gira em torno de backtesting Amibroker: 1,9 mil visualizações middot View Upvotes middot não para reprodução I039ve fez 6000 este ano ativamente negociação de ações, mas agora eu tenho muito no meu prato. Qual é a melhor maneira de investir passivamente 60.000 Quais são as melhores ações para o dia de negociação Qual é a melhor estratégia de negociação em Forex I039m 16, Qual é a melhor maneira de aprender a fazer 150 por dia negociando tostão Qual site é o melhor para Negociação de ações small-cap EUA Quais são algumas estratégias de negociação e dicas de ações Qual é a melhor estratégia de negociação Meu backtest diz I039ll transformar 5.000 em cerca de 10.000.000 em um ano, o que eu provavelmente perder Qual é a melhor maneira de iniciar ações de negociação on-line para breve O que é a melhor estratégia de escalpelamento no Intraday para mercados de ações indianos com lucro mínimo (por exemplo, Rs.100 lucro em um comércio Rs.50.000) Qual é a melhor maneira de aprender e começar a negociar ações em mercados indianosAntes de usar ferramentas especializadas para trás - testing proponho que se tente primeiro a tabela dinâmica do MS Excel. A ferramenta de tabela dinâmica é ótima para inspeção, filtragem e análise de grandes conjuntos de dados. Neste artigo, apresentarei como criar uma estratégia simples baseada em tempo e como calcular seu desempenho histórico. A seguir, mostrarei como criar uma análise como a publicação anterior: 8220Sell in May and Go 8211 Real 8220. Etapa 1: Obter os dados Primeiro, precisamos obter os dados para a análise. Voltamo-nos para o Yahoo para buscar o índice Dow-Jones (ver lista de fontes de dados de mercado para outras fontes). De alguma forma, o Yahoo Finance esconde o botão de download para o índice Dow-Jones. Mas, é fácil adivinhar o link correto: salve esse arquivo em disco. Em seguida, abra-o com o MS Excel 2010 e continuamos com a próxima etapa. Etapa 2: Adicionar Colunas para Desempenho e Indicador Agora, neste arquivo, adicionamos o retorno de registro (Coluna 8220Retorno8221) para cada dia na série temporal: Então, adicionamos o indicador da estratégia de negociação 8211 nesse caso, apenas o mês. do ano: Finalmente, adicionamos um indicador de grupo: Década Etapa 3: Incluir Dados de Classificação da Tabela Dinâmica na Tabela Tabela Dinâmica Ferramentas - gt Opções - gt Resumir valor por - gt Soma Etapa 4: Formatação condicional Para obter uma visão geral da dados na tabela dinâmica, formatamos os valores em 8220Estilo de Perigo8221 e por 8220Etodificação Condicional8221: Estilos de Início - gt - gt Formatação Condicional Etapa 5: Calcular o desempenho real A soma dos retornos de registros na tabela dinâmica é uma boa indicação para o desempenho de uma estratégia de negociação. Mas, o desempenho acurado pode ser facilmente obtido a partir dos retornos de log: Agora, você está pronto: cada célula contém o desempenho de comprar o Índice Dow-Jones no início e vendê-lo no final de cada mês. Divirta-se com seus próprios estudos Você encontra um estudo detalhado sobre os desempenhos dos diferentes meses nos principais índices aqui. Conclusão O teste retroativo de estratégias de negociação simples é fácil usando as tabelas dinâmicas do Excel. Embora as estratégias mais avançadas geralmente exijam um pacote de software mais especializado (como vemos no teste de retorno do MACD), cinco etapas simples levam a insights aprofundados de uma estratégia baseada em tempo. Se a série de dados se tornar grande, é possível executar exatamente as mesmas etapas usando o MS Power Pivot. um suplemento gratuito do MS Excel com acesso ao banco de dados. Post navigation Deixe uma resposta Cancelar resposta Nice post. Estou feliz em pousar neste blog. Deixe-me sugerir-lhe isto: Para ver o desempenho real na tabela dinâmica, basta adicionar um campo calculado no menu: Opções gt Campos, Itens, Conjuntos de amplificadores gt Campo calculado8230 Em seguida, rotule-o 8220p8221 e digite a fórmula. 8220 EXP (Return) -18221 Você pode finalmente adicionar este campo à área de valores, para obter o 8220Sum de p8221 diretamente na tabela. Sim, você está certo Isso é muito melhor do que duplicar a tabela. Eu atualizarei este post asap.06 / 17/2013 A versão mais recente do TraderCode (v5.6) inclui novos indicadores de Análise Técnica, Gráficos de Pontos e Figuras e Backtesting de Estratégia. 06/17/2013 Última versão do NeuralCode (v1.3) para Negociação de Redes Neurais. 06/17/2013 ConnectCode Barcode Font Pack - ativa códigos de barras em aplicativos de escritório e inclui um add-in para o Excel que suporta a geração em massa de códigos de barras. 17/06/2013 O InvestmentCode, um conjunto abrangente de calculadoras e modelos financeiros para o Excel, já está disponível. 09/01/2009 Lançamento do Investimento Livre e Calculadora Financeira para o Excel. 02/1/2008 Lançamento do SparkCode Professional - add-in para a criação de Dashboards no Excel com sparklines 12/15/2007 Anúncio do ConnectCode Duplicate Remover - um poderoso suplemento para encontrar e remover entradas de duplicatas no Excel 09/08/2007 Lançamento TinyGraphs - add-in de código aberto para criação de minigráficos e minúsculos gráficos no Excel. Estratégia Backtesting no Excel Estratégia Backtesting Expert O Backtesting Expert é um modelo de planilha que permite criar estratégias de negociação usando os indicadores técnicos e executando as estratégias através de dados históricos. O desempenho das estratégias pode então ser medido e analisado de forma rápida e fácil. Durante o processo de backtesting, o Especialista em Backtesting percorre os dados históricos seguidos por linha, de cima para baixo. Cada estratégia especificada será avaliada para determinar se as condições de entrada são atendidas. Se as condições forem satisfeitas, uma negociação será registrada. Por outro lado, se as condições de saída forem atendidas, uma posição que foi inserida anteriormente será encerrada. Variações diferentes de indicadores técnicos podem ser geradas e combinadas para formar uma estratégia de negociação. Isso faz do Backtesting Expert uma ferramenta extremamente poderosa e flexível. Especialista em backtesting O Expert em backtesting é um modelo de planilha que permite criar estratégias de negociação usando os indicadores técnicos e executando as estratégias através de dados históricos. O desempenho das estratégias pode então ser medido e analisado de forma rápida e fácil. O modelo pode ser configurado para entrar em posições Longas ou Curtas quando certas condições ocorrerem e sair das posições quando outro conjunto de condições for atendido. Ao negociar automaticamente em dados históricos, o modelo pode determinar a lucratividade de uma estratégia de negociação. Tutorial do Backtesting Expert Passo a Passo 1. Iniciar o Especialista em Backtesting O Expert em Backtesting pode ser iniciado a partir do Menu Iniciar do Windows - Programas - TraderCode - Backtesting Expert. Isso lança um modelo de planilha com várias planilhas para você gerar indicadores de análise técnica e executar testes nas diferentes estratégias. Você perceberá que o Backtesting Expert inclui muitas planilhas conhecidas, como DownloadedData, AnalysisInput, AnalysisOutput, ChartInput e ChartOutput, do modelo Technical Analysis Expert. Isso permite que você execute todos os testes de volta com rapidez e facilidade a partir de um ambiente de planilha familiar. 2. Primeiro, selecione a planilha DownloadedData. Você pode copiar dados de qualquer planilha ou arquivos de valores separados por vírgula (csv) para esta planilha para análise técnica. O formato dos dados é mostrado no diagrama. Como alternativa, você pode consultar o documento Download de dados de negociação de ações para fazer o download de dados de fontes de dados conhecidas, como Yahoo Finance, Google Finance ou Forex, para uso no Backtesting Expert. 3. Depois de copiar os dados, vá para a planilha AnalysisInput e clique no botão Analyze e BackTest. Isso gerará os diferentes indicadores técnicos na planilha AnalysisOutput e executará backtesting nas estratégias especificadas na planilha StrategyBackTestingInput. 4. Clique na planilha StrategyBackTestingInput. Neste tutorial, você só precisará saber que especificamos estratégias longas e curtas usando cruzamentos médios móveis. Entraremos em detalhes sobre a especificação de estratégias na próxima seção deste documento. O diagrama abaixo mostra as duas estratégias. 5. Quando os testes de retorno forem concluídos, a saída será colocada nas worksheets AnalysisOutput, TradeLogOutput e TradeSummaryOutput. A planilha AnalysisOutput contém os preços históricos completos e os indicadores técnicos do estoque. Durante os testes de retorno, se as condições para uma estratégia forem satisfeitas, informações como o preço de compra, preço de venda, comissão e lucro / perda serão registradas nesta planilha para fácil referência. Essas informações são úteis se você quiser rastrear as estratégias para ver como as posições de estoque são entradas e saidas. A planilha TradeLogOutput contém um resumo dos negócios realizados pelo Backtesting Expert. Os dados podem ser facilmente filtrados para mostrar apenas dados para uma estratégia específica. Esta planilha é útil para determinar o lucro ou a perda geral de uma estratégia em diferentes intervalos de tempo. A saída mais importante dos testes de retorno é colocada na planilha TradeSummaryOutput. Esta planilha contém o lucro total das estratégias realizadas. Como mostrado no diagrama abaixo, as estratégias geraram um lucro total de 2.548,20, perfazendo um total de 10 negociações. Destes negócios, 5 são posições longas e 5 são posições curtas. A relação ganho / perda maior que 1 indica uma estratégia lucrativa. Explicação das diferentes planilhas Esta seção contém a explicação detalhada das diferentes planilhas no modelo do Backtesting Expert. As planilhas DownloadedData, AnalysisInput, AnalysOutput, ChartInput e ChartOutput são as mesmas do modelo Technical Analysis Expert. Assim, eles não serão descritos nesta seção. Para obter uma descrição completa dessas planilhas, consulte a seção Especialista em análise técnica. Planilha StrategyBackTestingInput Todas as entradas para backtesting, incluindo as estratégias, são inseridas usando esta planilha. Uma estratégia é basicamente um conjunto de condições ou regras que você vai comprar em uma ação ou vender uma ação. Por exemplo, você pode querer executar uma estratégia para ir Long (comprar ações) se a média móvel de 12 dias do preço ultrapassar a média móvel de 24 dias. Esta planilha funciona em conjunto com os indicadores técnicos e os dados de preço na planilha AnalysisOutput. Portanto, os indicadores técnicos médios móveis têm que ser gerados para ter uma estratégia de negociação baseada na média móvel. A primeira entrada necessária nesta planilha (conforme mostrado no diagrama abaixo) é especificar se deseja Sair de todas as negociações no final da sessão de teste de retorno. Imagine o cenário em que as condições para a compra de uma ação ocorreram e o Especialista em Backtesting entrou em uma negociação Longa (ou Curta). No entanto, o período de tempo é muito curto e terminou antes que a negociação possa atender às condições de saída, resultando em alguns negócios que não saem quando a sessão de backtesting termina. Você pode definir isso para Y para forçar todas as negociações a serem encerradas no final da sessão de backtesting. Além disso, os negócios serão deixados abertos quando a sessão de backtesting terminar. Estratégias No máximo 10 estratégias podem ser suportadas em um único teste de retorno. O diagrama abaixo mostra as entradas necessárias para especificar uma estratégia. Iniciais da Estratégia - Esta entrada aceita no máximo dois alfabetos ou números. As Iniciais de Estratégia são usadas nas planilhas AnalysisOutput e TradeLog para identificar as estratégias. Longo (L) / Curto (S) - É usado para indicar se deve ser inserida uma posição Longa ou Curta quando as condições de entrada da estratégia forem atendidas. Condições de Entrada Uma negociação Longa ou Curta será inserida quando as Condições de Entrada forem cumpridas. As condições de entrada podem ser expressas como uma expressão de fórmula. A expressão da fórmula faz distinção entre maiúsculas e minúsculas e pode fazer uso de Funções, Operadores e Colunas conforme descrito abaixo. crossabove (X, Y) - Retorna True se a coluna X cruzar acima da coluna Y. Essa função verifica os períodos anteriores para garantir que um cruzamento realmente tenha ocorrido. crossbelow (X, Y) - Retorna True se a coluna X cruzar abaixo da coluna Y. Essa função verifica os períodos anteriores para garantir que um cruzamento realmente tenha ocorrido. e (léxicoexpr,) - Booleano E. Retorna True se todas as expressões lógicas forem verdadeiras. ou (logicalexpr,) - Boolean Or. Retorna True se alguma das expressões lógicas for True. daysago (X, 10) - Retorna o valor (na coluna X) de 10 dias atrás. previoushigh (X, 10) - Retorna o valor mais alto (na coluna X) dos últimos 10 dias, incluindo hoje. previouslow (X, 10) - Retorna o valor mais baixo (na coluna X) dos últimos 10 dias, incluindo hoje. Operadores Maior que Igual Diferente Maior que ou igual Adição - Multiplicação de Subtração / Colunas de Divisão (de AnalysisOutput) A - Coluna AB - Coluna BC .. .. YY - Coluna YY ZZ - Coluna ZZ Essa é a parte mais interessante e flexível da coluna Condições de entrada. Ele permite que colunas da planilha AnalysisOutput sejam especificadas. Quando os testes de retorno forem executados, cada linha da coluna será usada para avaliação. Por exemplo, A50 significa que cada uma das linhas na coluna A da planilha AnalysisOutput será determinada se for maior que 50. AB Neste exemplo , se o valor na coluna A na planilha AnalysisOutput for maior ou igual ao valor da coluna B, a condição de entrada será satisfeita. e (A B, CD) Neste exemplo, se o valor na coluna A na planilha AnalysisOutput for maior que o valor da coluna B e o valor da coluna C for maior que a coluna D, a condição de entrada será satisfeita. crossabove (A, B) Neste exemplo, se o valor da coluna A na planilha AnalysisOutput ultrapassar o valor de B, a condição de entrada será satisfeita. crossabove significa que A tem originalmente um valor que é menor ou igual a B e o valor de A subseqüentemente se torna maior que B. Condições de Saída As Condições de Saída podem fazer uso de Funções, Operadores e Colunas conforme definido nas condições de entrada. Além disso, ele também pode fazer uso de Variáveis ​​conforme mostrado abaixo. Variables for Exit Conditions profit É definido como o preço de venda menos o preço de compra. O preço de venda deve ser maior que o preço de compra para um lucro a ser feito. Caso contrário, o lucro será zero. perda É definido como o preço de venda menos o preço de compra quando o preço de venda é menor que o preço de compra. profitpct (preço de venda - preço de compra) / preço de compra Nota. o preço de venda deve ser maior ou igual ao preço de compra. Caso contrário, o profitpct será zero. losspct (preço de venda - preço de compra) / preço de compra Nota. O preço de venda deve ser inferior ao preço de compra. Caso contrário, losspct será zero. Exemplos profitpct 0.2 Neste exemplo, se o lucro em termos de porcentagem for maior que 20, as condições de saída serão satisfeitas. Comissão - Comissão em termos de percentagem do preço de negociação. Se o preço de negociação for 10 e a Comissão for 0,1, a comissão será 1. A comissão percentual e a comissão em dólares serão somadas para calcular a comissão total. Comissão - Comissão em termos de dólares. A comissão percentual e a comissão em dólares serão somadas para calcular a comissão total. Nº de Ações - Quantidade de ações a serem compradas ou vendidas quando as condições de entrada / saída da estratégia forem atendidas. Planilha TradeSummaryOutput Esta é uma planilha que contém um resumo de todas as negociações realizadas durante os testes anteriores. Os resultados são classificados em Long e Short Trades. Uma descrição de todos os campos pode ser encontrada abaixo. Lucro / Prejuízo Total - Lucro ou perda total após a comissão. Este valor é calculado somando todos os lucros e perdas de todos os negócios simulados no backtest. Lucro / Prejuízo Total antes da Comissão - Lucro ou perda total antes da comissão. Se a comissão estiver definida para zero, este campo terá o mesmo valor que o Lucro / Perda total. Comissão Total - Comissão total necessária para todos os negócios simulados durante o teste de volta. Número total de negociações - Número total de negociações realizadas durante o teste simulado de volta. Número de negociações vencedoras - Número de negociações que geram lucro. Número de perda de negociações - Número de negociações que causam uma perda. Porcentagem de negociações vencedoras - Número de negociações vencedoras divididas pelo número total de negociações. Percentagem de perda de negociações - Número de negociações perdidas dividido pelo número total de negociações. Average winning Trade - O valor médio dos lucros dos negócios vencedores. Average lose Trade - O valor médio das perdas dos negócios perdidos. Average Trade - O valor médio (lucro ou perda) de um único trade do simulado back test. O maior mercado vencedor - O lucro do maior comércio vencedor. Maior perda de comércio - A perda do maior comércio perdedor. Ratio average win / average loss - Média do ganho comercial dividido pelo Average Loss Trade. Proporção de ganhos / perdas - Soma de todos os lucros nos negócios vencedores divididos pela soma de todas as perdas nos negócios perdidos. Uma proporção maior que 1 indica uma estratégia lucrativa. Planilha TradeLogOutput Esta planilha contém todas as negociações simuladas pelo Especialista em Backtesting classificadas por data. Ele permite que você amplie para qualquer negociação específica ou período de tempo para determinar a rentabilidade de uma estratégia de forma rápida e fácil. Data - A data em que uma posição Longa ou Curta é inserida ou encerrada. Estratégia - A estratégia usada para executar este comércio. Posição - A posição do negócio, seja Long ou Short. Comércio - Indica se esta negociação está comprando ou vendendo ações. Ações - Número de ações negociadas. Preço - O preço em que as ações são compradas ou vendidas. Comm. - Comissão total para este comércio. PL (B4 Comm.) - Lucro ou Prejuízo antes da comissão. PL (Aft Comm.) - Lucro ou perda após a comissão. Porra. PL (Aft Comm.) - Lucro ou perda acumulada após comissões. Isso é calculado como o lucro / perda total cumulativo do primeiro dia de uma negociação. PL (na posição de fechamento) - Lucro ou perda quando a posição é fechada (saída). Tanto a comissão de entrada como a comissão de saída serão contabilizadas neste PL. Por exemplo, se tivermos uma posição Longa em que o PL (B4 Comm.) É 100. Supondo que quando a posição é inserida, uma comissão de 10 é cobrada e quando a posição é encerrada, outra comissão de 10 é cobrada. O PL (na posição de fechamento) é 100-10-2080. Tanto a comissão de entrada da posição quanto a saída da posição são contabilizadas no fechamento da posição. Voltar ao Software de Análise Técnica TraderCode e Indicadores Técnicos

No comments:

Post a Comment