Retrocesso/Optimização - página 7

 
lomme:
Isso está certo.

Mas para o teste de retrocesso da granularidade mais fina é de 1min também.

Posso imaginar, que os dados do tick não mudariam os resultados durante 1 minuto de testes de retrocesso.

Alguém já testou estes dados? Também concordo que dados de 1-M não farão diferença significativa a menos que o consultor especializado use escalpes excessivos, então até mesmo segundos podem contar.

 

Teste e otimização das costas

O primeiro item a ser observado é que a otimização só deve ser usada para verificar uma idéia existente baseada em um comportamento ou fato do mercado, e não para descobrir uma grande idéia comercial. A idéia de negociação deve vir primeiro. O perigo de se optar por um mercado é o de sobreajustar a curva, o que funcionou nos dados históricos pode não funcionar no futuro, mas você encontrou uma grande combaniação para os dados do passado. No entanto, ela pode ser usada em vários mercados para encontrar um conjunto de parâmetros que não devem ser usados, mas sim a sensibilidade do sistema comercial. Outro uso de simulação/backtesting é compreender os pontos fracos e fortes de seu sistema. Quando ele funciona bem, quando atrasa e quando simplesmente falha, para que você possa desenvolver novas idéias para resolver esses problemas.

Nesse ponto é importante entender que os dados são o aspecto mais importante dos testes de retaguarda. Uma vez que os testes de retaguarda são realmente apenas uma simulação de dados históricos e não uma distribuição matemática, então você precisa de dados de boa qualidade sobre vários pares que representam um número variado de condições de mercado. Bull,Bear, e lateralmente com volatilidade variável. Se o sistema pode suportar várias condições de mercado, incluindo choques, então é suficiente para a negociação. Sem dados representativos, a utilidade de seus resultados não terá nenhuma influência sobre o mercado real.

Então você tem que decidir quantos testes precisam ser realizados a fim de atingir um nível de confiança em seus resultados. Isto significa executar o back test em 15-30 conjuntos de dados que sejam suficientemente representativos e desenvolver um intervalo de confiança. Isto supõe que os dados são normalmente distribuídos quais dados financeiros não são, são inclinados para a esquerda com uma cauda grossa no lado direito. Portanto, uma opção é usar o limite central para melhorar sua experiência e torná-la mais confiável.

O retrocededor da Tradestation é provavelmente mais confiável do que o metatrader porque pode fazer transações em vez de esperar pelo preço de fechamento, mas o mesmo vale para os EA's no metatrader. Eu não acho que o testador de metatrader é terrível, embora ele simplesmente tenha que ser usado corretamente, e usá-lo sem um entendimento do processo de simulação sempre levará a resultados exagerados e expectativas irrealistas. Isto resultará em uma perda de capital. Realmente o objetivo de tudo isso é dar algumas dicas para entender que os testes de retaguarda, otimização, simulação são ferramentas usadas para melhorar um sistema e comparar as melhorias entre sistemas para não substituir o analista que projeta o sistema. Minha sugestão para a maioria se você usar o backtesting compreender a methedologia da simulação para economizar muita dor de cabeça e perda de capital.

Se eu realmente fosse fazer um backtesting, eu faria e estou tentando programar um sistema de backtesting em software de simulação como Arena ou Witness, mas estou interessado nas habilidades das estações comerciais.

 

Tutorial e dicas de testes anteriores

Tenho visto muita conversa sobre testes de retorno, e parece haver uma grande confusão, então eu, ao invés de postar em cada tópico relacionado a ele, decidi postar aqui informações que podem ficar longas, mas espero esclarecer o que é teste de retorno e como usá-lo PROPERAMENTE.

O teste de retorno é uma forma de simulação que utiliza dados históricos para avaliar melhorias em um sistema comercial.

A primeira coisa a entender é que a simulação é uma ferramenta muito parecida com um software de gráficos é uma ferramenta. Ela por si só não descobre uma idéia ou mesmo a melhora, o analista deve fazê-lo com base na observação das características fundamentais do mercado. Normalmente a simulação tenta tomar dados históricos para melhorar um sistema e reduzir a variação na saída do sistema, mas a simulação financeira é uma raça especial. Em vez disso, estamos tentando alterar o sistema para ter um melhor desempenho contra a variância nos dados sobre os quais não temos controle. Portanto, queremos um sistema que seja robusto, cujo desempenho não seja muito sensível a mercados em mudança.

