Backtesting e Forward Testing: A Importância da Correlação.
Os comerciantes que estão ansiosos para experimentar uma idéia de negociação em um mercado ativo frequentemente cometem o erro de confiar inteiramente em resultados de backtesting para determinar se o sistema será lucrativo. Embora o backtesting possa fornecer informações valiosas aos traders, muitas vezes é enganoso e é apenas uma parte do processo de avaliação. O teste fora da amostra e o teste de desempenho avançado fornecem mais uma confirmação sobre a eficácia do sistema e podem mostrar as verdadeiras cores do sistema antes que o dinheiro real esteja na linha. Uma boa correlação entre os resultados dos testes de backtesting, out-of-sample e forward performance é vital para determinar a viabilidade de um sistema de negociação. (Oferecemos algumas dicas sobre esse processo que podem ajudar a refinar suas estratégias de negociação atuais. Para saber mais, leia Backtesting: Interpreting the Past.)
Noções básicas de backtesting.
Backtesting refere-se à aplicação de um sistema de negociação a dados históricos para verificar como um sistema teria sido executado durante o período de tempo especificado. Muitas das plataformas de negociação atuais suportam backtesting. Os traders podem testar ideias com alguns toques no teclado e obter informações sobre a eficácia de uma ideia sem arriscar fundos em uma conta de negociação. O backtesting pode avaliar ideias simples, como o desempenho de um crossover de média móvel em dados históricos ou sistemas mais complexos com uma variedade de entradas e acionadores.
Desde que uma ideia possa ser quantificada, ela pode ser backtested. Alguns traders e investidores podem buscar a experiência de um programador qualificado para desenvolver a ideia de forma testável. Normalmente, isso envolve um programador que codifica a ideia na linguagem proprietária hospedada pela plataforma de negociação. O programador pode incorporar variáveis de entrada definidas pelo usuário que permitem ao trader "ajustar" o sistema. Um exemplo disso seria no sistema crossover de média móvel simples mencionado acima: O comerciante seria capaz de inserir (ou alterar) os comprimentos das duas médias móveis usadas no sistema. O trader poderia fazer o backtest para determinar quais comprimentos de médias móveis teriam o melhor desempenho nos dados históricos. (Obtenha mais informações no Tutorial de negociação eletrônica.)
Estudos de otimização.
Muitas plataformas de negociação também permitem estudos de otimização. Isso implica inserir um intervalo para a entrada especificada e permitir que o computador "faça as contas" para descobrir qual entrada teria o melhor desempenho. Uma otimização multivariável pode fazer as contas por duas ou mais variáveis para determinar quais combinações teriam alcançado o melhor resultado. Por exemplo, os comerciantes podem dizer ao programa quais insumos gostariam de adicionar em sua estratégia; estes seriam então otimizados para seus pesos ideais, dados os dados históricos testados.
O backtesting pode ser empolgante, pois um sistema não lucrativo pode muitas vezes ser magicamente transformado em uma máquina lucrativa com algumas otimizações. Infelizmente, ajustar um sistema para alcançar o maior nível de lucratividade anterior geralmente leva a um sistema que terá um desempenho ruim na negociação real. Essa otimização excessiva cria sistemas com boa aparência apenas no papel.
Ajuste de curva é o uso de análise de otimização para criar o maior número de negociações vencedoras com o maior lucro nos dados históricos usados no período de teste. Embora pareça impressionante em resultados de backtesting, o ajuste de curva leva a sistemas não confiáveis, pois os resultados são essencialmente personalizados para esses dados e períodos de tempo específicos.
Backtesting e otimização fornecem muitos benefícios para um trader, mas isso é apenas parte do processo ao avaliar um sistema de negociação em potencial. O próximo passo do trader é aplicar o sistema a dados históricos que não tenham sido usados na fase inicial do backtesting.
Dados dentro da amostra vs. fora da amostra.
Ao testar uma ideia sobre dados históricos, é vantajoso reservar um período de dados históricos para fins de teste. Os dados históricos iniciais em que a ideia é testada e otimizada são chamados de dados in-sample. O conjunto de dados que foi reservado é conhecido como dados fora da amostra. Essa configuração é uma parte importante do processo de avaliação porque fornece uma maneira de testar a ideia em dados que não foram um componente no modelo de otimização. Como resultado, a idéia não terá sido influenciada de forma alguma pelos dados fora da amostra, e os traders poderão determinar o desempenho do sistema em novos dados, ou seja, na negociação na vida real.
Antes de iniciar qualquer backtesting ou otimização, os operadores podem reservar uma porcentagem dos dados históricos a serem reservados para testes fora da amostra. Um método é dividir os dados históricos em três partes e separar um terço para uso no teste fora da amostra. Somente os dados na amostra devem ser usados para o teste inicial e qualquer otimização. A Figura 1 mostra uma linha do tempo em que um terço dos dados históricos é reservado para testes fora da amostra e dois terços são usados para o teste dentro da amostra. Embora a Figura 1 represente os dados fora da amostra no início do teste, os procedimentos típicos teriam a parte fora da amostra imediatamente anterior ao desempenho futuro.
Correlação refere-se às semelhanças entre os desempenhos e as tendências gerais dos dois conjuntos de dados. Métricas de correlação podem ser usadas na avaliação de relatórios de desempenho de estratégia criados durante o período de teste (um recurso que a maioria das plataformas de negociação fornece). Quanto mais forte a correlação entre os dois, melhor a probabilidade de um sistema ter um bom desempenho em testes de desempenho avançado e negociação ao vivo.
A Figura 2 ilustra dois sistemas diferentes que foram testados e otimizados em dados de amostra e aplicados a dados fora da amostra. O gráfico à esquerda mostra um sistema que foi claramente ajustado à curva para funcionar bem nos dados da amostra e falhou completamente nos dados fora da amostra. O gráfico à direita mostra um sistema que teve um bom desempenho em dados dentro e fora da amostra. Uma vez que um sistema de negociação foi desenvolvido usando dados na amostra, ele está pronto para ser aplicado aos dados fora da amostra . Os comerciantes podem avaliar e comparar os resultados de desempenho entre os dados dentro da amostra e fora da amostra.
Se houver pouca correlação entre os testes dentro da amostra e fora da amostra, como o gráfico à esquerda na Figura 2, é provável que o sistema tenha sido super otimizado e não tenha um bom desempenho na negociação ao vivo. Se houver correlação forte no desempenho, como visto no gráfico à direita na Figura 2, a próxima fase de avaliação envolve um tipo adicional de teste fora da amostra conhecido como teste de desempenho avançado. (Para mais informações sobre previsão, consulte Previsão financeira: o método bayesiano.)
Princípios Básicos de Teste de Desempenho Avançado.
O teste de desempenho avançado, também conhecido como comércio de papel, fornece aos traders um outro conjunto de dados fora da amostra para avaliar um sistema. O teste de desempenho avançado é uma simulação da negociação real e envolve seguir a lógica do sistema em um mercado ativo. É também chamado de negociação de papel, uma vez que todas as negociações são executadas apenas em papel; isto é, as entradas e saídas comerciais são documentadas juntamente com qualquer lucro ou perda do sistema, mas nenhuma negociação real é executada. Um aspecto importante do teste de desempenho avançado é seguir exatamente a lógica do sistema; caso contrário, torna-se difícil, se não impossível, avaliar com precisão essa etapa do processo. Os traders devem ser honestos sobre quaisquer entradas e saídas comerciais e evitar comportamentos como os negócios de escolha de cereja ou não incluindo um comércio em papel racionalizando que "eu nunca teria tomado esse comércio". Se o negócio tivesse ocorrido seguindo a lógica do sistema, deveria ser documentado e avaliado.
Muitos corretores oferecem uma conta de negociação simulada, onde os negócios podem ser feitos e os lucros e perdas correspondentes calculados. O uso de uma conta de negociação simulada pode criar uma atmosfera semi-realista para praticar a negociação e avaliar o sistema.
A Figura 2 também mostra os resultados para testes de desempenho avançado em dois sistemas. Mais uma vez, o sistema representado no gráfico da esquerda não consegue ir além do teste inicial nos dados da amostra. O sistema mostrado no gráfico da direita, no entanto, continua a ter um bom desempenho em todas as fases, incluindo o teste de desempenho avançado. Um sistema que mostra resultados positivos com boa correlação entre os testes de amostragem in-sample, out-of-sample e forward está pronto para ser implementado em um mercado ao vivo.
The Bottom Line.
O backtesting é uma ferramenta valiosa disponível na maioria das plataformas de negociação. A divisão de dados históricos em vários conjuntos para fornecer testes dentro da amostra e fora da amostra pode fornecer aos traders um meio prático e eficiente de avaliar uma idéia e um sistema de negociação. Como a maioria dos traders emprega técnicas de otimização em backtesting, é importante avaliar o sistema em dados limpos para determinar sua viabilidade. Continuar com os testes fora da amostra com testes de desempenho avançados fornece outra camada de segurança antes de colocar um sistema no mercado, arriscando dinheiro real. Resultados positivos e boa correlação entre backtesting na amostra e fora da amostra e teste de desempenho avançado aumentam a probabilidade de um sistema ter um bom desempenho na negociação real. (Para obter uma visão geral abrangente sobre análise técnica, consulte Noções básicas de análise técnica.)
Como começar a negociar: Teste seu plano de negociação.
Uma parte integrante do processo de desenvolvimento é testar o plano de negociação para determinar sua expectativa - quanto dinheiro o sistema poderia ganhar em um mercado ao vivo? A maioria de nós já viu as advertências postadas em vários sites financeiros e literatura declarando: “Desempenho passado não é indicativo de resultados futuros.” Embora isso seja certamente verdadeiro em relação aos planos de negociação, existem medidas que você pode tomar para determinar se um plano é provável ter sucesso no futuro; ou seja, backtesting e teste de desempenho avançado.
Backtesting
O termo backtesting se refere ao teste de um sistema de negociação em dados históricos para ver como ele teria sido realizado durante esse período de tempo. A maioria das plataformas de negociação de hoje tem recursos robustos de backtesting, e você pode testar rapidamente ideias sem arriscar o dinheiro em sua conta de negociação. O backtesting pode ser usado para avaliar ideias simples, como o desempenho de um crossover de média móvel ou sistemas mais complexos com entradas e acionadores de variedade.
O ajuste de curva envolve ajustes ou otimização do sistema para criar a maior porcentagem de negociações vencedoras ou o maior lucro nos dados históricos usados no período de teste. Embora faça um sistema parecer fantástico em resultados de backtesting, ele leva a sistemas não confiáveis, já que os resultados são essencialmente personalizados para um período de tempo - no passado. Backtesting e otimização fornecem muitos benefícios, mas é apenas parte do processo ao avaliar um sistema de negociação. O próximo passo é aplicar o sistema a novos dados históricos.
Dados no exemplo versus dados fora da amostra.
É benéfico reservar um período de dados históricos para fins de teste. Os dados históricos iniciais que você testa e otimiza são conhecidos como dados in-sample e o conjunto de dados que foi reservado é chamado de dados fora de amostra. Esse conjunto de dados "limpo" é uma parte importante do processo de avaliação, pois fornece uma maneira de testar a ideia em dados que não influenciaram o processo de otimização. Isso pode lhe dar uma idéia melhor de como o sistema funcionará no comércio ao vivo.
Uma vez que seu plano de negociação tenha sido avaliado usando dados dentro da amostra, você pode aplicá-lo aos dados fora da amostra. Se houver baixa correlação entre os testes dentro da amostra e fora da amostra, é provável que o sistema esteja super otimizado e não tenha um bom desempenho na negociação ao vivo. Se houver correlação forte, a próxima fase de avaliação é um tipo adicional de teste fora da amostra conhecido como teste de desempenho avançado.
Teste de caminhada para frente.
por Jack L. Weinberg.
Veja como você pode usar o teste de caminhada como uma ferramenta para comparar os sistemas de negociação e obter insights sobre como comparar o desempenho futuro dos sistemas.
Avanços recentes no software do sistema de negociação e poderosas capacidades de hardware proporcionaram uma ferramenta valiosa na avaliação da viabilidade futura dos sistemas de negociação & mdash; teste de caminhada. Esta técnica permite que o desenvolvedor do sistema de negociação avalie rapidamente se o sistema sobreviverá (ou até prosperará) no futuro. Isso é feito segmentando o passado em períodos dentro da amostra e fora da amostra e otimizando cada período sucessivo da amostra para fornecer os valores para o próximo período fora da amostra. Além disso, o teste pode ser usado para comparar um sistema com outro. O teste de walk-forward fornece uma visão indevida sobre como comparar o desempenho projetado dos sistemas de negociação.
Otimização e seus usos.
A otimização dos sistemas de negociação é usada para aprender com o passado os valores com maior probabilidade de sucesso no futuro. Este é o cerne da análise técnica & mdash; o conceito de que o futuro (especialmente o futuro a curto prazo) pode ser previsto a partir do passado mais recente. Os valores determinados pela otimização do passado mais recente devem ser usados no próximo período de tempo. No contexto do teste de caminhada, o passado mais recente é chamado de período in-sample e o próximo horizonte de tempo é chamado de período fora da amostra.
A otimização fornece ao projetista do sistema de negociação a capacidade de determinar os melhores valores para as variáveis no período dentro da amostra. Quando um designer de sistema de negociação coloca muitas restrições nas regras do sistema, o sistema é ajustado à curva. O teste de walk-forward mostrará que, se um sistema for ajustado à curva, ele poderá funcionar por um período no passado, mas falhará por períodos que estão fora da amostra.
FIGURA 1: TESTE DE CAMINHADA A FRENTE. Aqui você vê as datas usadas para dados dentro da amostra e fora da amostra.
Importância do teste de caminhada.
O teste de walk-forward é uma das ferramentas mais poderosas desenvolvidas para analisar o desempenho futuro dos sistemas de negociação. Para fins desta análise comparativa, foi decidido que o período durante o qual a otimização da caminhada seria conduzida seria de oito anos, com os quatro primeiros sendo o primeiro período dentro da amostra. O teste de walk-forward funciona da seguinte maneira: o primeiro período in-sample é selecionado e as variáveis selecionadas são otimizadas para uma função objetivo escolhida. Esses valores são usados para o primeiro período fora da amostra. O processo é então repetido para cada conjunto de períodos dentro da amostra e fora da amostra.
Na Figura 1, você pode ver os conjuntos de datas que foram usados na análise deste artigo dos sistemas. Com o teste de walk-forward, podemos unir os períodos fora da amostra para ter uma ideia clara de como o sistema teria sido executado no total do período de amostragem de 1º de janeiro de 2004 a 31 de dezembro de 2007.
Uma questão-chave a ser feita por qualquer projetista de sistemas ao implementar a otimização é: Qual é o objetivo a ser otimizado? A maioria dos softwares de trading de sistema permitirá a otimização do lucro líquido, mas, tipicamente, isso não é o que o trader do mundo real acha que deveria ser o objetivo mais importante.
Para comparar sistemas, escolhi a medida da razão K. Desenvolvido por Lars Kestner e detalhado em um artigo na Stocks & amp; Commodities, esta medida pode ser chamada de uma das medidas mais importantes do desempenho de um sistema. O K-ratio é uma medida de desempenho sem unidade que pode ser comparada entre mercados e períodos de tempo. Juntos, o índice de Sharpe e o índice de K são as medidas mais importantes ao avaliar o desempenho da estratégia de negociação. Para obter mais informações sobre como escolher um objetivo para um sistema de negociação, consulte Sistemas de negociação quantitativos, por Howard Bandy.
. Continua na edição de janeiro da Technical Analysis of Stocks & amp; Commodities.
Extraído de um artigo publicado originalmente na edição de janeiro de 2009 da Technical Analysis of Stocks & amp; Revista de Commodities. Todos os direitos reservados. &cópia de; Copyright 2009, Análise Técnica, Inc.
Teste de caminhada para frente.
O Walk-Forward Optimization é um processo de otimização que aborda a questão do ajuste de curvas no desenvolvimento de estratégias. O que torna o teste de caminhada para frente diferente de outros métodos de otimização é a abordagem de vários passos para o teste de estratégia. Mais informações técnicas sobre esse recurso podem ser encontradas na página Wiki relacionada.
Ferramenta essencial para sistemas robustos.
A essência e a principal vantagem do teste Walk-Forward é que ele combina otimização e backtesting. Durante o processo, as entradas ideais são testadas em relação às condições reais do mercado para ver como elas seriam executadas. Múltiplos testes WFO ajudam a provar ou refutar a validade do seu sistema de negociação. A ideia por trás do teste de caminhada está ilustrada abaixo:
Detalhes técnicos do processo.
Walk Forward Optimization segrega a série de dados em vários segmentos e cada segmento é dividido em uma porção dentro da amostra (IS) e uma porção fora da amostra (OOS). A otimização de parâmetros para a estratégia é executada usando a parte IS do primeiro segmento. Os mesmos parâmetros são usados para testar a estratégia na parte OOS do mesmo segmento. O processo é repetido para os segmentos restantes. Os resultados de desempenho do OOS de cada um dos segmentos são considerados "reais" em vez de "ajuste de curva", porque os parâmetros que produziram os resultados do OOS foram gerados a partir dos dados do IS.
Impedindo o ajuste de curvas.
Toda a série de dados é dividida em partes menores. Uma série de testes é feita e cada teste é feito em uma pequena parte de toda a série de dados (dados na amostra). Quando os valores ótimos de entrada são encontrados para essa pequena parte, o software verifica como eles teriam sido realizados no mundo real, aplicando-os aos dados que não faziam parte do teste (dados fora da amostra). Os testes continuam a repetir até que você tenha testado todo o intervalo de dados. No final, você é mostrado os resultados que realizaram o melhor em diferentes condições de mercado. Isso ajuda a evitar a otimização excessiva, também conhecida como "ajuste de curva".
Diferentes opções para atender às suas necessidades.
Dependendo das tarefas do profissional, o teste Walk-Forward pode ser usado com métodos de otimização genéticos e exaustivos. Você pode especificar tamanhos diferentes para os dados dentro da amostra e fora da amostra e até exibir informações em barras ou dias. A análise Walk-Forward adiciona mais precisão e otimização detalhada. É um teste de estresse real para sua estratégia de negociação.
Não pule para frente.
Há também uma modificação no processo de walk-forward, chamado de modo ancorado. Quando você seleciona o modo ancorado, os dados na amostra permanecem ancorados no início e ficam mais longos para cada teste, em vez de avançar. Essa é outra maneira de garantir que seus resultados sejam robustos.
Teste avançado do sistema de negociação
O teste fora da amostra é uma prática necessária para evitar o ajuste de curva durante a otimização de um sistema de negociação. O teste Walk-Forward melhora a ideia do teste de dados fora da amostra e é projetado como uma abordagem adaptativa contínua. Sua invenção é creditada principalmente a Robert Pardo (leia mais sobre isso em seu livro)
A maneira como funciona é bastante simples. É uma combinação de múltiplos ciclos de otimização na amostra & # 8221; com verificação fora de amostra & # 8221 ;.
Antecedentes sobre otimização e testes fora da amostra.
A razão para a realização de testes de verificação fora da amostra é verificar se a otimização de dados na amostra resultou em ajuste de curva (super otimização) ou em uma seleção robusta de parâmetros do sistema.
Se os parâmetros derivados da otimização tiverem um desempenho muito pior no teste de verificação fora da amostra, isso provavelmente significa que os valores dos parâmetros foram (super) otimizados para o conjunto de dados específico da amostra (ajustado à curva). Se o sistema funcionar de maneira semelhante, isso deve significar que os parâmetros do sistema são robustos e validam a abordagem adotada para otimização.
Processo Walk-Forward: como funciona.
O teste Walk-Forward é um processo contínuo e dinâmico para determinar se a curva de otimização de parâmetros apenas se ajusta ao preço e ao ruído ou se produz resultados fora da amostra estatisticamente válidos. Aqui está como isso funciona:
Digamos que temos 10 anos de dados de 1999 a 2009. O período de otimização é de três anos (dados na amostra) e o período de verificação é de um ano (dados fora da amostra). Para começar, você começa otimizando seu sistema usando apenas os primeiros três anos de dados & # 8211; neste exemplo, 1999-2001. Quando o sistema é otimizado, registre os valores ótimos dos parâmetros e use-os no teste com novos dados (fora da amostra) a partir de 2002.
Caminhe para frente de 1999 a 2009.
Deslize a janela de dados de três anos para frente (2000-2002) e execute o mesmo processo. Depois de processar todos os dados disponíveis, você pode comparar o desempenho de todos os testes fora da amostra e compará-los às execuções de otimização na amostra. Se a comparação mostra que o sistema é suficientemente robusto para ser negociado ao vivo, você simplesmente continua o processo de walk-forward em tempo real, re-otimizando a cada ano.
No fechamento.
O Walk-Forward é um processo adaptativo que re-otimiza o sistema continuamente para adaptar seus parâmetros às condições mais recentes do mercado.
A premissa de executar várias etapas de otimização / verificação ao longo do tempo é que o passado recente é um ambiente melhor para selecionar parâmetros do sistema do que o passado distante. Essa é uma suposição que você precisa considerar ao escolher se deseja usar o teste Walk-Forward ou não, mas essa é uma ferramenta útil no seu arsenal de desenvolvimento de sistemas.
Como discutido anteriormente, alterar os parâmetros do sistema com base nas condições recentes do mercado pode resultar em um sistema correndo atrás. O próximo post sobre este tópico será uma comparação real do desempenho de um sistema básico quando otimizado de maneira padrão & # 8220; & # 8221; e quando otimizado usando o & # 8220; Walk-Forward & # 8221 ;.
18 Comentários até agora & darr;
Muito bom resumo, e eu gosto desse gráfico legal de walk-forward que se move.
Se eu puder levantar uma questão sobre terminologia precisa. O ajuste de curva é um processo que não pode ser evitado, e é o que produz o conjunto de parâmetros que escolhemos para negociar. Posso sugerir que o Walk Forward garanta que nosso processo de ajuste de curva (otimização) não seja exagerado ou excessivo.
Bob Pardo (o autor de "walk-forward") faz este ponto em seu tomo. Ele também escreveu que o walk-forward é uma metodologia à prova de idiotas para determinar se um sistema pode ser negociado e quais resultados podem ser esperados.
O próximo nível de consideração é o que fazer com todos esses dados de avanço. Como você vê isso? Como você sabe o que você tem? Isso tem sido um obstáculo para mim e é a principal razão pela qual eu me voltei para o R para me ajudar a organizar os dados.
O que estamos comparando? Lucro líquido? Rebaixamento? O que é eficiência & # 8217; da caminhada para a frente é aceitável, e o que diz que seu sistema simplesmente suga? Eu acho que você poderia compilar cerca de 20 estatísticas (média, desvio padrão, etc) e não exagerar.
Eu vejo seu ponto na terminologia. Eu sei que a terminologia é importante e eu não quero ficar preso nela "# 8230; ;-)
Na minha opinião, ajuste de curva é over-fit (ou seja, o objetivo do ajuste de curva é encontrar os valores de parâmetro que melhor correspondem aos dados. Se você fizer isso, você teria o conjunto de parâmetros que produz o melhor back-end. sistema testado, retornos, etc., mas que provavelmente não serão muito robustos no futuro) & # 8211; obrigado por essa entrada de qualquer maneira & # 8211; Eu poderia querer ler Pardo para algum esclarecimento.
Em relação aos seus outros pontos, e tenho que esclarecer que ainda não tenho "# 8211"; como você & # 8211; fiquei com as mãos sujas na execução de um teste walk-forward real & # 8230; Mas eu estava imaginando que você iria decidir primeiro sobre uma felicidade feliz. função (é assim que Ed Seykota chama a função objetivo). O valor da sua função bliss determinaria qual conjunto de parâmetros você escolheria na otimização e utilizaria na etapa de back-test / verification do seu teste de walk-forward.
Depois que todo o teste de walk-forward estiver completo, isso pode ser apenas uma questão de comparar valores de funções bliss na otimização versus back-test / verification e decidir uma relação de limiar entre os 2 para decidir se o sistema é robusto o suficiente no futuro.
Eu estaria interessado em ver sua opinião sobre isso. Eu lembro que você postou um pouco sobre funções objetivas em seu blog & # 8230;
Eu certamente tenho mais a acrescentar quando eu começar com ele no TradersStudio!
Retorno Pessimista na Margem (PROM)
Função FF_PROM2 (MarginRequired As Integer)
Dim AdjWin como Double.
Dim AdjLoss como Double.
Dim MarginValue As Integer.
Dim PROM como Double.
Dim SlowAve As BarArray.
Dim FastAve como BarArray.
AdjWin = ganha & # 8211; Sqr (vitórias)
AdjLoss = perdas + Sqr (perdas)
Se SlowAve & lt; FastAve Então.
PROM = ((AdjWin * AvgWin) + (AdjLoss * AvgLoss)) / MarginValue.
"Este próximo relacionamento é o que permite que o fator seja passado para o relatório.
Oi leite & # 8211; por algum motivo, seu último comentário foi "pego" # 8221; nas minhas redes de spam & # 8221; & # 8230;
Eu suponho que a fórmula PROM acima (de Pardo eu acredito) seria sua função objetiva para otimizar um sistema de negociação?
Eu não dei muita atenção a uma função objetiva ainda, mas eu sempre imaginei ter um grande & # 8220; big & # 8221; fórmula tentando comprometer os bons e os maus do sistema de negociação, ou seja, você gostaria de maximizar:
enquanto você deseja maximizar:
& # 8211; calor médio da carteira.
& # 8211; rebaixamentos (ou seja, maximizar a proporção de lagos Ed Seykota).
Uma coisa que eu gostaria de tentar é formular todos esses aspectos e priorizá-los em uma fórmula.
A ideia de reduzir os aspectos positivos do sistema de negociação (# de ganhos) e aumentar os maus (# de perdas) na fórmula PROM acima é bastante interessante também & # 8211; Obrigado!
Sim, essa é a essência da fórmula de Pardo. Outra idéia legal que ele tem é a correlação de capital com lucro perfeito. Isso mostra que um sistema faz dinheiro quando o mercado o oferece e pode fazer menos quando o lucro perfeito é menor.
Em vez de criar uma função de condicionamento físico composto, que tal corrermos adiante em um grupo deles para determinar qual ilumina melhor a rentabilidade futura. Isso seria uma tarefa e tanto, mas um exercício interessante.
Que tal formular uma métrica para a eficácia de uma função de fitness? Talvez algo logarítmico com valores entre zero e 1. Cada função de adequação pode ser tratada como sua própria rede neural e classificada em sua capacidade de adivinhar a resposta correta.
Não tenho certeza como fazer isso embora.
Nesse ponto, comparar o lucro perfeito com o desempenho do sistema (equidade) seria uma maneira interessante de responder à pergunta: "O sistema não está mais realizando ou os mercados não estão oferecendo oportunidades?" (ou seja, se o desempenho não é bom, mas o lucro perfeito permanece bom, o sistema pode ter um problema)
Em relação à métrica para a eficácia de uma função de fitness (eu entendo que você quer dizer objetivo / função bliss) & # 8211; Não estou convencido de que esta seja uma abordagem válida, já que não vejo o papel da função objetiva de ter qualquer tipo de previsão preditiva & # 8221; poder (isto é, deve ser apenas uma maneira de expressar o desempenho geral de um sistema sob seus critérios ideais). Embora eu veja seu ponto de vista de que esta é a entrada usada para selecionar quais conjuntos de parâmetros são transportados (e, portanto, algum tipo de valor de previsibilidade pode ser útil) & # 8230;
Ou talvez eu tenha entendido mal o seu ponto: você teria uma função objetiva como a métrica de saída e uma função de fitness treinada (por redes neurais) para determinar a melhor previsibilidade entre o teste de otimização e verificação (ou seja, a função de adequação seria usada para trabalhar? o melhor / mais robusto conjunto de parâmetros entre otimização e back-test, isto é, onde a relação de funções objetivas é mais constante e idealmente alta). Isso parece um pouco complicado.
Eu não sou tão interessado em redes neurais de qualquer maneira (abordagem black box vs KISS, etc.)
Sim, objetivo = aptidão = função de felicidade. É o árbitro dos melhores parâmetros. E eu sugeriria que eles são preditivos da robustez de um sistema. Provavelmente, duvidaríamos do valor do lucro líquido como um bom juiz dos melhores parâmetros. Lucro líquido / rebaixamento máximo é melhor. O que é melhor do que isso?
Talvez, e isso é apenas um pensamento, há uma maneira de medir o quão bem uma função de fitness escolhe o melhor conjunto de parâmetros.
Eu acho que há um número infinito de funções de felicidade & # 8230;
A função da bem-aventurança serve ao propósito de quantificar o seu comércio Nirvana (felicidade, nirvana: eu estou permanecendo no mesmo tema aqui & # 8230;).
A função bliss é a sua PRÓPRIA maneira de classificar quão bem ou mal o desempenho de um sistema foi feito & # 8211; com base em seus próprios parâmetros pessoais. Por exemplo, o lucro pode ser proporcionalmente mais importante para você do que drawdowns. Por que não usar?
(lucro líquido) ^ 2 / Max DD (ou 2 * ln (CAR) & # 8211; ln (MaxDD)) & # 8211; ou seja, você coloca mais ênfase no lucro.
mas então você poderia ser mais chique adicionando mais parâmetros na equação e possivelmente alguma lógica:
se CAR & gt; 15% depois 2 * ln (CAR) & # 8211; ln (MaxDD) & # 8211; Em (tempo real no mercado) & # 8211; 3 * ln (calor médio da carteira)
se CAR & lt; 15% depois 2 * ln (CAR) & # 8211; 3 * ln (MaxDD) & # 8211; Em (tempo real no mercado) & # 8211; 5 * ln (calor médio da carteira)
Acho muito bom o site do Ed Seykota (provavelmente vou adicioná-lo ao meu blogroll) e você pode verificar o link:
procure a função bliss & # 8211; Isso levanta outras questões também (ou seja, lucro líquido / Max DD pode dar-lhe um valor de 8 com 4% de lucro e 0,5% de DD. Isso é melhor do que 40% de lucro e 10% de DD?)
Mas, de qualquer forma, não tenho certeza de como você poderia adicionar um elemento preditivo a ele. isso não parece se encaixar em seu propósito (que é quantificar com um único número o quão bons são os resultados do back-test). Agora eu acho que pode ser possível definir uma abordagem robusta que permita escolher o conjunto de parâmetros que pode ter um melhor desempenho no futuro (ou seja, comparar todas as execuções de otimização e suas funções de felicidade, mas não necessariamente escolher o maior número & # 8211; spike & # 8211; mas sim um máximo estável local).
Jez, este é um ponto em Amibroker que pode fazer um trabalho um pouco mais difícil em CBT. Em backtester regular, Tomasz fecha todas as negociações no final do período OOS. Não há transição. Para execuções de EOD mais longas, isso pode não ser crítico. Mas atrapalha com períodos mais curtos. Bruce Robinson começou a usar o & # 8220; state & # 8221; função & # 8230; mas requer alguma manipulação. Eu posso ser capaz de desenterrar a Bruces AFL se você estiver interessado.
Isso soa definitivamente interessante, porque eu provavelmente vou mudar para prazos mais curtos em algum momento. E é sempre bom ouvir sobre problemas e soluções para aprender a plataforma ..
Esta entrada no blog me ajudou a entender o Walk Forward Testing. A imagem sozinha vale mais que mil palavras.
Além disso, fiz referência a este post no fórum NinjaTrader.
Oi Jez, eu gosto do seu blog.
Caminhe para a frente é intresting mas como você pode lidar com a dependência de data de início? Quero dizer, com um sistema cruzado EMA simples, quando você começa a calcular o atraso rápido e lento para cada ciclo?
Oi Alex & # 8211; obrigado pelo comentário.
Não tenho 100% de certeza de que entendi sua pergunta, mas para o avanço, eu teria uma coleção de combinações de parâmetros com as quais quero que o sistema seja executado. Todas estas combinações seriam executadas a partir do início do back-test e em cada período de intervalo o seu desempenho seria medido e os de melhor desempenho seriam escolhidos para negociação & # 8230;
Com a dependência de data de início, quero dizer o seguinte: considere um sistema de média móvel exponencial dupla; Se você começar a calcular o EMA rápido e lento em determinada data, receberá alguns sinais de entrada e saída. Se você começar a calcular um mês depois, por exemplo, com o mesmo parâmetro, receberá sinais diferentes e resultados diferentes também. Na análise de caminhada, você tem esse problema a cada ciclo.
Concordo com esse ponto Alex, no entanto, o processo ideal de Walk-Forward teria apenas uma data de início para o cálculo do indicador (ou seja, o início dos dados que estão sendo testados). Para cada ciclo de otimização, você veria o desempenho de todos os sistemas (iniciados desde o início do teste), mas somente para esse período de otimização (ou seja, permitindo que todas as combinações de sistemas / parâmetros sejam executadas em paralelo desde o início e as observem em janelas de tempo separadas (correspondentes às otimizações e fases fora da amostra). Você não reativaria cada sistema para cada ciclo diferente. Infelizmente, isso é o que a TB faz e uma das razões é que não é ideal.
Eu também acho melhor entender de uma função objetiva como uma definição pessoal de sucesso. & # 8221; Como Jez apontou, o Lucro / DD não é uma maneira adequada de avaliar um sistema porque ele não é responsável pelo estômago daqueles que arriscam a capital.
Para alguns, 7% de CAGR ou ICGR podem ser adequados, porque tudo o que eles podem tolerar é a redução de luz. Para outros, eles podem estar no mercado para uma montanha-russa de 20-30% CAGR ou ICGR com um máximo de DDs que fará seu estômago cair.
Para cada unidade de lucro, devemos pagar em unidades de volatilidade. O lucro é a recompensa que vem dos períodos de baixa. A quantidade de rebaixamento que qualquer investidor está disposto a suportar é pessoal. Somente um alinhamento entre os parâmetros do sistema e a visão subjetiva do risco do operador pode levar ao sucesso da negociação do sistema a longo prazo. Caso contrário, as emoções de risco e perda podem sobrecarregar o operador ou seus clientes.
Deixe um comentário (Cancelar)
Atualizações gratuitas.
Posts populares.
Procure no blog Au. Tra. Sy.
Corretor Global de Futuros.
Blog Au. Tra. Sy, pesquisa e desenvolvimento de Trading Sistemático, com um sabor de Trend Following.
Disclaimer: O desempenho passado não é necessariamente indicativo de resultados futuros. A negociação de futuros é complexa e apresenta o risco de perdas substanciais; como tal, pode não ser adequado para todos os investidores. O conteúdo deste site é fornecido apenas como informação geral e não deve ser considerado como recomendação de investimento. Todo o conteúdo do site, não deve ser interpretado como uma recomendação para comprar ou vender qualquer título ou instrumento financeiro, ou para participar de qualquer estratégia específica de negociação ou investimento. As idéias expressas neste site são unicamente as opiniões do autor. O autor pode ou não ter uma posição em qualquer instrumento financeiro ou estratégia citada acima. Qualquer ação que você tome como resultado de informações ou análises neste site é, em última instância, de sua exclusiva responsabilidade.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS TÊM MUITAS LIMITAÇÕES INERENTES, ALGUNS DOS QUAIS SÃO DESCRITOS ABAIXO. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SEMELHANTES AOS MOSTRADOS; DE FATO, HÁ DIFERENÇAS FREQUENTEMENTE DIFERENCIADAS ENTRE OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS E OS RESULTADOS REALIZADOS SUBSEQÜENTEMENTE ATINGIDOS POR QUALQUER PROGRAMA DE NEGOCIAÇÃO PARTICULAR. UMA DAS LIMITAÇÕES DOS RESULTADOS DE DESEMPENHO HIPOTÉTICOS É QUE ELES SÃO GERALMENTE PREPARADOS COM O BENEFÍCIO DE HINDSIGHT. ALÉM DISSO, A NEGOCIAÇÃO HIPOTÉTICA NÃO ENVOLVE O RISCO FINANCEIRO, E NENHUM REGISTRO DE NEGOCIAÇÃO HIPOTÉTICA PODE COMPLETAMENTE CONTA PARA O IMPACTO DO RISCO FINANCEIRO DE NEGOCIAÇÃO REAL. POR EXEMPLO, A CAPACIDADE PARA SUPORTAR PERDAS OU ADERIR A UM PROGRAMA DE NEGOCIAÇÃO EM PARTICULAR DENTRO DA NEGOCIAÇÃO DE PERDAS SÃO PONTOS MATERIAIS QUE TAMBÉM PODEM AFETAR DE ACORDO, DE FORMA ALTA, OS RESULTADOS DA NEGOCIAÇÃO. EXISTEM NUMEROSOS OUTROS FATORES RELACIONADOS COM OS MERCADOS EM GERAL OU PARA A IMPLEMENTAÇÃO DE QUALQUER PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO QUE NÃO PODE SER TOTALMENTE CONSIDERADO PARA A ELABORAÇÃO DE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E TODOS OS QUE PODEM AFETAR COM ANTECEDÊNCIA OS RESULTADOS DA NEGOCIAÇÃO.
ESTAS TABELAS DE DESEMPENHO E RESULTADOS SÃO HIPOTÉTICOS NA NATUREZA E NÃO REPRESENTAM A NEGOCIAÇÃO EM CONTAS REAIS.
Caminhe Teste Avançado Explicado em Termos Simples.
Aqui está um vídeo simples que exibe o que é o Teste de Avanço. Poderia ser útil para iniciantes com Backtesters & # 038; Técnicas de Otimização da Estratégia de Negociação.
Para aqueles não iniciados, o Backtesting nada mais é do que aplicar suas próprias estratégias de negociação nos Dados Históricos e testar o desempenho do sistema de negociação (Profit / Loss, Winning ratio, Profit%, Max Drawdown, CAR / MDD, Consecutive profit / Loss & # 8230; etc).
E depois de ter identificado o sistema de negociação correto usando backtesting com melhores resultados. O próximo passo é otimizar seu sistema de negociação para um melhor desempenho contra qualquer condição comercial difícil.
Mas o que fazer um teste a pé para a frente significa? Como isso está relacionado ao Backtesting and Optimization?
No caso de backtesting e otimização, geralmente aplicamos nossa regra de negociação somente em um período de tempo específico e calculamos os resultados. Mas, no caso do teste Walk Forward, geralmente realizamos vários backtests e otimizações em diferentes períodos de tempo sobrepostos. isto é
1) Divida o timeframe em conjuntos de timeframe.
2) Em cada timeframe define novamente dividir os dados em dois. A primeira metade é chamada de Dados de Amostra e a metade posterior de Dados de Amostra.
3) Em Dados de Amostra é usado para otimização e Out Sample Data for Backtesting.
4) Para o Primeiro conjunto de tempo, otimize-o usando Dados de Amostra e faça backtest com dados fora da amostra com os melhores parâmetros. Da mesma forma este procedimento é repetido para todos os conjuntos de períodos de tempo sobrepostos.
Então o que todos os três fazem (Backtesting, Optimization, Walk Forward Testing)
Backtesting & # 8211; Backtesting Calcula o desempenho do sistema de negociação.
Otimização & # 8211; A otimização ajuda você a identificar os melhores parâmetros que melhoram o desempenho do seu sistema de negociação.
Caminhar em frente Teste & # 8211; Ande adiante Teste faz seu sistema de negociação mais robusto. O que torna o teste de caminhada para frente diferente de outros métodos de otimização é a abordagem de vários passos para o teste de estratégia. Sua invenção é creditada principalmente a Robert Pardo.
Extraído de Amibroker.
O objetivo do teste de caminhada é determinar sempre que o desempenho do sistema de negociação otimizado é o realista ou o resultado do ajuste de curva. O desempenho do sistema pode ser considerado realista se tiver valor predicativo e tiver bom desempenho em dados de mercado não vistos (fora da amostra). Quando o sistema é projetado adequadamente, o desempenho comercial em tempo real deve ser em relação àquele descoberto durante a otimização. Se o sistema vai funcionar em negociação real, ele deve primeiro passar por um teste de caminhada. Em outras palavras, não nos importamos realmente com resultados dentro da amostra, uma vez que são (ou deveriam ser) sempre bons. O que importa é o desempenho do sistema fora da amostra. É a estimativa realista de como o sistema funcionaria na negociação real e revelará rapidamente quaisquer problemas de ajuste de curva. Se o desempenho fora da amostra for ruim, você não deve negociar esse sistema.
PROCESSO DE CAMINHAR: COMO FUNCIONA.
O teste Walk-Forward é um processo contínuo e dinâmico para determinar se a curva de otimização de parâmetros apenas se ajusta ao preço e ao ruído ou se produz resultados fora da amostra estatisticamente válidos. Aqui está como isso funciona:
Digamos que tenhamos 10 anos de dados de 1999 a 2009. O período de otimização é de três anos (dados na amostra) e o período de verificação é de um ano (dados fora da amostra). Para começar, comece por otimizar seu sistema usando apenas os primeiros três anos de dados - neste exemplo, 1999-2001. Quando o sistema é otimizado, registre os valores ótimos dos parâmetros e use-os no teste com novos dados (fora da amostra) a partir de 2002.
Deslize a janela de dados de três anos para frente (2000-2002) e execute o mesmo processo. Depois de processar todos os dados disponíveis, você pode comparar o desempenho de todos os testes fora da amostra e compará-los às execuções de otimização na amostra. Se a comparação mostra que o sistema é suficientemente robusto para ser negociado ao vivo, você simplesmente continua o processo de walk-forward em tempo real, re-otimizando a cada ano.
Leituras Relacionadas e Observações.
Qual é o Software de Negociação mais favorito entre os Traders? Estava realmente interessado em verificar qual software de negociação foi preferido pela maioria dos traders do mundo e a métrica abaixo mostra qual software de negociação é mais popular baseado [& hellip;] Metatrader para Amibroker Tick Charts usando o plugin universal DDE. Solução para obter Gráficos Realtime Tick no Amibroker usando o Metatrader DDE Server. Importando dados Intraday do IEOD do Metatrader para o Amibroker Importar dados do Intraday do IEOD da Metatrader para a Amibroker é um dos requisitos da maioria dos usuários de software amibroker para importar e analisar Nifty, World Indices, estoques dos EUA, [& hellip;] 4 Plugin for Amibroker já tentei testar gráficos em tempo real no seu software Amibroker. Se não, tente iniciar com 4 Plugin for Amibroker para analisar dados forex ao vivo. Workshop de Análise Técnica e Automated Trading System da Amibroker & # 8211; Chennai e Mumbai Este curso dará a você uma visão aprofundada sobre o uso técnico profundo do software Amibroker, lidará com isso de maneira eficaz no uso diário (Scanners, Exploração, Sistema de Negociação, Customização de Intermediários Anuais contra o Balanço Inicial & # 8211; Negociação Intradiária Estratégia Código AFL Amibroker Onetimeframing contra o saldo inicial é uma das minhas estratégias de negociação intraday favorito com uma taxa de ganho bastante decente (60-70%). Conceito é adotado do perfil de mercado para o comércio contra [& hellip;]
Sobre Rajandran.
Rajandran é um comerciante em tempo integral e fundador da Marketcalls & amp; Co-fundador da Traderscafe, comercializa principalmente usando conceitos de negociação discricionários, como perfil de mercado, análise sentimental de negociação, construção de modelos de temporização, modelos de negociação algorítmica. Instrui comerciantes profissionais, comerciantes em tempo integral & amp; aspirantes a comerciantes em tempo integral. Rajandran freqüentou a faculdade em Chennai, onde ganhou um BE em Eletrônica e Comunicações. Rajandran tem uma ampla compreensão de softwares comerciais como Amibroker, Ninjatrader, Esignal, Metastock, Motivewave, Analista de Mercado (Optuma), Metatrader, Tradingivew, Python e compreende as necessidades individuais dos investidores e investidores, utilizando uma ampla gama de metodologias.
olá thanx para introdução de testes de caminhada para a frente. uma coisa que eu observei quando tentei entender como backtesting de walkforward. ele cria uma base de dados workforward em ami e não pode ser excluída.
Walk Foward Testing - Sessão de Whiteboard de Trocas Informadas.
Matthew Wills diz.
Eu estava apenas imaginando se você sabe de uma maneira de exportar a lista de produtos OOS (fora da amostra) da análise de caminhada da Amibroker.
Eu gostaria de analisar os resultados em excel para criar uma análise Monte Carlo dos resultados como uma verificação final antes de usar um determinado sistema de negociação.
O que é caminhar em frente otimização?
Um dos maiores problemas com o desenvolvimento de sistemas é que muitas estratégias de negociação não se sustentam no futuro. Isto pode ser devido a vários motivos:
O sistema não é baseado em uma premissa válida As condições do mercado mudaram de maneira dramática, o que invalida as premissas teóricas sobre as quais o sistema foi desenvolvido. O sistema não foi desenvolvido e testado com uma metodologia sólida. Por exemplo, (a) falta de robustez em um sistema devido a parâmetros impróprios e (b) regras inconsistentes e testes inadequados do sistema usando dados fora da amostra e na amostra.
Existem várias abordagens e metodologias para avaliar a robustez e aumentar a probabilidade de desempenho comercial positivo na vida real, incluindo:
Prevenção de pico Número limitado de parâmetros otimizáveis Mapa de superfície 3D Análise de Monte Carlo Mistura de dados Andar para frente & amp; caminhar análise para trás.
Uma das formas mais robustas de testar a confiabilidade de um sistema de negociação e garantir que o programa terá a maior probabilidade de ter um bom desempenho na negociação real ao vivo é usar a Otimização de Avanço Direto (WFO), um método descrito pela primeira vez no livro & # 8220; Projeto, Teste e Otimização de Sistemas de Negociação & # 8221; de Roberto Pardo.
O que é análise de caminhada?
Análise de avanço é o processo de otimização de um sistema de negociação usando um conjunto limitado de parâmetros e, em seguida, testando o melhor conjunto de parâmetros otimizados em dados fora da amostra. Este processo é semelhante a como um comerciante usaria um sistema de negociação automatizado em negociação real ao vivo. A janela de tempo in-sample é deslocada para frente pelo período coberto pelo teste out-of-sample e o processo é repetido. No final do teste, todos os resultados registrados são usados para avaliar a estratégia de negociação.
Em outras palavras, a análise de encaminhamento faz otimização em um conjunto de treinamento; testes em um período após o set e, em seguida, rola tudo para frente e repete o processo. Temos vários períodos fora da amostra e analisamos esses resultados juntos. O teste de avanço é uma aplicação específica de uma técnica conhecida como validação cruzada. Isso significa pegar um segmento de dados para otimizar um sistema e outro segmento de dados para validar. Isso dá um período maior fora da amostra e permite que o desenvolvedor do sistema veja a estabilidade do sistema ao longo do tempo.
A figura abaixo ilustra o procedimento de análise de caminhada. Uma otimização é executada durante um período mais longo (os dados na amostra) e, em seguida, o conjunto de parâmetros otimizados é testado durante um período mais curto subseqüente (os dados fora da amostra). Os períodos de otimização e teste são transferidos para a frente e o processo é repetido até que um tamanho de amostra adequado seja alcançado.
A fim de demonstrar o conceito, vamos realizar neste artigo uma otimização para a frente em um sistema de negociação de volatilidade (VBO). Para o teste, usaremos os dados de 1 minuto do DAX, NinjaTrader e CQG, e assumiremos 3 pontos de slippage para cada negociação de R / T para cobrir os atritos comerciais.
O processo consiste em três etapas principais:
Definir períodos dentro da amostra e fora da amostra Definir uma área de parâmetros robustos Executar a caminhada para a frente.
Definição dos períodos in-sample e out-of-sample.
Escolheremos como amostra 1/1/2001 a 31/12/2009 para projeto do sistema e otimização na amostra e 1/1/2010 a 31/12/2012 como período fora da amostra para avaliar a robustez de otimização de amostra e executar a caminhada para frente. Em seguida, usaremos uma proporção de 3: 1 para o WFO (otimização de avanço):
Otimize de 2007 a 2009 e verifique o desempenho fora da amostra em 2010 Otimize 2008 a 2010 e verifique o desempenho fora da amostra em 2011 Otimize de 2009 a 2011 e verifique o desempenho fora da amostra em 2012.
Defina a área de parâmetros robustos no período dentro da amostra.
Nesta seção, definiremos a & # 8220; área robusta & # 8221; dos parâmetros do sistema. Vamos otimizar apenas 3 parâmetros do sistema:
Período de lookback do período de lookback médio rápido do filtro de volatilidade média lenta.
Outros parâmetros do sistema que não serão otimizados são:
Start time: 09:00 (G+1) End time: 22:00 (G+1) Last trade: 18:00 (G+1) Stop risk: 2% Maximum trades per day: 3 Exit on close: True.
Optimization of the charting resolution.
As we can see the average SQN (system quality number) tends to decrease as we increase the time period of the chart in minutes. We will choose 14 minutes for all simulations going forward.
For more info on SQN:
The NinjaTrader code for the system quality number can be downloaded here:
Definition of the robust parameter area for the averages.
Via a 3D surface chart we can identify the robust parameter area as follows:
Slow average: 12 to 30 minutes Fast average: 330 to 500 minutes.
We define “robust” a parameter surface area that does not have major peaks or valleys and has generally a good performance.
Definition of the robust parameter for the volatility filter.
As we can see the robust area for the filter is between 0.55 and 0.70 when the SQN is slowly increasing.
Now that we have identified the robust parameters area it is worth performing a full in-sample optimization to see how the system would have performed between 2001 and 2009.
The system generated a net profit of $120,000 between 2001 and 2009 with a profit factor of 1.56, performing 756 trades with an average of 41% trades profitable. The systems exhibits certain desirable characteristics such as a high win/loss ratio of 2.28.
Walk forward optimization.
As anticipated we will now proceed with a walk forward optimization.
Step 1 : We’ll optimize between 2007-2009 and find the best parameters.
The best parameters for the 2007-09 period are:
We apply these parameters to the out-of-sample period in 2010 with the following results:
Net profit: $12,300.
Profit factor: 1.38.
Step 2 : We’ll optimize between 2008-2010 and find the best parameters.
The best parameters for the 2008-10 period are:
We apply these parameters to the out-of-sample period in 2011 with the following results:
Net profit: $27,900.
Profit factor: 1.61.
Step 3 : We’ll optimize between 2009-2011 and find the best parameters.
The best parameters for the 2009-11 period are:
We apply these parameters to the out-of-sample period in 2012 with the following results:
Net profit: $17,540.
Profit factor: 1.58.
Conclusões
In this article we have shown how to perform a walk forward optimization on an intraday mechanical system. The walk forward results are in line with the in-sample results and this builds confidence in the robustness of the strategy.
For more information on algorithmic trading strategies please visit: vbosystems. info.
& # 8212; Por Amon Licini, da VbO Systems. A VbO Systems é uma desenvolvedora de sistemas de negociação 100% automatizados, codificados no NinjaTrader, que podem ser negociados automaticamente em quase todas as classes de ativos. Amon Licini, o fundador da Vbo Systems, é operador privado há 15 anos e gerente sênior de várias empresas na Itália. Os principais interesses comerciais da Amon estão na área de volatilidade e períodos abertos para sistemas intraday. Ele mora em Milão com sua esposa e dois filhos e adora viajar quando não está desenvolvendo novos sistemas. Amon é formado em engenharia mecânica pela Universidade Politécnica de Milão.
Sobre o autor System Trader Success Contributor.
Autores contribuintes são participantes ativos nos mercados financeiros e totalmente envolvidos em análises técnicas ou quantitativas. Eles desejam compartilhar suas histórias, insights e descobertas no System Trader Success e esperam fazer de você um melhor operador de sistema. Entre em contato conosco se você quiser ser um autor colaborador e compartilhar sua mensagem com o mundo.
How to Test a Trading Robot Before Buying.
Buying a trading robot on 5 Market has a distinct benefit over all other similar options - an automated system offered can be thoroughly tested directly in the 5 terminal. Before buying, an Expert Advisor can and should be carefully run in all unfavorable modes in the built-in Strategy Tester to get a complete grasp of the system, seeing that every Expert Advisor offered on 5 Market has a demo version available.
Remember: it is not only the amount paid that you risk when buying a trading robot, but also potential losses that may arise as a result of using such trading robot to trade on the real account.
Let us have a look at it using as an example a free Three Moving Averages Expert Advisor which we are going to download directly in the 5 terminal. It is an implementation of a classic trading strategy based on three moving averages.
Expert Advisor Evaluation Methods Based on Test Results.
While there is no general method that could give you a 100% guarantee as to performance of the trading robot, there are simple methods that allow you to check the main parameters of any particular trading system in the Strategy Tester of the 5 terminal. The key methods available are as follows:
Stress Testing in the random delay mode, Testing in a different trading environment, Testing on a different symbol/time frame, Backtesting on bad historical data,
In addition, attention should be given to potentially suspicious factors, such as:
profit factor that is too high, huge profit value on historical data, a great number of external parameters in a trading system, intricate rules of money management.
Even though all of the above is a fairly easy task, most newbies, as well as many somewhat experienced traders are either not aware of these nuances or not always attentive enough. Let us once again note that any trading robot downloaded from 5 Market can be set for testing directly in the Navigator window.
Strategy Tester's panel with the Expert Advisor you selected will appear automatically once you press "Test" in the context menu. Everything is at hand to test the downloaded Expert Advisor and we are ready for a detailed review of the evaluation methods pointed out above.
Stress Testing in the Random Delay Mode.
The Strategy Tester is primarily designed to test the trading rules of a system. This means that the Strategy Tester emulates the ideal environment for all processes:
sending trade requests, updating status of open positions and pending orders, getting trade events,
Everything is aimed at testing and optimizing the trading strategy within minimum time. However, seeing that the operation of a trading robot in real environment is far from being ideal and instantaneous, the Strategy Tester has been enhanced with an additional testing mode that simulates a random delay between sending and execution of a trade order.
This testing mode accurately detects:
trading operation handling errors, fitting the strategy to certain trading conditions.
Getting markedly different trade results after running a single test of the Expert Advisor in two modes, standard and random delay, should get you thinking. First, take a look at the Strategy Tester log as numerous trade errors it contains should be a sufficient reason to cross such Expert Advisor off your list. In our case, no errors of that kind have been detected in the course of stress testing in the random delay mode suggesting that the Expert Advisor has successfully passed the first half of the test.
Now, let us see if there is any difference between the trade results obtained using single tests run in two modes. Significantly decreased number of trades and profit gained in the random delay mode suggest that the strategy is highly dependent on the quality of transmission and execution of trade orders and can only earn under certain ideal conditions. The developer may have done it unintentionally which is very often the case. But such a 'flaw' can turn disastrous to your trading account.
In our example, switching to a different trade order execution mode has not affected the number of trades and transactions. The test results are just a tiny bit different which can adequately be explained by small price changes present in transactions due to requotes.
Conclusion: the Three Moving Averages Expert Advisor has passed this test. Stress testing in the random delay mode has not have a substantial effect on the trade results.
Testing in a Different Trading Environment.
Run a test of the trading robot under the conditions as specified in its description on 5 Market. Then connect to another broker account and run the test once again. It is somewhat similar to the previous stress testing and allows you to see how small changes in prices and trading conditions (spread, permissible StopLoss/TakeProfit levels, etc.) can affect trade results.
For example, you have the Expert Advisor test results for EURUSD on the broker A account. Run the same test on EURUSD, only this time on the broker B account. Should the results be very much different, it is a good reason to reconsider the need for such trading robot.
Another Symbol/Time Frame.
The majority of trading robots are developed so as to trade on one particular symbol and some of them even require to be used on a specific time frame. It appears to be quite reasonable as every instrument behaves in its own way. Therefore, symbol and time frame are, as a rule, always specified in the description of a trading robot offered on 5 Market.
Download a demo version of the Expert Advisor and start it on a different symbol and/or period. First, you need to make sure that the Expert Advisor is not going to crash with a critical error or fill the log with trade error messages, being used in inappropriate starting conditions. Second, check that a profitable trading strategy has not become extremely loss-making, due to the above changes in the settings - this can happen where curve fitting had taken place.
One of the easiest ways to arrange that kind of test for the Expert Advisor is to optimize it over all symbols selected in Market Watch. We run the optimization of the Expert Advisor in that mode on a quite long time frame H1 with "Every tick" generation and get a fairly quick answer to the second question.
Results of such optimization show that the strategy has a right to exist, demonstrating statistically sufficient number of trades on each symbol without yielding really bad results. Mind you, we have tested one strategy on all 13 symbols in Market Watch with the same parameters set by default.
We can certainly not expect that every Expert Advisor would work equally well on any symbol and time frame. Yet it is worth checking it in the Strategy Tester using this method. It will not only reveal possible code errors but can even give new ideas.
Conclusion : the behavior of the Three Moving Averages Expert Advisor has been normal when tested on a different symbol/time frame. No obvious code errors have been detected during testing.
Backtesting on Bad Historical Data.
We have found out that the Expert Advisor yields best results when working on GBPUSD. But what if this is not a consistent pattern and this behavior is due to the testing interval selected from 2012.01.01 to 2012.09.28 which by a pure fluke turned out to be favorable? To look into this question, we test the Expert Advisor with the same parameters over 2011, taking 2011.01.01-2011.12.31 as an interval. We run the test and see the results.
The Expert Advisor is no longer profitable and has immediately become much less wowable. Moreover, losses suffered in 2011 significantly exceed profits demonstrated in the Strategy Tester over 2012.01.01-2012.09.28. However, now we are aware of potential losses, even when trading on GBPUSD.
Conclusion: the Three Moving Averages Expert Advisor requires further development to ensure proper automatic response to changes in the market behavior, or else the right parameters for every interval have to be found through optimization.
Backtesting Over Extended Period of History.
When giving descriptions, developers of trading robots try to show their products at their best and therefore provide reports and test charts with optimum parameters for a particular interval. Since considerable time has usually passed from the date of publishing the trading robot till the date when you get interested in it, we can run a so-called forward test.
Forward testing is testing over a period of history that was not considered when selecting optimum parameters. We are going to continue the analysis of this Expert Advisor on GBPUSD over a little longer testing interval, including historical data after September 28, 2012. The end date is set at 2012.11.26, thus adding nearly two extra months. So, following the test run over the period from 2012.01.01 to 2012.11.26, we get the new testing chart:
In our case, the results demonstrated by the Three Moving Averages Expert Advisor over the additional short interval (Forward) are even better than those achieved over the preceding 10 months. This is however very rare.
Conclusion: testing of the Three Moving Averages Expert Advisor on GBPUSD over the extended period of history has not shown any weakening of the trade parameters.
Teste para frente.
Forward testing is used to assess stability of the trading system in the changing market behavior. Optimization of parameters in the Strategy Tester allows us to get the parameters at which the trading robot is at its best on historical data within a certain interval. But this does not guarantee that the obtained parameters will be the same best fit even when used for trading in the nearest future.
Traders who develop automated trading systems often confuse such concepts as optimization and curve fitting. The line between a fair optimization and curve fitting is very thin and hard to find. This is where forward testing has proved useful allowing to objectively assess the obtained parameters.
Upon optimization in the 5 Strategy Tester, you can choose to forward test the resulting optimum parameters and set the necessary limits. Let us run forward testing of our trading robot with the settings as shown below.
Forward is set at 1/4 which means that the specified interval 2012.01.01- 2012.11.26 will be divided into 4 parts. First 3/4 of the history will be used to find the optimum parameters and the best 25% passes (Expert Advisor parameter sets) will be forward tested on the remaining 1/4 of historical data.
Specify the parameters to be optimized - we will select those that are supposed to have impact on the trading logic. Therefore, we will not optimize parameters in charge of money management.
The above combination of the step, as well as start and stop values has resulted in nearly 5 million passes. Under the given circumstances, it is not unreasonable to use genetic algorithm and involve 5 Cloud Network in the optimization.
So, let us take a look at the results of the optimization including forward passes that has taken a total of 21 minutes and cost 0.26 credit for more than 4000 passes using the cloud agents. An example of how the costs are calculated can be found in the article 5 Cloud Network: Are You Still Calculating?
At first glance, there seems to be something wrong with it. We check the results and see that the values of the first three optimized parameters are the same throughout all passes. And only the last two parameters Inp_Signal_ThreeEMA_StopLoss and Inp_Signal_ThreeEMA_TakeProfit have varying values.
Considering the above, we can make two assumptions:
these parameters, specifically StopLoss and TakeProfit values, have in effect no influence on the trading results; genetic algorithm failed to get out of local extremum that we hit during the optimization.
Let us check both assumptions by re-optimizing with the same settings and input parameters. This time, the chart of forward testing results looks a little different.
As a result of the optimization we can now see three mainstreams. This means that the last two optimized parameters still appear incidental to the given trading robot.
Conclusion: optimization of the Three Moving Averages Expert Advisor on GBPUSD has shown that the trading logic only depends on three parameters out of seven.
Let us make one last attempt and remove unnecessary parameters from the optimization. We now only have 1650 passes.
Therefore, complete parameter search would make more sense, rather than genetic optimization. 5 Cloud Network will in this case provide us with more agents and the time required to complete the process will as a result be significantly reduced.
The task has been completed in 7 minutes with 2000 cloud agents involved and the forward testing chart looks good.
Most passes over the forward period turned out to be profitable, with the number of points above the initial $10.000 being much greater than in the loss-making zone. It looks somewhat hopeful but it does not mean that the resulting parameter sets will also prove profitable in the future.
Number of Parameters in a Trading System.
We have had a chance to see that not all strategy parameters available for setting up a trading robot are equally significant and able to affect trading results. In our case the Inp_Signal_ThreeEMA_StopLoss and Inp_Signal_ThreeEMA_TakeProfit values had virtually no impact on the performance of the Expert Advisor. However, it is more common to come across a trading robot that has a great number of parameter settings.
Numerous parameters allow you to make very accurate settings for a trading robot so as to fit its performance to a certain period of history which is highly likely to be revealed during optimization.
Curve fitting means that the Expert Advisor will probably not show the same level of profitability on data beyond the specified interval used for the optimization as it did on the test data. And worse yet, it may yield quite the opposite results, leading to losses.
It is believed that the less parameter settings a trading system has, the lower the possibility that the identified pattern will vanish in the future. And vice versa - the more parameters in the system, the lower the possibility that the market will keep its characteristics in line with such a fine-tuned Expert Advisor. As a proof of the above, we strongly recommend that you familiarize yourself with the results of the trade analysis provided in the article Optimization VS Reality: Evidence from ATC 2011 which we will turn to further below.
The chart displays trade results of the participants over the Automated Trading Championship 2011. Vertical axis shows the account balance as at the end of the Championship and horizontal axis displays the number of EA's external parameters. Expert Advisors are represented by red diamonds. It can clearly be seen that the Expert Advisors with a great number of parameters lost money or, at the best, broke even, when trading over the forward period of the Championship.
The absence of external parameters in a trading robot offered for sale does not say anything about the generality of designed-in trading rules either and cannot be taken as coolness. The developer of the Expert Advisor must have, for some reason, simply threaded the external parameters inside the trading robot.
Very High Profit Factor.
Most traders do not like losing trades and take them as a sign of a faulty operation of a trading system. In fact, they cannot be avoided due to the nature of trading in the financial markets. Any trade upon opening a position can ultimately turn out to be either winning or losing. Trading losses are unavoidable and are seen as a form of naturally occurring pay and inevitable item of expenditure, as in any business.
Many developers of automated trading systems run to extremes, trying to reduce the number of losing trades and gross loss to the minimum. To achieve this and improve results that may be obtained in the Strategy Tester, they add extra filters that allow you to avoid losing trades, thus improving profit factor. Extra filters have their own parameters and settings, adding to the total number of input parameters.
Profit factor is defined as the gross profit divided by the gross loss. Profit factor of profitable systems is always greater than 1. However, if one has tried too hard and over-optimized a trading system in the Strategy Tester, this figure may be much bigger. Let us take a look at yet another chart from the article Optimization VS Reality: Evidence from ATC 2011.
It is clear that almost all trading robots that had a very high profit factor during testing over historical data were not even close to their backtesting results when tested over the forward period of the Automated Trading Championship 2011 and virtually lost everything. It suggests that a very high profit factor demonstrated in the Strategy Tester was due to fitting the strategy to a certain time period used for the optimization of the trading robot.
Huge Profit on Historical Data.
Another alarming fact can be a huge profit stated in the description of a trading robot. If the attached Strategy Tester reports show a sky-high balance, it most likely has to do with curve fitting. Often developers of such "money printing machines" do not even realize that their system is over-optimized and has too many external parameters. Let us support this assertion by another chart from the above-mentioned report Optimization VS Reality: Evidence from ATC 2011.
Buyers of such "Grails" are as a rule inexperienced and easily blinded by huge profits on historical data. In those cases, delusion of profit that such trading robot can earn is genuine and mutual.
Manipulations with Money Management.
Creating special trade manipulation rules that allow you to go through bad historical data in the Strategy Tester with minimum losses and maximize returns on successful transactions is the most complicated and rare approach to the abnormal development of a trading robot. It is far from being what is called money management.
Such fitting can be best detected by testing on data which lies outside the period of history used to obtain the results that are stated by the developer in the description of the trading robot. The more extensive the fitting, the higher the possibility that the trading robot will fail the test.
Do Not Trust Anyone. Not Even Yourself.
Unfortunately, trading robot like any complex program may contain unintentional errors that cannot be detected other than by on-line trading. No developer of trading robots can guarantee that his program is error-free and would correctly handle all non-standard situations. Even the Expert Advisor that was successfully tested can make a trade error or crash due to a critical error, when put in unexpected conditions which the developer could not foresee. The only implicit guarantee in this case can be experience and reputation of the trading robot's developer.
And, of course, an Expert Advisor that has demonstrated positive results in the Signals service over a sufficient period of time will be more reliable than the one that has not. Whatever the case, do not get knocked down calculating you future profits and remember two rules that are still valid:
We also recommend following articles dedicated to Market:
Traduzido do russo por MetaQuotes Software Corp.
Комментариев нет:
Отправить комментарий