Sunday 25 March 2018

Backtesting estratégias de negociação usando o excel


Computer Aided Finance & # 8211; Excel, Matlab, Theta Suite etc.
Ferramentas, Algoritmos, Simulação, Gestão de Riscos: Eficiência para Finanças Matemáticas.
O mais fácil back-teste de estratégias de negociação: Tabela Dinâmica do MS Excel!
Antes de usar ferramentas especializadas para back-testing, proponho que se analise primeiro a Tabela de Pivô do MS Excel. A ferramenta de tabela dinâmica é ótima para inspeção, filtragem e análise de grandes conjuntos de dados. Neste artigo, vou apresentar como criar uma estratégia simples baseada no cronograma e como calcular seu desempenho histórico.
No seguinte, vou mostrar, como criar uma análise como a publicação anterior: & # 8220; Sell in May and Go Away & # 8211; Realmente? & # 8220 ;.
Passo 1: Obter os dados.
Primeiro, precisamos obter os dados para a análise. Recorremos ao Yahoo para buscar o Índice Dow Jones (consulte Lista de fontes de dados do mercado para outras fontes).
De alguma forma, o Yahoo Finance esconde o botão de download do índice Dow-Jones. Mas é fácil adivinhar o Link correto:
Salve este arquivo no 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 log-return (Coluna & # 8220; Return & # 8221;) para cada dia na série temporal:
Então, adicionamos o indicador da estratégia de negociação e # 8211; neste caso, apenas o mês do ano:
Finalmente, adicionamos um indicador de grupo: Decade.
Etapa 3: Adicionar tabela dinâmica.
Classifique Dados na Tabela.
[Ferramentas de Tabela Dinâmica - & gt; Opções - & gt; Resumir valor por - & gt; Soma]
Etapa 4: formatação condicional.
Para obter uma visão geral dos dados na tabela dinâmica, formamos os valores em & # 8220; Porcentagem de estilo & # 8221; e por & # 8220; formatação condicional & # 8221 ;:
[Home - & gt; Estilos - & gt; Formatação condicional]
Etapa 5: Calcule o desempenho real.
A soma dos retornos de log na tabela dinâmica é uma boa indicação para o desempenho de uma estratégia de negociação. Mas, o desempenho acutal pode ser facilmente obtido a partir dos retornos de log por:
Agora você está pronto: cada célula contém o desempenho de comprar o Índice Dow-Jones no início e vendê-lo ao 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 simples de negociação é fácil usando as tabelas dinâmicas do Excel. Enquanto as estratégias mais avançadas geralmente requerem um pacote de software mais especializado (como vemos no MACD Back-testing), cinco etapas simples levam a uma visão detalhada de uma estratégia baseada em tempo. Se a série de dados se tornar grande, é possível realizar exatamente as mesmas etapas usando o MS Power Pivot, um suplemento gratuito do MS Excel com acesso ao banco de dados.
Pós-navegação.
Deixe uma resposta Cancelar resposta.
Bela postagem. Estou feliz em aterrar neste blog.
Deixe-me sugerir-lhe isso:
Para ver o desempenho real na tabela dinâmica, basta adicionar um campo calculado no menu:
Opções & gt; Campos, Itens, & amp; Conjuntos & gt; Campo calculado & # 8230;
Em seguida, identifique-o como "p & # 8221; e digite a fórmula: & # 8220; = EXP (Retorno) -1 & # 8221;
Você pode finalmente adicionar este campo à área de valores, para obter o & # 8220; Soma de p & # 8221; bem na mesa.
Sim você está certo! Isso é muito melhor do que duplicar a tabela. Vou atualizar esta publicação o mais rápido possível.
Podemos baixar diretamente modelos do Excel e dados de backtest.

Backtesting estratégias de negociação usando o excel
Um contrato Longo ou Curto será entrado 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 é 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 (lógicaexpr,…) - Booleana 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.
Maior que = Igual <> Não igual = Maior que ou igual + Adição - Subtração * Multiplicação / Divisão.
Colunas (de AnalysisOutput)
A - Coluna A B - Coluna B C .. .. YY - Coluna YY ZZ - Coluna ZZ.
Esta é a parte mais interessante e flexível das Condições de Entrada. Permite que as colunas da folha de cálculo "AnalysisOutput" sejam especificadas. Quando os testes de retorno são realizados, cada linha da coluna será usada para avaliação.
Nesse 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, C> D)
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 que é menor ou igual a B e o valor de A subseqüentemente se torna maior que B.
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.
lucro. Isto é definido 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 É 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 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.
Neste exemplo, se o lucro em termos de percentagem for superior a 20%, as condições de saída serão satisfeitas.