Há várias partes de uma simulação. Há a metodologia, o sistema e os dados. Discutirei cada uma delas em detalhes, seguindo este post. Espero que você considere estas informações úteis.

 

Método de Simulação

Ao decidir melhorar seu sistema comercial, é importante ser sistemático a fim de engendrar um resultado bem sucedido. Fortuitamente, foi desenvolvido um método comprovado de simulação. Os primeiros 6 passos devem tomar cerca de 40% de seu tempo, assim como os últimos 5 passos. A etapa de experimentação deve tomar apenas 20% de seu tempo. Os passos são os seguintes.

1. Defina o problema - Esta é a etapa mais importante do processo de simulação. Você deve declarar claramente o que pretende alcançar através da simulação (backtest). Melhor colocar, onde está seu sistema funcionando mal agora. Ele não está entrando rápido o suficiente, saindo rápido o suficiente, ele está negociando com muita freqüência, não o suficiente? Você deseja comparar dois sistemas e decidir qual deles é mais valioso e confiável? Estes são problemas válidos.

2. Planeje o projeto - Esta etapa destina-se a ajudá-lo a ter certeza de que você tem as ferramentas e um roteiro para realizar a experiência com sucesso. A maioria de nós tem o que precisa em metatrader ou outro software, incluindo o Excel, mas os perhaphs não conhecem programação suficiente para fazê-lo você mesmo, então você pode precisar encontrar ajuda. Uma Linha do Tempo é útil para determinar se você está sendo feito rápido o suficiente.

3. Definir o sistema - Em uma simulação financeira, esta etapa envolveria decidir quais mercados você pretende negociar, e quais ferramentas o sistema utiliza para fazer isso. Ao contrário da simulação tradicional, você quer incluir o máximo de detalhes possível.

4. Conceptualizar o modelo - Durante esta etapa você delineará como seu sistema funciona, e desenvolverá uma base de regras que será programada para o sistema de negociação. Você poderá considerar volume, amplitude, momento, osciladores, ciclos, estações do ano, técnicas de comportamento, técnicas adaptativas, controle de risco, gerenciamento de dinheiro, sistemas de distribuição ou quaisquer aspectos que deseje cobrir.

5. Projeto Experimental Preliminar - Até este passo, espero que todos vocês possam trabalhar estas idéias rapidamente, mas ainda é importante escrevê-las para que possam rever e comparar seus resultados quando estiverem prontos. Este passo envolve decidir como você vai realizar o experimento. Farei um post separado detalhando o projeto experimental.

6. Preperação de dados de entrada - Bons dados são vitais para qualquer simulação, particularmente simulação financeira. Dados pobres podem inflar ou esvaziar seus resultados. Não há dados suficientes que não sejam representativos do mercado. Farei um pós-descalonamento separado dos dados de mercado. Durante esta etapa, você irá reunir e organizar seus dados em um formato utilizável pelo software. Acho que o metatrader prefere data, hora, abrir, alto, baixo, fechar, colunas de volume. Então você dividirá os dados em vários conjuntos de dados utilizados no experimento.

7. Tradução de modelos - Esta etapa é onde você realmente programa em seu sistema, neste ponto você deveria ter tido uma boa idéia de como ele foi organizado e dividido em várias funções para que seja um processo suave. Existem normalmente dois tipos de sistemas: integrado e vertical. Um sistema integrado funciona de uma forma específica enquanto um sistema vertical pode ter peças adicionadas e removidas.

8. Verificação e Validação - Este é um passo muito importante no qual você verifica que o modelo representa seu sistema comercial e que os dados são representativos e precisos para várias condições de mercado. No testador de estratégia, abrir o gráfico após executar uma execução de amostra é uma boa maneira de inspecionar visualmente que o sistema funciona como você havia previsto.

9. Projeto Experimental Final - Após validar a idéia, faça quaisquer mudanças no sistema que você tenha percebido que são necessárias no processo de passar pela methodolgy. Isto pode significar que você notou uma nova idéia enquanto estudava os dados, ou que alguma nova medida de relatório era necessária para satisfazer seus resultados.

