Exponential moving average backtest


Médias móveis simples - backtests de negociação Quais parâmetros de média móvel são os melhores Este site tem um oceano de backtests médios móveis que eu conduzi para o DAX, SP500 e também USD / EU (Forex). Estes testes foram feitos usando diferentes estratégias de sinalização: variantes simples / exponenciais e crossover e índices diferentes para um período de 1000 dias de negociação. Ao contrário de outros sites, eu testei todos os valores médios diários de 1 a 1000 dias, para as estratégias cross-over também em combinação. Esses dados também são únicos, pois tentei realizar testes realistas, simulando o spread de compra / venda e impostos para comparação com uma estratégia de referência (buy hold). Um valor de janela de reação rápida parece bom na teoria e com um teste simples. Mas o spread, taxas e impostos irão destruir todo o desempenho na aplicação prática. É por isso que esses testes realistas são tão valiosos. Espero que este site possa ajudá-lo com seus negócios, aproveitá-lo. Agora, analisamos o SampP500 em um backtest usando o sistema de crossover de índice médio exponencial para 3750 dias de histórico gráfico e timbrows de um a mil. Na figura 1, vemos a comparação de todos os rendimentos, a linha verde mostrando o rendimento de 6,5 p. a. Abb. 1: Comparação de desempenho média exponencial para o SampP500 Abb. 2: EMA Performance vs Buy amp Hold Então, vemos novamente que não há muitas médias exponenciais que podem até mesmo passar o benchmark, mas pelo menos existem mais no backtest DAX. O mais alto é o EMA 334 com 8 p. a. a região ao redor parece ser a melhor neste backtest. Na figura dois, você vê o desempenho do EMA 334 comparado ao desempenho do índice. Abb. 3: Todos os gráficos de desempenho da EMA Abb. 4: Todos os gráficos de desempenho do EMA (Topview) Na figura 3 você vê todas as curvas de desempenho do timewindows de um a mil. Como no backtest DAX, os melhores rendimentos finais são com os EMAs intermediários. As médias móveis exponenciais curtas, no entanto, tiveram bom desempenho nos dias de 2750, depois começaram a falhar. Com o passar dos anos, descobri que muitos dos meus sistemas mecânicos são melhorados pela aplicação de médias móveis exponenciais (EMAs) ao tempo bruto. série, ou, em outros casos, linhas de sinal reais. Isso tem o efeito de suavizar os dados, mas de uma maneira responsiva ao tempo. Aqui está a matemática simples no ponto de decisão. Maravilhoso - você diz - então qual é o dilema O problema com EMAs e muitos mecanismos de suavização similares, é que eles contêm uma memória eterna que remonta ao início de sua série de dados. Se você é um desenvolvedor de sistemas, isso tem a desvantagem de ocasionalmente alterar seus sinais, dependendo da data de início do programa, à medida que períodos anteriores são descartados da janela de análise. A menos que você execute seu modelo em um banco de dados crescente, isso eventualmente terá o efeito de gerar momentos oops quando o histórico nos sinais de margem se tornar instável à medida que os próprios EMAs mudam sutilmente a cada nova execução. Isso é ruinoso para o cuidadoso backtester e fará com que até sistemas bem concebidos pareçam arbitrários. Uma solução simples Calcule o EMA em relação a uma janela de rolagem definida com o primeiro ponto sempre calculado em relação a uma média móvel simples em execução similar (ou seja, não apenas o primeiro período de sua série de dados completa). Contanto que você tenha uma série inicial fixa de dados (digamos, 20 ou 40 períodos), seus cálculos e sinais permanecerão estáveis, mantendo os benefícios acima. Mas espere - o programador astuto diz - que vai exigir uma função especial ou matriz Ei, eu não disse que seria assim tão fácil Se você quiser algo mais simples ainda, você sempre pode tentar algo assim: (Preço0 Preço12 Preço22 Preço4) / 6 Mas. desde que eu levantei e passei pelo trabalho de escrever este post, vou dar um passo extra e postar uma função Excel VBA na seção de comentários abaixo mais tarde neste fim de semana prolongado para aqueles que estão interessados. Código de Função VBA Postado em Comentários 2 comentários: Espero que este esclarecimento o que eu escrevi acima. Função EMA (célula como intervalo, comprimento como duplo, janela opcional como duplo, direção opcional como número inteiro) 39Window EMA por marketrewind. blogspot 39Comprimento EMA Período de lookback 39Janela rolante da janela 39Direction: 0 bottom to top 1 de cima para baixo se direção ltgt 1 então direção 0 Se a Janela 0 Então Comprimento da Janela y Cell. Row x Cell. Column Alfa 2 / (Comprimento 1) Se a Direção 0 Então yy y Janela - 1 EMA WorksheetFunction. Average (Faixa (Células (y Janela, x), Células (y Janela) Comprimento - 1, x))) For i yy To y Passo -1 EMA (Células (i, x).Valor Alfa) (EMA (1 - Alfa)) Próxima i yy - Janela 1 EMA WorksheetFunction. Average (Range () Células (y - Janela, x), Células (y - Janela - Comprimento 1, x))) Para i yy Para y EMA (Células (i, x).Valor Alfa) (EMA (1 - Alfa)) Next i Wow . Eu não sabia que você era tão geek, Jeff. Eu gosto Coisas boas senhor. Michael

Comments