Thursday 16 August 2018

Backtesting trading strategies excel


Usando o Excel para voltar testar estratégias de negociação Como fazer uma volta ao teste com o Excel, fiz uma boa quantidade 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-lhe como rever um teste de 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 só precisa do componente de tempo da série de dados se estiver testando estratégias de negociação intradiária. Se você quiser trabalhar e aprender a fazer uma volta com o Excel enquanto estiver lendo isso, siga as etapas que eu descrevo em cada seção. Nós precisamos obter alguns dados para o símbolo que vamos voltar a testar. Ir 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 Folha de cálculo Salve o arquivo com um nome (como ibm. csv) e para um local que você possa 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 pareciam assim: agora você pode excluir as colunas que você não vai usar. Para o teste que estou prestes a fazer, só usarei a data, abrir e fechar valores, então eu exclui o Alto, o Baixo, o Volume e o Adj. Fechar. Eu também ordenou os dados para que a data mais antiga fosse primeiro 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, eu vou tentar encontrar o dia da semana que forneceu o melhor retorno se você seguiu uma compra aberta e venda a estratégia de fechamento. Lembre-se de que este artigo está aqui para apresentá-lo sobre como usar o Excel para apoiar 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, tenho fórmulas de lugar 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ê pratica, mais fórmulas você descobrirá e mais flexibilidade você terá com seus testes. Se você baixou a planilha e veja 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 em um número de 1 a 5 que corresponde 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 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 em 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 da semana, coloquei algumas funções de resumo. Nomeadamente, as funções média e soma. Estes nos mostram que, durante 2004, o dia mais lucrativo para implementar esta estratégia foi em uma terça-feira e isso foi seguido de perto por uma quarta-feira. Quando eu testei a estratégia de Vencimento às Sextas - Bullish ou Bearish e escrevi esse artigo, usei uma abordagem muito similar com uma planilha e fórmulas como esta. O objetivo desse teste foi ver se as sextas de caducidade 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. Publique suas perguntas no fórum. Boa sorte e estratégia lucrativa, por que usar o Excel para estratégias de negociação Backtest Aprender a trocar leva tempo e muita paciência. Neste artigo, discuto por que é bom usar o Excel para testar estratégias de negociação. Qual é uma boa estratégia de negociação Uma parte crucial da negociação rentável é usar uma boa estratégia comercial. Diferentes tipos de estratégias funcionam melhor em diferentes condições de mercado e pode ser útil ter mais de uma boa estratégia. Uma boa estratégia comercial é como um terno bem ajustado. Deve se sentir bem, bem como ficar bem. Uma estratégia comercial deve ser um bom ajuste com a personalidade e estilo de vida do comerciante, além de ser rentável. Se a estratégia de negociação não se encaixa com o comerciante, provavelmente falhará. Um comerciante descontraído e pensativo provavelmente deve trabalhar no desenvolvimento de uma estratégia de paciente lento que tire grandes lucros de grandes movimentos do mercado. Os comerciantes que adquirem alta adrenalina e desejam estar constantemente dentro e fora do mercado devem negociar movimentos de alta probabilidade nos prazos mais curtos. Igualmente importante é o tempo e a capacidade de trocar a estratégia corretamente. Uma pessoa que trabalha 40 horas semanalmente não pode negociar uma estratégia que requer atenção constante. Também pode ser difícil se concentrar no comércio de casa quando a casa está cheia de crianças ruidosas. Os comerciantes devem ser realistas sobre quanto tempo e energia eles podem dedicar à sua estratégia. Como desenvolver uma boa estratégia de negociação A única maneira certa de desenvolver uma estratégia de negociação que funciona para você é tentativa e erro. Até que você tenha negociado uma estratégia ao vivo no mercado, você não saberá com certeza se é certo para você. Existem maneiras de acelerar o processo de desenvolvimento de sua própria estratégia. Revise sua história comercial Os mercados financeiros têm uma maneira de nos ensinar as lições que precisamos aprender. Estudar seus negócios passados ​​é muito útil para refinar sua abordagem de negociação. Veja como lidar com condições difíceis. Quão bem você adere ao seu plano e quanto lucro ou perda você tira de cada movimento do mercado. Você poderia ter obtido mais lucros de seus negócios vencedores e cortar seus perdedores antes. Teste para a introdução de novos métodos e para lidar com diferentes condições de mercado, o backtesting é extremamente importante. Backtesting usa dados de preços históricos para ver como as estratégias de negociação teriam realizado. Backtesting precisa ser feito com cuidado e o desempenho passado não é igual ao desempenho futuro. No entanto, é inestimável para eliminar estratégias que nunca foram lucrativas e descobrindo fracos em estratégias aparentemente boas. Backtesting também é muito útil para estabelecer princípios comerciais gerais para um mercado específico. Por exemplo, realizei uma série de testes usando um sistema de troca de entrada aleatória. Nestes artigos: entrada aleatória e entrada aleatória mais indicadores técnicos. Estes testes mostraram-me que, no mercado EURUSD, um sistema de entrada aleatória pode ser lucrativo. Eu não vou negociar um sistema de entrada aleatória, mas vou usar os princípios, como uma parada final como parte da minha negociação diária no EURUSD. O uso do Microsoft Excel Excel é muito acessível e a maioria das pessoas já conhece o caminho do software. É muito fácil de usar e há uma enorme quantidade de informações disponíveis on-line sobre como melhorar as habilidades do Excel. As estratégias de negociação são programadas usando instruções lógicas. O Excel é um dos ambientes mais fáceis de programar. Um grande número de indicadores técnicos podem ser programados e a lógica de negociação pode ser tão simples ou complicada quanto necessário. No meu Amazon Kindle eBook 8211 Como fazer backtest em uma estratégia de negociação usando o Excel 8211 Eu mostro como o Excel pode ser usado para desenvolver suas próprias planilhas de backtest. Se você está procurando uma planilha, também pode comprá-los diretamente: Compre Planilhas do Excel. Aprender a trocar é um processo mais lento do que a maioria de nós gostaria. No entanto, usando algumas das idéias no artigo, é possível torná-lo um processo mais rápido (e muito menos dispendioso). Compartilhe isso: 06172017 A versão mais recente do TraderCode (v5.6) inclui novos indicadores de Análise Técnica, Gráfica de pontos e gráficos e Teste de estratégia. 06172017 Última versão do NeuralCode (v1.3) para Neural Networks Trading. 06172017 ConnectCode Barcode Font Pack - permite códigos de barras em aplicativos de escritório e inclui um complemento para o Excel que suporta a geração em massa de códigos de barras. 06172017 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 - add-in 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 - suplemento de fonte aberta 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 gerados e combinados para formar uma estratégia de negociação. Isso faz do 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 forem atendidas. 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 várias 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 de 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 do DownloadedData. Você pode copiar dados de qualquer planilha ou arquivos de valores separados por vírgulas (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 o 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 planilha 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 fácil referência. Esta informação é útil se você quiser 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. O resultado mais importante dos testes de volta é colocado 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ê irá 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 necessária nesta planilha (como mostrado no diagrama abaixo) é especificar se deve sair de todas as negociações no final da sessão de teste traseiro. Imagine o cenário em que as condições de compra de um estoque ocorreram e o Especialista em Teste de Backtest entrou no comércio Long (ou Short). 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 alguns negócios que não foram encerrados quando a sessão de backtesting termina. Você pode configurar isso para Y para forçar todos os negócios a serem encerrados no final da sessão de teste. Além disso, os negócios serão deixados abertos quando a sessão de teste for concluída. Estratégias Um máximo de 10 estratégias podem ser suportadas em um único teste 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,) - Boolean 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, incluindo 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. Permite que as colunas da folha de cálculo AnalysisOutput sejam especificadas. Quando os testes de volta são realizados, cada linha da coluna será usada para avaliação. Por exemplo, A 50 significa que cada uma das linhas da coluna A da planilha de análise da análise será determinada se ela for superior a 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 do 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 usar 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 Isto é 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. Lucro (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 e comissão em dólares será resumida 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 a serem adquiridas ou vendidas quando as condições de entrada de acordo com a estratégia forem cumpridas. 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 categorizados 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 - Lucro ou prejuízo 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 negócios - 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. Percentagem de negociações vencedoras - Número de negociações vencedoras divididas por número total de negócios. Percentagem de negociações perdidas - 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 das negociações perdidas. 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. O maior comércio perdedor - A perda do maior comércio perdedor. Ratio perda média de winaverage - Média de negociação vencedora dividida pela perda média perdida. Ratio winloss - Soma de todos os lucros nos negócios vencedores divididos pela soma de todas as perdas nas negociações perdedoras. 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 para 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 que é usada para executar este 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 - Quantidade 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 antes da comissão. PL (Aft Comm.) - Lucro ou perda após a comissão. Porra. PL (Aft Comm.) - Lucro acumulado 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 (Comando B4) é 100. Supondo que quando a posição é inserida, uma comissão é carregada e quando a posição é encerrada, outra comissão de 10 é carregada. O PL (na posição de fechamento) é 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 Análise Técnica Software e Indicadores Técnicos

No comments:

Post a Comment