10. Experimentação - Esta etapa é simplesmente onde você executa as iterações da experiência e coleta os dados de saída para análise. Isto provavelmente incluirá também o registro dos dados.

11. Análise e Interpretação - Após o experimento ter sido executado e os dados de saída coletados, você deve analisar os dados e interpretá-los. É aqui que você decidirá se melhorias no sistema fornecem uma contribuição válida ou se não.

12. Implementação e Documentação - Finnaly implementa as melhorias e documenta seus resultados para que se refiram e melhorem a vida útil da simulação.

 

Projeto Experimental Expandido

Observe que muitas das etapas metodológicas você pode ter que passar por várias vezes se esquecer de algo no processo de execução da simulação. Mas um aspecto muito importante é o projeto experimental.

Existem dois tipos de sistemas no mundo. Estocástico(Resultados variáveis) e Determinístico(Resultado único). Os mercados financeiros são o sistema estocástico definitivo junto ao clima. Está cheio de variações e os resultados podem ser muito grandes de dia para dia e de mercado para mercado. Mas o que nós queremos é um sistema que reaja a esses dados altamente variáveis de forma pouco variável, aumentando assim nosso desempenho e diminuindo nosso risco. A variância é a regra na natureza e existem dois tipos. Variação aleatória e variação não aleatória. A variância aleatória é inerente ao sistema e não pode ser totalmente eliminada, o que significa que nosso sistema será sempre perofrm diferente de mês para mês. A variância não aleatória deve ser controlada. Isto inclui desempenho fora da faixa de aceitabilidade, ou a reação do sistema a grandes picos ou buracos nos dados, quedas de energia, perda de conexão, má programação. Um sistema estável é aquele que gerenciou tudo isso através de alguma medida.

O objetivo de nossa experiência é determinar onde nosso sistema está funcionando fora dos requisitos declarados (variação inaceitável) e tentar melhorá-lo. Portanto, o primeiro passo é definir nossas métricas (valores medidos). Meta trader faz muitas das mais importantes para nós, drawdown, fator de lucro, porcentagem de boas negociações. Podemos estar preocupados com outras funções do sistema além destas, tais como a diferença entre os sinais de entrada e onde ele deveria ter entrado. Esta métrica mais complexa pode ter que ser programada manualmente.

Após definir as métricas que são importantes a serem coletadas de sua simulação/backtest, você precisa decidir como irá realizar o experimento. Uma vez que os dados de mercado são estocásticos uma vez executados (um único teste do sistema em um único conjunto de dados de mercado) não é suficiente para nos dar qualquer confiança no desempenho do sistema. As estatísticas nos encorajariam a fazer vários milhares de testes, mas infelizmente não temos tantos dados ou tempo. O número de execuções depende da variação encontrada nos dados. Isso não significa a variação nos dados do mercado, mas sim a variação no desempenho de seu sistema comercial. Tudo sobre comércio é compreender a variação e controlá-la. Neste caso, é melhor executar execuções independentes (conjuntos de dados/mercados diferentes), provavelmente de 15 a 30 execuções, durante períodos de tempo suficientemente longos para representar todos os tipos de mercados, ou seja, bull, bear, e nontrending. A não tendência pode ser a mais importante para representar forex para ver como um sistema de negociação de tendências irá lidar com o mercado de negociação de gama, mas depende do seu sistema.

A partir destas informações, você pode desenvolver um intervalo de confiança em torno de seus resultados. Um intervalo de confiança é uma faixa de desempenho que você tem um nível de confiança para que sua métrica se encaixe. Assim, com base em seus testes de 30 conjuntos de dados, você pode dizer que está 90% confiante de que sua vontade de ganhar entre 100.000 e 200.000 dólares. Isto depende de quão representativos os dados de mercado que você utilizou na simulação foram de condições de mercado variadas, de preferência que você os veja representados o máximo de vezes possível. Se um novo surgir nunca visto, não há razão para que seus resultados sejam semelhantes ao seu intervalo de confiança. O cálculo de um intervalo de confiança é de simples uso x(média)+-(valor t de estudante para alfa/2)*(s/sqrt(n)). Onde o valor t de aluno pode ser encontrado em uma tabela e n é o tamanho do sampel. s é o desvio padrão e alfa é seu nível de confiança - provavelmente .9 para 90%. A média é a média de seus resultados para a métrica em questão provavelmente lucro.

