Sunday 6 August 2017

Backtesting Trading Strategies In Excel


06172013 A última versão do TraderCode (v5.6) inclui novos indicadores de Análise Técnica, Gráfica de Ponto e Figura e Teste de Estratégia. 06172013 Última versão do NeuralCode (v1.3) para Neural Networks Trading. 06172013 ConnectCode Barcode Font Pack - permite códigos de barras em aplicativos de escritório e inclui um suplemento para o Excel que suporta a geração em massa de códigos de barras. 06172013 InvestmentCode, um conjunto abrangente de calculadoras financeiras e modelos para o Excel está agora disponível. 09012009 Lançamento do Free Investment and Financial Calculator para Excel. 0212008 Lançamento do SparkCode Professional - complemento para criar painéis no Excel com sparklines 12152007 Anunciando o ConnectCode Duplicate Remover - um complemento poderoso para encontrar e remover entradas de duplicatas no Excel 09082007 Lançamento de TinyGraphs - add-in de código aberto para criar sparklines e pequenas Gráficos no Excel. Strategy Backtesting no Excel Strategy 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 Expert 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, um comércio será inserido. Por outro lado, se as condições de saída forem atendidas, uma posição que foi inserida anteriormente será encerrada. Diferentes variações de indicadores técnicos podem ser geradas e combinadas para formar uma estratégia comercial. Isso torna o Backtesting Expert uma ferramenta extremamente poderosa e flexível. Expert Backtesting 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. O modelo pode ser configurado para entrar em posições Longas ou Curtas quando ocorrerem certas condições e sair das posições quando outro conjunto de condições for cumprido. Ao negociar automaticamente em dados históricos, o modelo pode determinar a rentabilidade de uma estratégia de negociação. Backtesting Expert Step by Step Tutorial 1. Inicie o Expert Backtesting O Expert Backtesting pode ser iniciado a partir do menu Iniciar do Windows - Programas - TraderCode - Expert Backtesting. Isso lança um modelo de planilha com múltiplas planilhas para gerar indicadores de análise técnica e executar testes nas diferentes estratégias. Você notará que o Backtesting Expert inclui muitas planilhas familiares, como o DownloadedData, AnalysisInput, AnalysisOutput, ChartInput e ChartOutput, do modelo Expert de Análise Técnica. Isso permite que você execute todos os testes de volta rápida e facilmente 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 é como mostrado no diagrama. Alternativamente, você pode consultar o documento Download Stock Trading Data para baixar dados de fontes de dados bem conhecidas, como o Yahoo Finance, Google Finance ou Forex para uso no Expert Backtesting. 3. Depois de copiar os dados, vá para a planilha do AnalysisInput e clique no botão Analisar e BackTest. Isso gerará os diferentes indicadores técnicos na folha de cálculo AnalysisOutput e realizará backtesting nas estratégias especificadas na folha de cálculo StrategyBackTestingInput. 4. Clique na folha de cálculo StrategyBackTestingInput. Neste tutorial, você só precisará saber que especificamos estratégias longas e curtas usando passagens médias 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. Uma vez concluídos os testes de retorno, a saída será colocada nas planilhas AnalysisOutput, TradeLogOutput e TradeSummaryOutput. A folha de cálculo AnalysisOutput contém os preços históricos completos e os indicadores técnicos do estoque. Durante os testes de volta, se as condições para uma estratégia estiverem satisfeitas, informações como preço de compra, preço de venda, comissão e lucro serão registradas nesta planilha para facilitar a consulta. Esta informação é útil se você deseja rastrear as estratégias para ver como as posições de estoque são inseridas e encerradas. A folha de cálculo TradeLogOutput contém um resumo das negociações realizadas pelo Expert Backtesting. Os dados podem ser facilmente filtrados para mostrar apenas dados para uma estratégia específica. Esta planilha é útil para determinar o lucro ou perda global de uma estratégia em diferentes prazos. A saída mais importante das provas de volta é colocada na planilha do TradeSummaryOutput. Esta planilha contém o lucro total das estratégias implementadas. Conforme mostrado no diagrama abaixo, as estratégias geraram um lucro total de 2.548,20, totalizando 10 negócios. Destes negócios, 5 são posições longas e 5 são posições curtas. O Ratio winloss de mais de 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 Expert Backtesting. As folhas de cálculo DownloadedData, AnalysisInput, AnalysOutput, ChartInput e ChartOutput são as mesmas do modelo Expert de Análise Técnica. Assim, eles não serão descritos nesta seção. Para obter uma descrição completa dessas planilhas, consulte a seção Expert de Análise Técnica. Estrada de trabalho 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 cruza acima da média móvel de 24 dias. Esta planilha funciona em conjunto com os indicadores técnicos e os dados de preços na planilha do AnalysisOutput. Daí, os indicadores técnicos de média móvel devem ser gerados para ter uma estratégia de negociação baseada na média móvel. A primeira entrada requerida nesta planilha (como mostrado no diagrama abaixo) é especificar se a saída de todos os negócios no final da sessão de teste posterior. Imagine o cenário em que as condições para a compra de um estoque ocorreram e o Expert de Backtesting entrou em um comércio longo (ou curto). No entanto, o período de tempo é muito curto e terminou antes que o comércio possa atender às condições de saída, resultando em algumas negociações que não foram encerradas quando a sessão de backtesting termina. Você pode configurar isso para Y para forçar todas as negociações a serem encerradas no final da sessão de teste. De outra forma, os negócios serão abertos quando a sessão de teste for concluída. Estratégias Um máximo de 10 estratégias podem ser suportadas em uma única prova de volta. O diagrama abaixo mostra as entradas necessárias para especificar uma estratégia. Iniciais da Estratégia - Esta entrada aceita um máximo de dois alfabetos ou números. As Iniciais da Estratégia são usadas nas planilhas AnalysisOutput e TradeLog para identificar as estratégias. Longo (L) Curto (S) - Isso é usado para indicar se deseja inserir uma posição Longa ou Curta quando as condições de entrada da estratégia forem atendidas. Condições de entrada Um comércio longo ou curto será inserido quando as Condições de Entrada forem atendidas. As Condições de Entrada podem ser expressas como uma expressão de fórmula. A expressão da fórmula é sensível a maiúsculas e minúsculas e pode usar Funções, Operadores e Colunas conforme descrito abaixo. Crossabove (X, Y) - Retorna True se a coluna X atravessar a coluna acima Y. Esta função verifica os períodos anteriores para garantir que um crossover realmente ocorreu. Crossbelow (X, Y) - Retorna True se a coluna X cruzar abaixo da coluna Y. Esta função verifica os períodos anteriores para garantir que um crossover realmente tenha ocorrido. E (logicalexpr,) - Boolean And. Retorna True se todas as expressões lógicas forem verdadeiras. Ou (logicalexpr,) - Booleano Or. Retorna True se qualquer uma 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, inclusive hoje. Previouslow (X, 10) - Retorna o valor mais baixo (na coluna X) dos últimos 10 dias, incluindo hoje. Operadores maiores do que iguais Não iguais Maior ou igual Colunas de divisão de adição - subtração Multiplicação (de AnalysisOutput) A - Coluna AB - Coluna BC .. .. YY - Coluna YY ZZ - Coluna ZZ Esta é a parte mais interessante e flexível da Entrada Condições. Ele permite que as colunas da planilha AnalysisOutput sejam especificadas. Quando os testes de retorno são realizados, cada linha da coluna será usada para avaliação. Por exemplo, A 50 significa que cada uma das linhas na coluna A da planilha de análise da análise será determinada se ela é maior que 50. AB Neste exemplo , Se o valor na coluna A na planilha do 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 folha de cálculo AnalysisOutput cruza acima do valor de B, a condição de entrada será satisfeita. Crossabove significa que A originalmente tem um valor inferior ou igual a B e o valor de A torna-se posteriormente maior do 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, também pode fazer uso de variáveis ​​como mostrado abaixo. Variables para condições de saída lucro Esta é definida como o preço de venda menos o preço de compra. O preço de venda deve ser maior do que o preço de compra para um lucro a ser feito. Caso contrário, o lucro será zero. Perda Isso é definido como o preço de venda menos o preço de compra quando o preço de venda é inferior ao preço de compra. Preço de compra (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 lucro 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 lucrapct 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 uma percentagem do preço de negociação. Se o preço de negociação é de 10 e a Comissão é de 0,1, a comissão será 1. A comissão de porcentagem e a comissão em dólares serão resumidas para calcular a comissão total. Comissão - Comissão em dólares. A porcentagem de comissão e comissão em dólares será resumida para calcular a comissão total. Número de Ações - Número de ações para comprar ou vender quando as condições de entrada da estratégia são atendidas. Folha de cálculo TradeSummaryOutput Esta é uma planilha que contém um resumo de todas as negociações realizadas durante as provas de volta. Os resultados são classificados em Long and Short Trades. Uma descrição de todos os campos pode ser encontrada abaixo. Total Lucro - Resultado total após a comissão. Esse valor é calculado pela soma de todos os lucros e perdas de todos os negócios simulados no teste de volta. Total de Lucros antes da Comissão - Resultado total antes da comissão. Se a comissão for definida como zero, este campo terá o mesmo valor que Total ProfitLoss. Comissão Total - Comissão total necessária para todos os negócios simulados durante o teste de volta. Número total de operações - Número total de negócios realizados durante o teste de volta simulado. Número de Negociações vencedoras - Número de negócios que fazem lucro. Número de Negociações perdidas - Número de negociações que causam perda. Negociações premiadas por porcentagem - Número de negociações vencedoras divididas por número total de negócios. Percentagem de perdas Negociações - Número de negociações perdidas divididas por número total de negócios. Comércio vencedor médio - O valor médio dos lucros dos negócios vencedores. Perda média de comércio - O valor médio das perdas dos negócios perdidos. Comércio médio - O valor médio (lucro ou perda) de um único comércio do teste de volta simulado. O maior comércio vencedor - O lucro do maior comércio vencedor. Maior perda de comércio - A perda do maior comércio perdedor. Ratio de perda média de winaverage - Média de negociação vencedora dividida pelo Perda de Perdas Médicas. Ratio winloss - Soma de todos os lucros nos negócios vencedores divididos pela soma de todas as perdas nos negócios perdidos. Uma proporção superior a 1 indica uma estratégia lucrativa. Folha de cálculo TradeLogOutput Esta planilha contém todos os negócios simulados pelo Expert Backtesting ordenados pela data. Ele permite que você faça zoom em qualquer comércio ou intervalo de tempo específico para determinar a rentabilidade de uma estratégia rápida e facilmente. Data - A data em que uma posição longa ou curta é inserida ou encerrada. Estratégia - A estratégia utilizada para a execução desse comércio. Posição - A posição do comércio, seja longa ou curta. Comércio - Indica se este comércio 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 perda antes da comissão. PL (Aft Comm.) - Lucro ou perda após a comissão. Porra. PL (Aft Comm.) - Resultado acumulado após comissões. Isso é calculado como o lucro acumulado total do primeiro dia de uma negociação. PL (na posição de fechamento) - Lucro ou perda quando a posição está fechada (saiu). 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 Longo onde o PL (B4 Comm.) É 100. Supondo que quando a posição é inserida, uma 10 comissão é carregada e quando a posição é encerrada, outra comissão de 10 é carregada. O PL (na posição de fechamento) é de 100-10-10. 80. Tanto a comissão ao entrar na posição quanto a saída da posição são contabilizadas na posição fechada. Voltar ao TraderCode Software de Análise Técnica e Indicadores TécnicosUsando o Excel para Testes de Negociação de Testes Voltar Como fazer back test com o Excel Ive feito uma quantidade razoável de teste de back-up da estratégia de negociação. Eu usei linguagens e algoritmos de programação sofisticados e eu também fiz isso com lápis e papel. Você não precisa ser um cientista de foguetes ou um programador para testar várias estratégias de negociação. Se você pode operar uma planilha eletrônica, como o Excel, você pode voltar testar muitas estratégias. O objetivo deste artigo é mostrar como fazer o teste testar uma estratégia comercial usando o Excel e uma fonte de dados acessível ao público. Isso não deve custar-lhe mais do que o tempo necessário para fazer o teste. Antes de começar a testar qualquer estratégia, você precisa de um conjunto de dados. No mínimo, esta é uma série de data e preços. Mais realista, você precisa dos preços de data e hora, aberto, alto, baixo e fechado. Você geralmente precisa apenas do componente de tempo da série de dados se estiver testando estratégias de negociação intradiária. Se você quer trabalhar junto e aprender a rever o teste com o Excel enquanto estiver lendo isso, siga as etapas que eu descrevo em cada seção. Precisamos obter alguns dados para o símbolo que vamos voltar a testar. Vá para: Finanças do Yahoo No campo Símbolo de inserir digite: IBM e clique em Ir sob Cotações no lado esquerdo, clique em Preços históricos e insira os intervalos de datas desejados. Selecionei de 1 de janeiro de 2004 a 31 de dezembro de 2004 Desça até a parte inferior da página e clique em Baixar para planilha Salve o arquivo com um nome (como ibm. csv) e para um local que você pode encontrar mais tarde. Preparando os dados Abra o arquivo (que você baixou acima) usando o Excel. Devido à natureza dinâmica da internet, as instruções que você leu acima e o arquivo que você abriu podem ter mudado no momento em que você lê isso. Quando eu baixei esse arquivo, as melhores linhas parecem assim: agora você pode excluir as colunas que você não vai usar. Para o teste que estou prestes a fazer, vou usar apenas a data, abrir e fechar valores, então eu exclui o Alto, o Baixo, o Volume e o Adj. Fechar. Eu também ordenei os dados para que a data mais antiga fosse a primeira e a última data estava na parte inferior. Use as opções do menu Classificar dados para fazer isso. Em vez de testar uma estratégia por si, vou tentar encontrar o dia da semana que proporcionou o melhor retorno se você seguiu uma compra aberta e venda a estratégia de fechamento. Lembre-se que este artigo está aqui para apresentá-lo sobre como usar o Excel para suportar as estratégias de teste. Podemos construir sobre isso no futuro. Aqui está o arquivo ibm. zip que contém a planilha com os dados e as fórmulas para este teste. Meus dados agora residem nas colunas A a C (Data, Abrir, Fechar). Nas colunas D a H, eu tenho fórmulas para determinar o retorno em um dia específico. Inserindo as fórmulas A parte complicada (a menos que você seja um especialista do Excel) esteja trabalhando as fórmulas para usar. Isso é apenas uma questão de prática e quanto mais você praticar, mais fórmulas você descobrirá e mais flexibilidade você terá com seus testes. Se você baixou a planilha, examine a fórmula na célula D2. Parece assim: Esta fórmula é copiada para todas as outras células nas colunas D a H (exceto a primeira linha) e não precisa ser ajustada uma vez que foi copiada. Vou explicar brevemente a fórmula. A fórmula IF tem uma condição, parte verdadeira e falsa. A condição é: se o dia da semana (convertido para um número de 1 a 5 que coincide de segunda a sexta-feira) é o mesmo que o dia da semana na primeira linha desta coluna (D1). A verdadeira parte da declaração (C2-B2) simplesmente nos dá o valor do Close-Open. Isso indica que nós compramos o Open e vendemos o Close e este é o nosso profitloss. A parte falsa da declaração é um par de aspas duplas () que não coloca nada na célula se o dia da semana não for combinado. Os sinais à esquerda da letra da coluna ou do número da linha bloqueiam a coluna ou a linha para que, quando esta copiou, essa parte da referência da célula não muda. Então, aqui no nosso exemplo, quando a fórmula é copiada, a referência para a célula de data A2 mudará o número da linha se for copiada para uma nova linha, mas a coluna permanecerá na coluna A. Você pode aninhar as fórmulas e fazer regras excepcionalmente poderosas E expressões. Os resultados Na parte inferior das colunas do meio-dia eu coloquei algumas funções de resumo. Nomeadamente, as funções de média e soma. Estes nos mostram que, durante o ano de 2004, o dia mais lucrativo para implementar esta estratégia foi em uma terça-feira e esta foi acompanhada de perto por uma quarta-feira. Quando testei as negociações de Vendas de Vencimento - Bullish ou Bearish e escrevi esse artigo, usei uma abordagem muito similar com uma planilha e fórmulas como esta. O objetivo desse teste era ver se as Frondas de Expiração eram geralmente de alta ou baixa. Experimente. Baixe alguns dados do Yahoo Finance. Carregue no Excel e experimente as fórmulas e veja o que pode surgir. Poste suas perguntas no fórum. Boa sorte e estratégia lucrativa

No comments:

Post a Comment