Tuesday 15 May 2018

Backtesting estratégias de negociação no excel


Estratégias de negociação de backtesting no 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 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ó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. Ele permite que colunas da planilha "AnalysisOutput" sejam especificadas. Quando os testes de retorno forem realizados, cada linha da coluna será usada para avaliação.
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, 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 planilha "AnalysisOutput" cruzar 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 fazer uso de variáveis, como mostrado abaixo.
lucro É 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.
Neste exemplo, se o lucro em termos de porcentagem for maior que 20%, as condições de saída serão satisfeitas.

Backtesting 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 obter uma perspectiva diferente sobre o 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 está abaixo de 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 longo comércio.
Quando a meta de lucro ou Stop-Loss é atingida Quando a negociação é aberta na direção oposta Ao fechar cruzamentos de preço de cima para abaixo de 25 EMA.
Fechar curto comércio.
Quando a meta de lucro ou a Stop Loss é atingida Quando a negociação é aberta na direção oposta Ao fechar cruzamentos de preço de abaixo para acima de 25 EMA.
O vídeo explica a estratégia de negociação e analisa as planilhas usadas 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 ;,)
Short EMA Close 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 e 3 meses).
Eu então combinei esses backtests e os resultados são mostrados na tabela abaixo.

Exemplo: Backtesting uma estratégia de negociação.
Todos os comerciantes podem se beneficiar do teste de suas estratégias de negociação. Ele pode destacar os pontos fortes e fracos e mostrar como melhorar como trader. No entanto, é difícil encontrar uma maneira precisa de testar suas estratégias de negociação.
O Excel é um dos softwares mais populares do mundo. A maioria das pessoas já possui algumas habilidades no uso do Excel. Neste artigo e no vídeo que acompanha, mostro como o Excel pode ser usado para testar uma ampla variedade de estratégias de negociação em qualquer mercado e período de tempo.
Muitas pessoas aprendem melhor assistindo. Eu gravei um vídeo no YouTube mostrando como é fácil testar suas próprias estratégias usando o Excel. Neste vídeo, adiciono dados históricos. Eu programo 3 indicadores técnicos. Por fim, insiro os critérios de entrada e saída de negociação.
O quadro.
Toda vez que você testa uma estratégia de negociação, você está fazendo as mesmas coisas repetidas vezes. Você não quer começar com um modelo em branco toda vez que precisar testar uma estratégia.
Você deve desenvolver uma estrutura para desenvolver uma estratégia de negociação. Eu uso um modelo Tradinformed Backtest como um framework para testar todas as minhas estratégias de negociação. Esses modelos incluem muitos recursos úteis, incluindo stop-loss, metas de lucro e paradas finais. Eles também incluem uma variedade de métricas diferentes para analisar o desempenho da estratégia de negociação.
Dados Históricos.
É vital obter bons dados históricos de preços antes do backtesting. É fácil obter dados de preços diários e de longo prazo com frequência de graça. O Yahoo Finance tem uma enorme gama de diferentes mercados.
Obter dados intradiários é mais difícil. Eu uso MT4 para minha negociação forex. O MT4 é oferecido por muitos corretores e tem a vantagem de permitir o download de dados diretamente do terminal. Para baixar os dados, você precisa selecionar Ferramentas & # 8211; Centro de História e, em seguida, escolha o mercado para exportar.
Depois de ter os dados históricos em uma planilha. Você pode usar Copiar e Colar para inserir rapidamente os dados no seu backtest. Não use Recortar e Colar porque isso pode afetar as fórmulas na planilha de backtest.
Sinais de entrada & # 8211; Indicadores Técnicos e Padrões de Cartas.
O próximo passo para testar sua estratégia é inserir seus critérios de negociação. Muitas pessoas trocam usando indicadores técnicos e padrões gráficos. Estes são baseados em fórmulas matemáticas e podem ser calculados usando o Excel. No vídeo, demonstro como calcular rapidamente uma Média Móvel Exponencial, um Oscilador Estocástico e a Média da Faixa Real. Você pode ver no vídeo que não demora muito para fazer isso.
Na maioria das vezes você não vai querer calcular os indicadores do zero. Para tornar isso mais rápido e fácil, escrevi dois eBooks que mostram como calcular uma série de indicadores técnicos e padrões gráficos. Para obter mais informações, consulte: Melhore seus resultados comerciais calculando indicadores técnicos e obtenha melhores resultados comerciais usando indicadores técnicos. Ambos vêm com uma planilha contendo todos os cálculos dos indicadores.
Depois de ter o indicador em uma planilha, basta copiá-lo e colá-lo na planilha do backtest.
Programando seus critérios de entrada e saída.
Esse bit pode ser um desafio para pessoas que não estão acostumadas com as instruções do IF no Excel. Se as declarações são os principais blocos de construção de toda a lógica de negociação. Queremos entrar em negociações sob condições específicas. Isso pode acontecer quando o MACD cruzou a linha 0, uma vela Doji se formou ou o preço atingiu um certo nível de Fibonacci.
A sintaxe para instruções If é: IF (Logic) & # 8211; é verdade, então faça isso & # 8211; é falso, então faça isso.
No Excel, poderíamos querer usar uma instrução If para verificar se X é maior que Y. A fórmula ficaria assim: = IF (X & gt; Y, & # 8220; X é mais alto & # 8221 ;, & # 8220; Menor & # 8221;)
Critério de entrada.
No vídeo eu usei um critério de entrada comercial de Enter Long quando o preço é maior que o da EMA e o da Stochsatic cruzou acima da linha 20 (oversold line). Meus critérios de Entrada no Comércio estão na Coluna R. A primeira célula continha: = SE (AND (F203 & gt; G203, K203 & gt; Resultados! $ C $ 12, K202 & lt; Resultados! $ C $ 12, AC203 = $ AC $ 3) & # 8220; Longo & # 8221;, & # 8221; & # 8221;)
Podemos fazer mais sentido se o traduzirmos em pseudocódigo. Isso significa usar linguagem normal para explicar cada etapa. No pseudo-código, a declaração diz:
IF (Fechar & gt; EMA E Estocástico & gt; Linha de sobrevenda E Estocástica Anterior & lt; Linha de Oversold E nenhum negócio longo está aberto), Em seguida, insira Long, caso contrário, não faça nada.
Critério de saída.
Os critérios de saída são programados exatamente da mesma maneira que os critérios de entrada. Nesse caso, talvez eu queira sair de um Long Trade quando o estocástico se movimentar acima de 80 (linha de sobrecompra). No Excel, usei o código: = SE (AND (K203 & gt; Resultados! $ C $ 13, U203 = 0, T203 = 0, AC203 = $ AC $ 2), & # 8221; Fechar & # 8221 ;,)
No pseudo-código isso significa. IF (Estocástico & gt; Linha de compra excessiva E Stop-Loss não foi atingido E o Alvo de lucro não foi atingido E Negociações longas estão abertas, depois fecham por muito tempo, caso contrário não fazem nada.
Stop-Losses e Lucro Alvos.
Neste modelo de Backtest Tradinformed tenho stop-loss e metas de lucro já programadas. Eles são calculados usando um múltiplo do ATR. Isso significa que eles são dinâmicos e se ajustam à volatilidade do mercado.
Podemos usar o Excel para calcular as métricas de resultados que desejamos. Nesta planilha eu uso uma variedade de métodos para ver o quão lucrativa é a estratégia. O fator de lucro mede o valor absoluto dos negócios vencedores dividido pelos negócios perdidos. A porcentagem de vitórias nos informa quantas negociações são lucrativas em comparação com quantas estão perdendo. Também comparo o valor do comércio médio vencedor com o comércio médio perdedor.
Eu também uso um Gráfico de Capital para obter uma impressão visual da estratégia de negociação ao longo do tempo. Isso mostrará se os resultados foram consistentes ou se ocorreram durante condições de mercado específicas.
Outros artigos que você pode gostar.
Como o nome sugere, o indicador técnico SuperTrend ajuda a identificar tendências de mercado. Este artigo & hellip;
// Retrações de Fibonacci são uma das melhores maneiras de entender a ação do preço de mercado. Se você & hellip;
Aprenda a Backtest suas estratégias de negociação usando o Excel Você quer melhorar o seu & hellip;

Finanças Assistidas por Computador & # 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 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 postagem anterior: "Sell in May and Go Away & # 8211; Realmente? & # 8220 ;.
Etapa 1: obtenha 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 este arquivo em disco. Em seguida, abra-o com o MS Excel 2010 e continuamos com a próxima etapa.
Etapa 2: adicione colunas para desempenho e indicador.
Agora, neste arquivo, adicionamos o log-return (Column & # 8220; Return & # 8221;) para cada dia da série temporal:
Então, adicionamos o indicador da estratégia de negociação & # 8211; neste caso, apenas o mês do ano:
Finalmente, adicionamos um indicador de grupo: Década.
Etapa 3: adicione a tabela dinâmica.
Classificar 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 pela formatação condicional "# 8221 ;:
[Página inicial - & gt; Estilos - & gt; Formatação condicional]
Etapa 5: Calcular 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 as performances 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. 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 realizar exatamente as mesmas etapas usando o MS Power Pivot, um suplemento gratuito do MS Excel com acesso ao banco de dados.

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; Ordene 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 apresentar a você como usar o Excel para fazer o back das 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.
Entrando nas 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, mais fórmulas você descobrirá e mais flexibilidade 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 é nosso lucro / prejuízo. 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. Faça o download de alguns dados do Yahoo Finance, carregue-os no Excel e experimente as fórmulas e veja o que você pode criar. Publique suas perguntas no fórum.

No comments:

Post a Comment