SE você comparar dois sistemas diferentes lidos em testes de hipóteses, provavelmente usando um teste ANOVA.

Assim, o que aprendemos é quantas corridas a fazer, quanto tempo elas precisam ser, o que devem representar e como avaliá-las para determinar sua significância. Esta pode ser uma seção confusa para muitos, sinta-se à vontade para fazer perguntas.

 

Expansão dos dados deretro-teste

Eu falei sobre a metodologia e a experimentação, bem como sobre o propósito de fazer um backtesting. Agora eu quero falar sobre os dados que você utiliza.

Estou ficando cansado, portanto, se algo não faz sentido, sinto muito HA.

Os dados são muito importantes e devem ter características severas para serem avaliados adequadamente. Os dados devem ser suficientemente longos, representar as condições em que você estará atuando, precisos e válidos.

Expandido isto significa que os dados devem representar várias vezes várias condições de mercado, se possível. Touros, Ursos, Alta volatilidade, Baixa volatilidade, choques de preços severos, mercados de alcance, mercados sem tendências, qualquer outra coisa que você possa pensar, porque você provavelmente se deparará com eles em algum momento e quer que seu sistema seja capaz de lidar com eles. Um erro que muitas pessoas cometem ao voltar atrás é que fazem uma corrida, dirigem o otimizador e pensam que encontraram o Santo Graal dos sistemas comerciais. SEMPRE REMBEMBRE se você tem resultados que são realmente bons ou realmente ruins como perguntas, alguma coisa provavelmente está errada com seus dados, programação, ou seu ajuste excessivo à curva. O excesso de ajuste é o processo de otimizar seu sistema para trabalhar com dados anteriores muito bem. Infelizmente, você pode nunca mais ver condições de mercado como essas e seu sistema é tão optomizado que é muito sensível a novas condições de mercado e irá cair rapidamente. Para ser representativo, deve durar vários anos, se disponível várias décadas, e não deve ser incluído se uma grande mudança no mercado tiver ocorrido, como por exemplo a combinação de mercados. Eu discordo de alguns e sinto que dados de mercado são dados de mercado se seus bons dados para testes anteriores, desde que representem alguma condição, então use seu próprio julgamento.

A coleta de dados de mercado para testes pode ser um longo julgamento, porque nunca está no formato desejado e sempre leva três vezes mais tempo do que se espera.

Finalmente os dados precisam ser independentes, isto pode ser um problema nos mercados forex onde todos os pares de dólares estão altamente correlacionados, o que significa que eles se movem em modas similares. Isto é freqüentemente quebrado mesmo dentro de um mercado com autocorrelação, o que significa que o próximo pedaço de dados está correlacionado ou dependente do último. As segundas observações devem ser distribuídas de forma idêntica ao longo de todo o processo. Novamente as distribuições dos mercados financeiros mudam o tempo todo, mas a forma básica provavelmente está próxima o suficiente para funcionar. Finnaly, elas devem ser distribuídas normalmente. Isto é SEMPRE quebrado, pois os preços tendem a permanecer em níveis mais baixos, ao contrário, as distribuições de preços e de movimento de preços são inclinadas para a esquerda e têm uma cauda mais grossa à direita do que o esperado. Embora isto seja o que nos permite ganhar dinheiro, viola uma hipótese básica de simulação. Há métodos para corrigir isso na análise, tais como transformações de log, mas o teorema do limite central é geralmente mais fácil de ser experimentado. Isto significa que se você executar 15 execuções em que cada valor de execução é a média de 15 outras execuções, isto tenderá a ser um intervalo de confiança mais normalmente distribuído e mais realista. Se isso não fizer sentido, basta ignorá-lo, mas lembre-se de que NÃO há correlação entre os resultados dos testes de retaguarda e o sistema físico com o qual você negocia, é apenas uma ferramenta e uma boa ferramenta, mas tem que ser entendida e usada corretamente.

Muitos outros tópicos devem ser considerados e podem ser mais tarde, como por exemplo,

procedimento de retrocesso