Backtesting estratégias de negociação usando o excel
Inscreva-se no boletim informativo Tradinformed para receber os recursos gratuitos, receber notificações sobre novos artigos e vendas de produtos.
Nenhum produto no carrinho.
Nenhum produto no carrinho.
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.
O que é uma boa estratégia de negociação?
Uma parte crucial da negociação lucrativa é usar uma boa estratégia de negociação. Diferentes tipos de estratégias funcionam melhor em diferentes condições do mercado e pode ser útil ter mais de uma boa estratégia.
Uma boa estratégia comercial é como um terno bem equipado. Deve se sentir bem, bem como ficar bem. Uma estratégia de negociação 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 encaixar com o trader, ela provavelmente falhará. Um operador cauteloso e descontraído provavelmente deve trabalhar no desenvolvimento de uma estratégia lenta para o paciente, que tira grandes lucros de grandes movimentos do mercado. Aqueles comerciantes que ficam cheios de adrenalina e querem estar constantemente entrando e saindo do mercado, deveriam estar negociando movimentos de alta probabilidade nos prazos mais curtos.
Igualmente importante é o tempo e a capacidade de negociar a estratégia adequadamente. Uma pessoa que trabalha 40 horas por semana não pode negociar razoavelmente 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 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 seu histórico de negociações.
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 você lida 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 lucrado mais com seus negócios vencedores e cortar seus perdedores mais cedo?
Backtesting
Para a introdução de novos métodos e para lidar com diferentes condições de mercado, o backtesting é extremamente importante. O backtesting usa dados históricos de preços para ver como as estratégias de negociação teriam sido realizadas.
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 rentáveis ​​e descobrir pontos fracos em estratégias aparentemente boas.
O backtesting também é muito útil para estabelecer princípios gerais de negociação para um mercado específico. Por exemplo, realizei uma série de testes usando um sistema de negociação de entrada aleatória. Nestes artigos: entrada aleatória e entrada aleatória mais indicadores técnicos. Estes testes mostraram-me que, no mercado EUR / USD, um sistema de entrada aleatória pode ser rentável. Eu não vou negociar um sistema de entrada aleatória, mas vou usar os princípios, como uma parada móvel como parte da minha negociação diária no EUR / USD.
Usando o Microsoft Excel.
Você pode fazer backtest usando muitas plataformas diferentes, mas uma das maneiras mais fáceis de testar estratégias relativamente complicadas é usar o Excel.
O Excel é muito acessível e a maioria das pessoas já conhece o software. É muito amigável 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 declaraçõ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 backtest 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ê estiver procurando por uma planilha, também poderá comprá-las diretamente: Compre planilhas do Excel.
Aprender a negociar é 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).
Simulador de Monte Carlo e libra; 8,63 6 em 1 pacote & libra; 63,35 & libra; 50.67 Bitcoin Breakout Trading Strategy & pound; 15,30 10 em 1 pacote & libra; 120,59 e libra; 81,40.
21 Indicadores Técnicos & libra; 4.31 Modelo Long-Short Backtest usando Excel & Pound; 8.82 Modelo Avançado de Backtest & pound; 15,30 21 Indicadores Mais Técnicos & libra; 4.31.
VIX Volatility S & P 500 Entrada e libra; 15.30 4 em 1 Pacote e libra; 32,75 e libra; 27,84 Long-Short Backtest Model usando Excel & pound; 8.82.
Tradinformed está empenhada em ajudar os comerciantes a desenvolver suas habilidades e ficar à frente da concorrência. Veja como você pode aprender a recuperar suas próprias estratégias e obter novas idéias comerciais.

Usando o Excel para Back Test Trading Strategies.
Como fazer o teste de volta com o Excel.
Eu fiz uma quantidade justa de testes de estratégia de negociação. Eu usei linguagens de programação sofisticadas e algoritmos e também fiz isso com lápis e papel. Você não precisa ser um cientista de foguetes ou um programador para testar muitas estratégias de negociação. Se você puder operar um programa de planilha eletrônica como o Excel, poderá testar várias estratégias.
O objetivo deste artigo é mostrar como testar uma estratégia de negociação usando o Excel e uma fonte de dados disponível publicamente. Isso não deve custar 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 datas / horários e preços. Mais realisticamente, você precisa da data / hora, abertura, alta, baixa, preços baixos. Você normalmente só precisa do componente de tempo da série de dados se estiver testando estratégias de negociação intradia.
Se você quiser trabalhar junto e aprender a fazer o teste com o Excel enquanto estiver lendo isso, siga as etapas que descrevi em cada seção. Precisamos obter alguns dados para o símbolo que vamos testar.
Ir para: Yahoo Finance No campo Inserir símbolo (s), insira: IBM e clique em GO Em 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 Fazer o download na planilha Salve o arquivo com um nome (como ibm. csv) e em um lugar 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ê abre podem ter mudado no momento em que você leu isso.
Quando baixei este arquivo, as primeiras linhas ficaram assim:
Agora você pode excluir as colunas que não serão usadas. Para o teste que estou prestes a fazer, usarei apenas a data, abra e feche os valores para que eu tenha excluído o High, o Low, o Volume e o Adj. Fechar.
Eu também classifiquei os dados para que a data mais antiga fosse a primeira e a data mais recente estivesse na parte inferior. Use os dados - & gt; Escolha as opções do menu para fazer isso.
Em vez de testar uma estratégia em si, tentarei encontrar o dia da semana que forneceu o melhor retorno se você seguisse uma estratégia de compra aberta e venda de fechamento. Lembre-se de que este artigo está aqui para apresentá-lo sobre como usar o Excel para rever as estratégias de teste. Podemos construir isso daqui para frente.
Aqui está o arquivo ibm. zip que contém a planilha com os dados e 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 determinado dia.
Inserindo as fórmulas.
A parte complicada (a menos que você seja um especialista do Excel) está elaborando as fórmulas para usar. Isso é apenas uma questão de prática e quanto mais você pratica as fórmulas mais que você descobrirá e mais flexibilidade você terá com seus testes.
Se você baixou a planilha, dê uma olhada na fórmula na célula D2. Se parece com isso:
Essa fórmula é copiada para todas as outras células nas colunas D a H (exceto a primeira linha) e não precisa ser ajustada depois de copiada. Eu explicarei 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 corresponde de segunda a sexta-feira) for o mesmo que o dia da semana na primeira linha desta coluna (D $ 1), então." 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 lucro / perda. A parte falsa da declaração é um par de aspas duplas (") que não colocam nada na célula se o dia da semana não coincidir.
Os sinais $ à esquerda da letra da coluna ou do número da linha bloqueiam a coluna ou linha para que, quando for copiada, essa parte da referência da célula não seja alterada. Portanto, aqui no nosso exemplo, quando a fórmula é copiada, a referência à 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 criar regras e expressões excepcionalmente poderosas.
Os resultados.
Na parte inferior das colunas do dia da semana, coloquei algumas funções de resumo. Notavelmente as funções de média e soma. Estes mostram-nos que, durante 2004, o dia mais rentável para implementar esta estratégia foi numa terça-feira e esta foi seguida de perto por uma quarta-feira.
Quando eu testei as sextas-feiras de expiração - alta ou baixa? estratégia e escreveu esse artigo eu usei uma abordagem muito semelhante com uma planilha e fórmulas como esta. O objetivo desse teste era verificar se as sextas-feiras 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.

Testando uma Estratégia de Negociação SuperTrend Usando o Excel.
Como o nome sugere, o indicador técnico SuperTrend ajuda a identificar tendências de mercado. Este artigo apresenta uma estratégia de negociação do SuperTrend e mostra como a estratégia pode ser backtested usando o Excel.
Para ter uma perspectiva diferente no SuperTrend. Veja este artigo recente, onde mostro como pode ser rentável inverter o indicador: Uma estratégia Forex SuperTrend.
A estratégia foi lucrativa durante o período de tempo testado e os resultados podem ser vistos abaixo.
Estratégia de Negociação.
Os critérios para a estratégia são os seguintes:
Digite Long Trade.
Quando o preço de fechamento está acima de 200 SMA e cruza de baixo para cima SuperTrend Ou quando o preço de fechamento está acima de SuperTrend e cruza de baixo para acima de 200 SMA.
Digite Short Trade.
Quando o preço de fechamento é inferior a 200 SMA e cruza de cima para baixo SuperTrend Ou quando o preço de fechamento está abaixo de SuperTrend e cruza de cima para abaixo de 200 SMA.
Fechar Long Trade.
Quando Target Target ou Stop-Loss for atingido Quando o comércio é aberto na direção oppposite Ao fechar cruzamentos de preço de cima para abaixo de 25 EMA.
Fechar Short Trade.
Quando Target ou Stop-Loss for atingido Quando o comércio é aberto na direção do oppposite Ao fechar os cruzamentos de preços de abaixo para acima de 25 EMA.
O vídeo explica a estratégia de negociação e analisa as planilhas utilizadas para o backtest. Ele também passa pelos resultados e realiza uma análise passo-a-passo.
Fórmulas do Excel.
Essas fórmulas são baseadas em uma versão da planilha em meu curso de Ebook, Como fazer backtest de uma estratégia de negociação usando o Excel. As referências da célula dependerão de quais dados você está usando em quais colunas. No entanto, depois de entender a estratégia de negociação que está sendo testada, será fácil adaptar as fórmulas à sua própria planilha ou ao sistema de backtesting.
Longo Fechar Abaixo da EMA AC203 = SE (AND (F203 & lt; I203, F202 & gt; I202, AI203 = $ AI $ 2, AB203 = 0, AA203 = 0, Z203 = 0), & # 8221; ema próximo & # 8221 ;,)
EMA longo Fechar AN203 = SE (AC203 = & # 8221; EMA próximo & # 8221; (F203-AD203) / (AE203-AD203) * AG203,)
Short Close Below EMA AS203 = SE (AND (F203 & gt; I203, F202 & lt; I202, AY203 = $ AY $ 2, AQ203 = 0, AR203 = 0, $ AS $ 2 = 1, AP203 = 0), & # 8221; EMA close & # 8221 ;,)
EMA curto Fechar BD203 = SE (AS203 = & # 8221; EMA próximo & # 8221; (AT203-F203) / (AT203-AU203) * AW203,)
A estratégia de negociação foi backtested no par EUR / USD forex no prazo de 1 hora. O backtest foi realizado em três períodos de 20.000 períodos de 1 hora (3 anos, 3 meses).
Em seguida, combinei esses backtests e os resultados são mostrados na tabela abaixo.
Links Relacionados.
Se você estiver interessado em usar o Excel para backtest estratégias de negociação meu novo curso de Ebook: Como Backtest uma estratégia de negociação usando o Excel já está disponível na Amazon Kindle Bookstore.
Se você está interessado em testar e negociar automatizado usando o MT4, veja como criar um consultor especialista para uma Estratégia de negociação SuperTrend.
Se você quiser saber como calcular o SuperTrend no Excel, veja meu artigo anterior, Como calcular o indicador SuperTrend usando o Excel.
Outros artigos que você gostaria.
Curso Ebook - Como testar uma estratégia de negociação com o Excel Você quer & hellip;
Curso Ebook - Como testar uma estratégia de negociação com o Excel Você quer & hellip;
Neste artigo, mostro uma estratégia de negociação que usa o indicador SuperTrend para o comércio e o hellip;
Tradinformed.
Tradinformed está empenhada em ajudar os comerciantes a desenvolver suas habilidades e ficar à frente da concorrência. Veja como você pode aprender a recuperar suas próprias estratégias e obter novas idéias comerciais.
Um simples, rentável Heikin-Ashi Trading System 3 rentável Ichimoku Trading Strategies Como calcular o SuperTrend Indicator usando o Excel Home Como calcular um Trailing Stop-Loss Usando o Excel Como calcular o indicador PSAR usando o Excel Como negociar 3 linha quebrar gráficos lucrativamente mais recente Postagens.
Negociação Algorítmica (1) Opções Binárias (2) Padrões Gráficos (1) Criptomoedas (1) Ebook (2) Dados Econômicos (1) Crescimento Econômico (2) Biblioteca de Traders Essenciais (4) Comércio de Excel (6) Planilhas Google (1) Como para o Backtest (2) Entrevistas com Traders (1) Aprender a Negociar (18) MT4 (5) Trade Ideas (2) Automação de Negociação (3) Críticas de Livros (1) Trading Books (1) Trading Information (10) 2) Estratégias de Negociação (25) Sem categoria (2)
Simulador de Monte Carlo e libra; 8,63 6 em 1 pacote & libra; 63,35 & libra; 50.67 Bitcoin Breakout Trading Strategy & pound; 15,30 10 em 1 pacote & libra; 120,59 e libra; 81,40.
21 Indicadores Técnicos & libra; 4.31 Modelo Long-Short Backtest usando Excel & Pound; 8.82 Modelo Avançado de Backtest & pound; 15,30 21 Indicadores Mais Técnicos & libra; 4.31.
VIX Volatility S & P 500 Entrada e libra; 15.30 4 em 1 Pacote e libra; 32,75 e libra; 27,84 Long-Short Backtest Model usando Excel & pound; 8.82.
Tradinformed está empenhada em ajudar os comerciantes a desenvolver suas habilidades e ficar à frente da concorrência. Veja como você pode aprender a recuperar suas próprias estratégias e obter novas idéias comerciais.

Backtesting Long Short Moving Average Crossover Strategy no Excel.
Agora, para aqueles que me conhecem como blogueiro podem achar esse post pouco ortodoxo ao meu estilo tradicional de escrita, no entanto, no espírito da evolução, inspirado por meu amigo Stuart Reid (TuringFinance), vou seguir alguns dos As dicas sugeridas na seguinte postagem no blog.
Sendo um estudante no programa EPAT, fiquei entusiasmado em aprender a metodologia que outros usam quando se trata de backtesting. Como de costume, começamos no Excel e depois migramos para R.
Tendo escrito anteriormente uma série de blog em backtesting no Excel e, em seguida, mudando-se para R, estava muito interessado em ver um método ligeiramente diferente usado pela equipe QuantInsti.
Faça o download da planilha do Excel para que você possa seguir o exemplo à medida que avançamos.
"Ao calcular os preços das transações, abre portas muito interessantes para implementar a análise MAE"
A principal diferença no método é que ele abre as portas para métricas de desempenho como:
Total Retornos positivos Retornos negativos Negociações positivas Negociações Negativas Taxa de juros Retorno médio MAE (Excursão máxima adversa)
Mas sofre de não ser capaz de traçar uma curva de equidade como o meu método original (que eu gosto de pensar em nós um backtest vetorial), você pode, no entanto, incorporar facilmente a curva de equidade, como fiz nesta publicação.
Construa o "Olá Mundo" das estratégias de negociação: a "Estratégia de Transmissão Média Longa Curta Longa".
Passo 1: Obter dados.
Há vários lugares a partir dos quais você pode obter dados, no entanto, para este exemplo, obteremos dados do Yahoo Finance. Eu vou construir este exemplo usando o Google como um compartilhamento. Aqui está um link para baixar os dados de preço no formato de arquivo Csv do Yahoo. Nota: Certifique-se de encomendar da data mais antiga para a mais nova.
Dados de preço do Yahoo no formato de arquivo CSV.
Etapa 2: crie uma coluna para a média móvel curta e curta (SMA)
Para este exemplo, quero que você faça uso da SMA de 5 e 25 dias. Para aqueles que são novos para estratégias de negociação, um SMA é simplesmente a soma total do preço de fechamento dividido pelo número de observações.
2.1) Criar o SMA de curto prazo (5 dias)
Usando a seguinte fórmula no Excel: = MÉDIA (G2: G6)
2.2) Crie o SMA de longo prazo (25 dias)
Usando a seguinte fórmula no Excel: = MÉDIA (E2: E26)
Etapa 3: Gerar sinais de negociação.
É neste passo onde os leitores vão pegar uma grande diferença em relação às minhas postagens de blog anteriores sobre a construção de um backtester vectorizado. Incluirei também minha metodologia original nesta postagem para traçar a curva de equidade.
A próxima coisa que precisamos fazer é gerar sinais de compra e venda.
No dia anterior o (5) SMA estava abaixo do (25) SMA e no dia atual há uma mudança onde o (5) SMA está agora acima do (25) SMA,
Escreva a string "COMPRAR" no campo atual.
No dia anterior o (5) SMA estava acima do (25) SMA e no dia atual há uma mudança onde o (5) SMA está agora abaixo do (25) SMA,
Escreva a string "VENDER" no campo atual.
Adicione uma string vazia "" ao campo atual.
Isso é representado no Excel usando a seguinte fórmula:
Os SMAs são calculados sobre os preços de fechamento e não ajustados próximos porque queremos que o sinal comercial seja gerado nos dados do preço e não influenciado pelos dividendos pagos.
Passo 4: Obter preço de compra / venda do comércio.
Na próxima coluna, adicione a seguinte fórmula do Excel: = IF (J26 & lt; & gt; & # 8221; & # 8221;, G27, K26)
A lógica é a seguinte:
Se a coluna de sinal de comércio para o dia anterior (Muito importante para desacelerar o indicador para remover o viés de avanço) não é uma string vazia, então use o preço anterior acima do campo atual, caso contrário, configure o campo atual para o preço de fechamento para o dia.
Alguns podem argumentar que você não consegue realmente fechar o dia, mas você pode se você colocar seu pedido no leilão de encerramento e, mesmo depois do leilão, há algumas ordens residuais que você pode preencher, um dos fundos anteriores que eu trabalhou por exatamente isso.
Etapa 5: calcular retornos.
Adicione uma coluna chamada retornos que faz uso da seguinte Fórmula Excel: = IF (J26 = & # 8221; SELL & # 8221;, K27 / K26-1, IF (J26 = & # 8221; COMPRAR & # 8221; 1-K27 / K26, & # 8221; & # 8221;)))
Se o dia anterior gerou um sinal SELL, use o preço de fechamento de hoje e divida-o pelo preço de compra e subtraia 1.
Se o dia anterior gerou um sinal de COMPRA, adicione 1 e subtraia (preço de fechamento de hoje e divida-o pelo preço de compra).
Esta fórmula calcula os retornos para um determinado comércio.
Etapa 6: Calcule algumas métricas de desempenho.
Retornos positivos: = SUMIF (L: L, & # 8221; & gt; 0 & # 8243;) Retornos negativos: = SUMIF (L: L, & # 8221; & lt; 0 & # 8243;) Operações positivas: = COUNTIF (L: L, & # 8220; & gt; 0 & # 8221;) Negociações negativas: = COUNTIF (L: L, & # 8220; & lt; 0 & # 8221;) Relação de impacto = O4 / (O4 + O5) Retornos médios = MÉDIA (L :EU)
Essas não são as métricas tradicionais de desempenho do portfólio, mas, ao calcular o preço de compra e venda, elas abrem algumas portas muito interessantes para implementar a análise máxima de excursão adversa que pode ser usada para otimizar as perdas de parada.
"Nota: não consegui calcular essas métricas no meu método anterior devido a não ter registrado os preços de compra e venda das transações".
Adicionando uma Curva de Equidade.
Passo 1: adicione duas novas colunas para as Devoluções Diárias e os retornos diários do diário natural do compartilhamento.
Para isso, vou fazer uso do preço de fechamento ajustado, pois eu quero que os dividendos pagos sejam refletidos em nossa curva de equidade de estratégias e perfil de retorno total.
Fórmula para Retornos Diários é: (Preço de Hoje / Preço de Ontem) & # 8211; 1.
Fórmula Excel: = G3 / G2-1.
A fórmula é usada para o log natural. Os retornos diários são: LN (preço de hoje / preço de ontem)
Fórmula Excel: = LN (G3 / G2)
Etapa 2: Calcule os sinais de espera Long ou Short.
Nesta coluna, queremos saber se estamos atualmente segurando uma posição longa ou curta. Isso é representado por 1 para longo e -1 para breve.
Isso baseia-se na estratégia de cruzamento médio móvel, prolongando-se se o SMA de curto prazo estiver acima do SMA de longo prazo e curto se o contrário for verdadeiro.
"Nota: você deve atrasar os sinais por um dia para remover o viés de frente para a frente".
Neste exemplo, a fórmula do Excel é como tal: = IF (H26 & gt; I26, 1, -1)
Passo 3: Calcule a Estratégia em Devoluções Diárias.
Esta é a parte fácil, basta multiplicar o retorno natural do diário natural pela posição atual.
Fórmula Excel: = R27 * S27.
Passo 4: Calcule os retornos acumulados tanto para a estratégia quanto para o compartilhamento, como se você tivesse comprado e segurado. (Faça isso para atuar como uma comparação)
A fórmula para acumular retornos é simples, pois LN retorna, basta adicioná-los usando = T27 + U26.
Em seguida, você precisa inverter o log natural usando a seguinte fórmula: = EXP (U27) -1.
E então você precisa calcular os retornos acumulados das ações:
Excel formula = (1 + Q27) * (1 + Q26) -1.
Passo 5: trace os retornos.
Como pode ser visto a partir do gráfico acima, esta estratégia não é rentável neste período de tempo específico e compartilhe, mas isso.
O foco do tutorial está na criação de um backtester usando o Excel Click To Tweet. Eu incentivaria os leitores a explorar outras estratégias de negociação, tentando incorporar o indicador RSI para agir como um guia sobre como dimensionar uma posição.
Próximos passos.
Aqui estão mais algumas estratégias de negociação com folhas de dados de exemplo & # 8211; Negociação com ETF, Estratégia de Negociação de Candlestick, Estratégia de Negociação Par e Modelo de Preços de Opção Black-Scholes. Se você é um codificador ou um profissional de tecnologia que procura iniciar sua própria mesa de negociação automatizada, aprenda a negociação automatizada de palestras interativas ao vivo por praticantes diários. O Programa Executivo em Negociação Algorítmica abrange módulos de treinamento, como Estatísticas & amp; Econometria, Computação Financeira e Tecnologia e Algoritmica & amp; Negociação Quantitativa. Inscreva-se agora!
Posts Relacionados:
10 pensamentos sobre "Backtesting Long Short Moving Average Crossover Strategy no Excel"
20 de outubro de 2015.
Obrigado por compartilhar isso. Parece-me que há um erro ao calcular os retornos diários da estratégia (col S) nos dias que possuem um sinal comercial. Você está usando o fechar para fechar o preço para o retorno diário, mas em dias de negociação ocorre o preço de abertura precisa ser usado.
Por exemplo, no primeiro dia há uma posição (linha 27) o retorno deve nos o preço de abertura daquele dia (533.762426) como a entrada, não o dia anterior (531.352374). O retorno diário deve ser = -1 * (G27 / B27-1), que é de 1,09%.
22 de outubro de 2015.
Muito bem visto. Obrigado por apontar isso. Isso é um erro que cometi.
Existem duas maneiras de consertar isso,
1.) O Passo 4 deve fazer uso do preço de fechamento e não do aberto. (Isso é freqüentemente como eu executo testes rápidos.) Nota: você não pode realmente comprar no fechamento e o & # 8220; Blog Flirting with Models & # 8221; tem uma ótima maneira de resolver este problema com os dados do final do dia) blog. thinknewfound / 2015/10 / building-better-backtests /
2.) Alternativamente, você pode adicionar a seguinte fórmula à linha 27 coluna S e a todos os campos abaixo dessa coluna.
= IF (R27R26, ((E27 / B27) -1) * R27, Q27 * R27)
A lógica é a seguinte:
Se houver uma mudança no sinal comercial, então:
Calcule o retorno diário se comprarmos ao abrir. fórmula = (preço fechado / preço aberto) & # 8211; 1.
& amp; multiplique também pelo seu sinal de troca.
Basta usar os retornos diários como antes que são calculados de perto para fechar multiplicado pelo sinal comercial.
Obrigado novamente pelo feedback.
Como você encontrou o artigo? Existem outros tópicos sobre os quais você gostaria que escrevêssemos?
Olá, Jacques Joubert.
Trabalho interessante. No entanto, encontrei um erro. Ao calcular os rendimentos cum na posição curta, o capital final deve depender do preço de entrada e saída do cargo, mas não do que acontece no meio. Por exemplo, se você alterar G33 a 800, ele muda todos os dados abaixo (deve-se esperar que um aumento adverso do preço adverso na posição curta e, portanto, o retorno negativo deve ser compensado pelo retorno positivo do retorno ao intervalo 500-520, mas que não aconteceu).
Bull And Bear Investor.
Oi Bull e Bear Investor.
Obrigado por isso. É porque eu não usei o Ln Returns. Estarei atualizando o artigo durante o fim de semana. A curva de Equidade não altera muito com os retornos padrão (é desativado em 2%) Dado que você não contribui com os preços ajustados, adicionando valores abertos.
Mas bem manchado.
Ok. O artigo foi atualizado com todas as correções. Obrigado a todos pelo feedback.
15 de janeiro de 2017.
como calcular o retorno médio para o indecador RSI ou MFI.
Obrigado por compartilhar isso, me ajudou a projetar meu SMA um pouco.
20 de outubro de 2017.
É bom ver o seu post e compartilhar a lógica de negociação usando o Excel. Eu tentei isso por quase dois anos em casa depois do trabalho. Gostaria de compartilhar um ponto de vista para você obter essa melhoria de estratégia, portanto, pode inspirar as pessoas enquanto olha essa postagem.
Obrigado por algumas das suas ideias que me inspiram a considerar enquanto preparo um sistema de testes posteriores. No entanto, com uma investigação de longo prazo e baixa eficiência, começo a tentar obter software profissional para executar o backtest, mas ainda enfrenta um grande problema. É realmente ir começar a plataforma para usar o excel que pode fortalecer sua idéia antes de abordar o nível de especialista.
O preço da transação será o preço aberto do próximo dia de negociação. Na realidade, não podemos negociar preços próximos quando o mercado está fechado. Por exemplo, na célula K27, a fórmula deve ser = IF (J26 & # 8243; & # 8221;, B27, K26) em vez de = IF (J26 & # 8243; & # 8221; G27, K26).
Além disso, para melhorar o parâmetro SMA, vou usar a função offset que permite fazer cálculos rápidos apenas alterando os parâmetros. Eu adicionarei 5 e 25 às células H2 e I2, respectivamente. Então, a fórmula para a célula H6 será = IF (ROW () - 1 & lt; $ H $ 2, & quot; & quot;, MÉDIA (OFFSET ($ E6,0,0, - $ H $ 2,1)) enquanto I6 será = IF (ROW () - 1 & lt; $ I $ 2, & quot; & quot;, MÉDIA (OFFSET ($ E6,0,0, - $ I $ 2,1))).
Espera a mensagem acima ajuda.
24 de outubro de 2017.
Obrigado por sua recomendação. É certamente algo que os leitores podem implementar se não quiserem executar a análise sobre os preços no final do dia. Eu também gosto de como você usou a função de deslocamento. Eu recomendaria que você mude do Excel para um ambiente Python e use a biblioteca Numpy.
Quanto ao final do dia, fechar os preços. Foi minha experiência profissional que, como um investidor institucional, seu corretor pode obter um preço muito próximo do preço de fechamento, você pode adicionar uma pequena despesa de deslizamento aos custos de transação para explicar isso no backtest. A maioria dos mercados também possui uma negociação pós-mercado que os corretores podem facilitar (mas com baixa liquidez).
Espero que isso ajude a esclarecer.
1º de novembro de 2017.
Aqui está o alimento para o pensamento: se a estratégia é consistentemente um perdedor, faça o oposto.

No comments:

Post a Comment