otimizando

estatísticas

probabilidade

transformação

considerações práticas

distribuições e entendê-las

fluxos aleatórios e dados sintáticos

teste de hipóteses

otimização/monitorização de monte carlo/mais rápido que os metatraders

mas até lá, espero que isto tenha sido um pouco útil e que você possa realizar melhores testes e obter melhores resultados quando implementar seu sistema comercial. Sinta-se à vontade para fazer perguntas, sei que foi muito.

 

Grande explicação.

Obrigado Cro2314

 

Breve pergunta sobre o sistema backstest mais diffrent...

O software Tradestations é melhor para o backtesting do que o software Metatrader?

Alguém tem experiência com os dois?

Minha conclusão até agora é que os backtests das estações de trading parecem mais avançados que o metatrader, mas do outro lado o metatrader é gratuito e a estação de trading custa $$$...

Qualquer feedback sobre as diferenças entre elas seria bom.

 

Eu só conheço alguns

editar***Maio 27. É importante observar que o backtesting é uma prática de simulação e não um simulador. Um simulador que parece funcionar bem está listado neste site como testador de Forex. Pode ser usado como um backtester, mas ainda não com os EA's. As simulações/resultados são na verdade destinados a fornecer estatísticas sobre o desempenho de seu sistema de negociação para que você possa analisar os pontos fracos. Ultimatelly tentando reduzir a variação na inclinação da curva do seu patrimônio ao longo do tempo. Pergunto-me se é por isso que as pessoas não gostam de metatraders de trás para frente. Talvez haja a procura de um simulador. Mas, se o desempenho visual que você procura é simplesmente abrir o gráfico depois de ter executado o testador de estratégia e você pode ver exatamente como a EA está negociando. Muito útil para a validação do sistema.***

Na verdade, tenho pouca experiência com as estações de trabalho de retaguarda. No entanto, reconheço um par de vantagens. A tradingtation pode fazer compras intradiárias (tick) em vez de usar o preço de fechamento no testador de estratégia, (apenas aconteceu na versão mais recente) enquanto a metatrader usa o preço de fechamento. Dependendo de sua estratégia, isto pode ter conseqüências significativas em seu sistema se você negociar muito rapidamente e tentar pegar os dois ou três movimentos de barra que aparecem de vez em quando. Mas vai também contra muitas estratégias fundamentais de esperar pelo preço de fechamento. A outra diferença é, naturalmente, a linguagem que você pode usar para programar varia entre elas, e algumas tarefas comuns como a soma de variáveis parece ser mais fácil na estação de negociação. Por fim, ouvi dizer que existem algumas limitações de memória dentro do metatrader que não são limitadas na estação de comércio, mas não me deparei com isso. Não sei que limites tem nas variáveis do sistema, como aquelas que impedem um EA de carregar seus indicadores na tela para você, como no metatrader. Parece também que as estatísticas pré-escritas que a estação de negociação lhe dá são mais robustas nos resultados de backtest. TradeStation def. tem algumas vantagens, mas lembre-se que o testador de costas deve reagir da mesma forma que o software reagirá se você simplesmente executar um sistema totalmente automatizado. Se este for o caso, sugiro fazer o backtest no mesmo software que você usa para negociar automaticamente ou então você pode se surpreender.

Sobretudo, imagino que seja melhor programado, mas, ao contrário de muitas pessoas, acredito que o backtester de metatraders funciona exatamente como deve funcionar se usado corretamente e você tem um entendimento de como ele executa seu código. No entanto, esse é sempre o caso do software de simulação, por isso não vejo isso como um inconveniente. O software que você usa normalmente não é tão importante como a forma como você interpreta os dados que ele lhe dá. Agora eu estou apenas discutindo, então eu vou parar aqui.

A propósito, obrigado Félix por seu elogio, ele foi muito apreciado.

 

Meu retroescavador vai muito devagar ... ajuda

Às vezes é rápido e às vezes vai muito devagar. Não sei por quê. Encontrei um arquivo de 1,5 GB nos registros e o apaguei, mas ainda é lento. É a melhor maneira de fazer o backtest dos programas deles? Eu estou usando Metatrader e muitas vezes tenho apenas 20% de qualidade de modelagem.

Razão: