Ensaio avançado do sistema de negociação


Teste direto.
B acktesting tem sido popular entre os comerciantes por muitos anos. O conceito é que você toma um número definido de meses ou anos e teste uma estratégia de negociação em relação aos dados desse período. Você calcula os resultados médios e o desempenho dessa estratégia de negociação, pois realizou durante esse período. Em teoria, isso parece uma ferramenta fantástica para comerciantes - backtest e saber se a estratégia funciona. Mas isso não é o que o backtesting dessa maneira realmente oferece um comerciante.
Backtesting pode ser definido de duas formas populares:
1. O processo de otimização de uma estratégia comercial usando dados históricos e, em seguida, ver se tem validade preditiva em dados atuais.
2. O processo de testar uma estratégia de negociação em períodos anteriores. Em vez de aplicar uma estratégia para o período de tempo, o que pode demorar anos, um comerciante pode fazer uma simulação de sua estratégia comercial em dados passados ​​relevantes para avaliar sua eficácia.
A maioria das estratégias de análise técnica são testadas com essa abordagem. À primeira vista, faz sentido. Vá para trás, finja que esteja usando sua estratégia ou sistema em um gráfico histórico e veja o que aconteceria. Parece bom, certo? Infelizmente, existem problemas - inerentes e significativos - que causam que o backtesting falhe.
Backtesting uma estratégia ou sistema de negociação não leva em conta se um mercado está em uma tendência de alta, tendência de baixa ou tendência lateral. Não determina qual a condição de mercado que prevalece durante a negociação atual. Portanto, um comerciante não tem como determinar e aplicar a condição correta do mercado para o período de tempo passado. Os resultados do período de teste anterior são calculados em média para dar-lhe um lucro para o índice de perda para essa estratégia de negociação. Uma média de dados históricos ao longo de vários anos não lhe dá os fatos que você precisa sobre a viabilidade de um sistema e a verdadeira rentabilidade potencial.
Em primeiro lugar, a média das estatísticas não lhe diz muito. Uma média não pode dizer que, durante 20 semanas, a estratégia teve perdas contínuas ou que, se você tivesse trocado mais agressivamente durante as primeiras 10 semanas, você teria feito maiores lucros. Em média, você simplesmente fornece uma figura com base no conjunto total de dados dividido pelo número de conjuntos de dados dentro do intervalo de teste.
Todos os sistemas de negociação são projetados em condições de mercado específicas dentro de cada tendência do mercado. Existem cinco tipos principais de sistemas de negociação para ações sob as quais todos os sistemas de negociação caem. Ao calcular a média dos resultados em uma relação de lucro versus perda, os resultados que o backtesting lhe dá são suavizados para refletir uma perspectiva de longo prazo de seus lucros ou perdas usando este sistema. Você está essencialmente testando com base em situações de espera a longo prazo. Isso é bom se você é um investidor de longo prazo.
O fato é que a maioria das pessoas que usam sistemas de negociação são comerciantes de curto prazo. Se o seu sistema tiver um período em que lhe dê troca contínua de perdas por semanas ou meses, sua base de capital e confiança irão corroer até o ponto em que você não poderá mais trocar quando as condições do mercado finalmente mudarem e se tornarem propícias a esse sistema comercial .
Em segundo lugar, é importante identificar qual tendência do mercado e condição do mercado se adequam ao sistema de negociação, em vez de apenas backtesting por vários anos. Ao selecionar a tendência do mercado adequado para esse sistema de negociação, para cima, para baixo ou para os lados, e sabendo a condição dessa tendência, se a força da tendência é fraca, moderada ou forte, um comerciante elimina grandes fragmentos de dados de anos passados Isso não é funcional para testar esse sistema.
. Continuação na edição de janeiro da Análise Técnica de STOCKS & amp; COMMODITIES.
Extraído de um artigo originalmente publicado na edição de janeiro de 2008 da Análise Técnica de STOCKS & amp; Revista COMMODITIES. Todos os direitos reservados. &cópia de; Copyright 2007, Technical Analysis, Inc.

Backtesting e Teste Avançado: A Importância da Correlação.
Os comerciantes que estão ansiosos para tentar uma idéia de negociação em um mercado vivo muitas vezes cometem o erro de confiar inteiramente nos resultados de backtesting para determinar se o sistema será lucrativo. Enquanto o backtesting pode fornecer aos comerciantes informações valiosas, muitas vezes é enganoso e é apenas uma parte do processo de avaliação. Testes fora da amostra e testes de desempenho avançado fornecem confirmação adicional quanto à eficácia de um sistema e podem mostrar as cores verdadeiras do sistema, antes que o dinheiro real esteja na linha. Uma boa correlação entre resultados de teste de backtesting, out-of-sample e forward performance é vital para determinar a viabilidade de um sistema de negociação. (Oferecemos algumas dicas sobre este processo que podem ajudar a refinar suas estratégias de negociação atuais. Para saber mais, leia Backtesting: Interpreting the Past.)
Enquanto uma idéia pode ser quantificada, ela pode ser testada novamente. Alguns comerciantes e investidores podem procurar a experiência de um programador qualificado para desenvolver a idéia em uma forma testável. Normalmente, isso envolve um programador que codifica a idéia na linguagem proprietária hospedada pela plataforma de negociação. O programador pode incorporar variáveis ​​de entrada definidas pelo usuário que permitem que o comerciante "ajuste" o sistema. Um exemplo disso seria no sistema de cruzamento de média móvel simples observado acima: o comerciante seria capaz de inserir (ou alterar) os comprimentos das duas médias móveis usadas no sistema. O comerciante poderia voltar a testar para determinar quais comprimentos de médias móveis teriam realizado o melhor nos dados históricos. (Obtenha mais informações no Tutorial de Negociação Eletrônica.)
Muitas plataformas de negociação também permitem estudos de otimização. Isso implica entrar em um intervalo para a entrada especificada e deixar o computador "fazer a matemática" para descobrir o que a entrada teria realizado o melhor. Uma otimização multi-variável pode fazer a matemática para duas ou mais variáveis ​​combinadas para determinar quais níveis juntos teriam alcançado o melhor resultado. Por exemplo, os comerciantes podem dizer ao programa quais insumos gostariam de adicionar à sua estratégia; estes seriam então otimizados para seus pesos ideais, dado os dados históricos testados.
Backtesting pode ser emocionante na medida em que um sistema não lucrativo muitas vezes pode ser magicamente transformado em uma máquina de fazer dinheiro com algumas otimizações. Infelizmente, ajustar um sistema para alcançar o maior nível de rentabilidade passada muitas vezes leva a um sistema que funcionará mal na negociação real. Esta sobre-otimização cria sistemas que parecem bons apenas em papel.
Curve fitting é o uso de análises de otimização para criar o maior número de negócios vencedores 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, uma vez que os resultados são essencialmente personalizados para apenas esse dado e período de tempo específicos.
Backtesting e otimização fornecem muitos benefícios para um comerciante, mas isso é apenas parte do processo ao avaliar um sistema comercial potencial. O próximo passo de um comerciante é aplicar o sistema a dados históricos que não foram utilizados na fase inicial de teste posterior. (A média móvel é fácil de calcular e, uma vez plotada em um gráfico, é uma poderosa ferramenta visual de tendência-mancha. Para mais informações, leia Médias móveis simples, faça as tendências se destacarem.)
Dados em amostra versus dados fora da amostra.
Antes de iniciar qualquer backtesting ou otimização, os comerciantes 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 terços e segregar um terço para uso nos testes fora da amostra. Apenas os dados na amostra devem ser usados ​​para o teste inicial e qualquer otimização. A Figura 1 mostra uma linha de tempo onde um terço dos dados históricos é reservado para testes fora da amostra e dois terços são usados ​​para o teste na amostra. Embora a Figura 1 represente os dados fora da amostra no início do teste, os procedimentos típicos teriam a porção fora da amostra imediatamente anterior ao desempenho para a frente.
Uma vez que um sistema comercial foi desenvolvido usando dados na amostra, está pronto para ser aplicado aos dados fora da amostra. Os comerciantes podem avaliar e comparar os resultados de desempenho entre os dados na amostra e fora da amostra.
A correlação refere-se a semelhanças entre os desempenhos e as tendências gerais dos dois conjuntos de dados. As métricas de correlação podem ser usadas na avaliação de relatórios de desempenho de estratégias criados durante o período de teste (um recurso que a maioria das plataformas de negociação fornece). Quanto mais forte for a correlação entre os dois, melhor será a probabilidade de um sistema funcionar bem no teste de desempenho direto e na negociação ao vivo. A Figura 2 ilustra dois sistemas diferentes que foram testados e otimizados em dados na amostra, depois aplicados a dados fora da amostra. O gráfico à esquerda mostra um sistema claramente ajustável para funcionar bem nos dados na amostra e falhou completamente nos dados fora da amostra. O gráfico à direita mostra um sistema que funcionou bem em dados internos e fora da amostra.
Se houver pouca correlação entre o teste na amostra e fora da amostra, como o gráfico esquerdo na Figura 2, é provável que o sistema tenha sido superestimado e não funcionará bem na negociação ao vivo. Se houver uma forte correlação no desempenho, como visto no gráfico certo na Figura 2, a próxima fase da avaliação envolve um tipo adicional de testes fora da amostra, conhecidos como teste de desempenho para a frente. (Para mais informações sobre previsão, consulte Previsão Financeira: o Método Bayesiano.)
Princípios básicos do teste de desempenho avançado.
Muitos corretores oferecem uma conta de negociação simulada onde os negócios podem ser colocados e o lucro e perda correspondente calculados. O uso de uma conta de negociação simulada pode criar uma atmosfera semi-realista para praticar o comércio e avaliar ainda mais o sistema.
A Figura 2 também mostra os resultados para o teste de desempenho para frente em dois sistemas. Mais uma vez, o sistema representado no gráfico à esquerda não consegue ir muito além do teste inicial em dados na amostra. O sistema mostrado no gráfico certo, no entanto, continua a funcionar bem em todas as fases, incluindo o teste de desempenho para frente. Um sistema que mostra resultados positivos com boa correlação entre os testes de desempenho na amostra, fora da amostra e para frente está pronto para ser implementado em um mercado ao vivo.

Teste de sistema de negociação frente
O AmiBroker 5.10 possui o modo automático de teste Walk-Forward.
O teste automático Walk forward é uma técnica de projeto e validação do sistema na qual você otimiza os valores dos parâmetros em um segmento passado de dados de mercado (& # 8221; in-sample & # 8221;); então, verifique o desempenho do sistema testando-o para a frente no tempo em dados que seguem o segmento de otimização (& # 8221; out-of-sample & # 8221;). Você avalia o sistema com base em quão bem ele executa nos dados do teste (& # 8221; out-of-sample & # 8221;), e não nos dados em que foi otimizado. O processo pode ser repetido em segmentos de tempo subsequentes. A seguinte ilustração mostra como o processo funciona.
O objetivo do teste walk-forward é determinar sempre que o desempenho do sistema de negociação otimizado seja o realista ou o resultado do ajuste de curva. O desempenho do sistema pode ser considerado realista se tiver valor preditivo e funcionar bem em dados de mercado não vistos (fora da amostra). Quando o sistema é projetado corretamente, o desempenho comercial em tempo real deve ser em relação ao descoberto durante a otimização. Se o sistema estiver funcionando na negociação real, primeiro deve passar por um teste de caminhada. Em outras palavras, nós realmente não nos interessamos nos resultados na amostra, pois eles são (ou devem ser) sempre bons. O que interessa é o desempenho do sistema fora da amostra. É a estimativa realista de como o sistema funcionaria na negociação real e rapidamente revelará quaisquer problemas de ajuste de curva. Se o desempenho fora da amostra é fraco, então você não deve trocar esse sistema.
A premissa de realizar várias etapas de otimização / teste ao longo do tempo é que o passado recente é uma base melhor para selecionar valores de parâmetros do sistema do que o passado distante. Esperamos que os valores dos parâmetros escolhidos no segmento de otimização sejam bem adaptados às condições de mercado que seguem imediatamente. Isso pode ou não ser o caso, à medida que os mercados passam pelo ciclo urso / touro, então deve-se tomar cuidado ao escolher o período de in-sample. Para obter mais informações sobre o design e a verificação do sistema usando o procedimento walk-forward e todas as questões envolvidas, podemos recomendar o livro de Howard Bandy: "Quantitative Trading Systems & quot; (veja links na página AmiBroker).
Para usar a otimização Walk-Forward, siga estas etapas:
As datas de início e término marcam o início do período inicial / final.
Este período será movido para a frente pelo passo até o final atingir a última data.
Por padrão, um & # 8220; EASY MODE & # 8221; é selecionado, o que simplifica o processo de configuração de parâmetros WF.
a) O segmento fora da amostra imediatamente segue o segmento na amostra.
b) o comprimento do segmento fora da amostra é igual ao passo walk-forward.
entre períodos. O modo Intraday define a data de INÍCIO do próximo período como PRÓXIMO DIA após o final do período anterior. Isso garante.
esse dia limite não é contado duas vezes ao testar dados intraday.
A interface permite desativar seletivamente as fases na amostra e fora da amostra usando caixas de seleção na parte superior (para coisas especiais, como executar backtests seqüenciais sem otimização).
Todas as configurações são imediatamente refletidas na lista PREVIEW que mostra todos os segmentos IS / OOS gerados e suas datas.
será usado para classificar os resultados e encontrar o melhor. Qualquer coluna embutida pode ser usada.
(como aparece na saída de otimização), ou você pode usar qualquer métrica personalizada que você defina.
no backtester personalizado. O padrão é CAR / MDD, você pode, no entanto, selecionar qualquer outra medida incorporada do combo.
Você também pode selecionar qualquer métrica personalizada que você tenha adicionado via interface de backtester personalizada.
MUDANÇO combinado em amostra e fora de amostra.
As ações combinadas em amostra e fora da amostra estão disponíveis por.
Os tickers compostos OSEQUITY (períodos consecutivos de IS e OOS são concatenados e dimensionados para manter a linha de continuidade da equidade - essa abordagem pressupõe que, geralmente, você está combinando lucros).
ISEQUITY "," In-Sample Equity ", colorRed, styleLine);
OSEQUIDADE "," Out-Of-Sample Equity ", colorGreen, styleLine);
Relatório de resumo OUT-OF-SAMPLE (novo em 5.60)
A versão 5.60 traz um novo relatório de resumo walk-forward que cobre todas as etapas fora da amostra. É visível no Report Explorer como o último e tem o "& quot; PS"; tipo.
Houve mudanças significativas para avançar os testes realizados para permitir um relatório sumário fora da amostra. A mudança mais importante é que cada teste subsequente de fora da amostra usa o patrimônio inicial igual ao passo anterior que termina o patrimônio. (Anteriormente, usou equidade inicial constante). Essa alteração é necessária para o cálculo adequado de todas as estatísticas / métricas em todas as seções de teste fora da amostra.
O relatório de resumo mostra a nota de que as métricas integradas representam corretamente todas as etapas fora da amostra, mas as métricas personalizadas de resumo são compostas usando o método definível pelo usuário:
1 valor do primeiro passo, 2 valor do último passo, 3 soma, 4 média, 5 mínimo, 6 máximo.
Por padrão, o relatório de resumo mostra o valor da última etapa das métricas personalizadas, A MENOS QUE o usuário especifique o método de combinação diferente em.
bo. AddCustomMetrics agora possui novo parâmetro opcional - CombineMethod.
bool AddCustomMetric (string Title, variant Value, [opcional] variante LongOnlyValue, [opcional] variante ShortOnlyValue, [opcional] variante DecPlaces = 2, [opcional] variante CombineMethod = 2)
Este método adiciona métrica personalizada ao relatório de backtest, backtest & quot; summary & quot; e lista de resultados de otimização. O título é um nome da métrica a ser exibida no relatório, o valor é o valor da métrica, os argumentos opcionais LongOnlyValue, ShortOnlyValue permitem fornecer valores para colunas longas / curtas adicionais no relatório de teste posterior. O último argumento DecPlaces controla quantas casas decimais devem ser usadas para exibir o valor.
Os valores CombineMethod suportados são:
1 valor de primeiro passo, - relatório de resumo mostrará o valor da métrica personalizada desde o primeiro passo fora da amostra.
2 valor do último passo (padrão), - relatório de resumo mostrará o valor da métrica personalizada a partir da última etapa fora da amostra.
3 soma, - relatório de resumo mostrará a soma dos valores da métrica personalizada de todas as etapas da amostra.
4 média, - o relatório de resumo mostrará a média dos valores da métrica personalizada de todas as etapas da amostra.
5 mínimo, - o relatório de resumo mostrará o menor valor da métrica personalizada a partir de todas as etapas da amostra.
6 máximo.- relatório de resumo mostrará o maior valor da métrica personalizada a partir de todas as etapas da amostra.
Observe que determinados métodos de cálculo de métricas são complexos e, por exemplo, a média deles não levaria a uma representação matematicamente correta de todos os testes fora da amostra. Os resumos de todas as métricas incorporadas são matematicamente corretos fora da caixa (ou seja, são * não * médias, mas métricas adequadamente calculadas usando um método apropriado para determinado valor). Isso contrasta com as métricas personalizadas, porque elas são definíveis pelo usuário e cabe ao usuário selecionar o método de "combinação", e ainda pode acontecer que nenhum dos métodos disponíveis seja apropriado.
Por esse motivo, o relatório inclui a nota que explica que método utilizável pelo usuário foi usado para combinar métricas personalizadas.

Backtest, Forward Test, Live Trading.
Eureka! Você acabou de encontrar o Santo Graal de indicadores de mercado. O indicador de indicadores que ao longo dos últimos dias se chamou perfeitamente cada 30 minutos superior e baixo nos e-Mini S & amp; P futures & # 8230; O que agora? Tempo para colocar algum dinheiro real sobre o assunto e se aposentar para as ilhas & # 8230 ;. Não tão rápido!
Sua estratégia pode parecer boa nos últimos dias, ou mesmo meses ou anos. Mas para se sentir realmente confortável com isso, você não saberia como isso aconteceu durante vários anos? E uma vez que você fez isso, não preferiria vê-lo funcionar por um período de tempo no mercado atual antes de colocar dinheiro real para o trabalho?
Se você respondeu sim a qualquer um desses, seja bem vindo ao mundo dos sistemas de negociação & # 8211; porque os testes de backtesting e forward são duas das maiores vantagens dos sistemas de negociação. A capacidade de ver o que teria acontecido, e o que está acontecendo e # 8211; ANTES de colocar dinheiro real para o trabalho. E então, o kicker & # 8230; rastreando sua conta ao vivo versus o sistema de negociação para ver como você está fazendo com esse dinheiro vivo quando você estiver pronto para dar o próximo passo.
Backtesting é exatamente o que parece. Observando como um sistema teria executado indo & # 8216; back & # 8217; no passado, usando os preços históricos para ver quando um sistema teria entrado e conseguido, comprado e vendido, foi parado, e assim por diante. Ao executar o sistema para trás no tempo, um investidor pode compilar todos os diferentes negócios e calcular o quanto o sistema teria feito e perdeu mês a mês, ano a ano & # 8211; e a partir daí calcular as estatísticas, como a taxa de retorno anual, a redução máxima, a volatilidade e assim por diante, todos usamos para avaliar as habilidades de um modelo. Na plataforma iSystems, todos os modelos são testados o mais longe possível, variando de 2001 a 2007, e mostra o gráfico da curva de equidade e a tabela de desempenho do mês com um fundo branco.
(Disclaimer: Hypothetical Model Account Performance)
Então, você obteve os números de retorno anuais bonitos, o valor médio vencedor, o valor médio de perda, etc. & # 8211; o que agora? O próximo passo é testar o sistema para ver como ele reage e como o código funciona em tempo real, em dados ao vivo. Não é que não confiamos nos computadores e # 8230; mas nós não somos. Quem sabe o tipo de 1s e 0s poderia ter trocado lugares e colocar alguns resultados estranhos em nossos resultados anteriores. É melhor ver o trabalho em tempo real para confirmar que os controles de risco são como deveriam ser, que o algoritmo pode lidar com o feed de dados ao vivo, e assim por diante.
Na plataforma iSystems, sempre que um sistema é aprovado e adicionado à plataforma, o teste de frente começa. Este teste fora de amostra pode ajudar a confirmar a eficácia da estratégia de negociação no clima de mercado de hoje e expor quaisquer problemas inerentes ao código. O teste para frente mostra o gráfico da curva de equidade e a tabela de desempenho mensal com um fundo de pessego.
(Disclaimer: Hypothetical Model Account Performance)
A única coisa que resta agora é acompanhar a negociação ao vivo. Está colocando dinheiro real para trabalhar e vendo quais são os ganhos e perdas reais em cada comércio. E aqui é onde a plataforma iSystems realmente brilha. Você vê & # 8211; A plataforma rastreia os preços de enchimento reais de cada cliente que comercializa um sistema específico, e em seguida, progride em todos esses preços para chegar ao preço médio de preenchimento, que ele usa para calcular o lucro ou perda hipotético em uma conta modelo (uma conta a partir de US $ 20.000 , por exemplo). Mas isso não é todo # 8211; A plataforma realmente mostra os investidores todos os bons e maus preenchimentos também, listando o pior preço de preenchimento e o melhor preço de preenchimento em todos os clientes; e lista esse lado a lado com o preço de teste para a frente (o preço no pensamento do computador e # 8217; foi preenchido). Embora eles geralmente estejam muito perto, pode haver momentos em que eles estão bastante distantes também e # 8230; a parte importante é ter esse ponto de dados, e ser capaz de ver como a negociação ao vivo está rastreando o teste de teste e retorno. A transmissão ao vivo mostra no gráfico da curva de equidade e na tabela de desempenho mensal com um fundo verde.
(Disclaimer: Hypothetical Model Account Performance)
Juntando tudo: não seria bom se você pudesse colocar todos estes & # 8211; O backtest, o teste para frente e o comércio ao vivo preenchem um histórico composto # 8211; com os diferentes ambientes de preenchimento destacados cores diferentes para ver de forma rápida e fácil as diferenças no gráfico de curva de equidade. Nós certamente pensamos que seria legal, e isso é exatamente o que a plataforma iSystems faz. A plataforma iSystems cria um histórico contendo todos os três tipos de preenchimentos.
Ele usa os resultados de negociação ao vivo para calcular retornos mensais para qualquer mês em que qualquer cliente, em qualquer empresa, esteja negociando o sistema por todo o mês. Se não houver clientes que o comercializem em tempo real, ele usa o teste direto, o que ele chama de preenchimentos rastreados, para aqueles meses em que não há preenchimentos de clientes nesse mês, ou para todo o mês. Finalmente, o iSystems usa enxertos testados novamente (o que ele chama de preenchimentos gerados por computador) nos meses que ocorreram antes do carregamento do sistema nos servidores comerciais do iSystems. O histórico e os resultados mensais resultantes são hipotéticos na medida em que representam retornos em uma conta modelo. A conta modelo aumenta ou cai pelo lucro e perda do contrato único obtidos pelo sistema em qualquer conjunto de dados disponível, e começa com o capital sugerido listado, e é reajustado a esse valor mensalmente. A porcentagem de retorno mostrada reflete a inclusão de comissões, taxas, derrapagens e o custo do sistema; dando o que acreditamos ser a visão mais completa do desempenho do sistema disponível.
Aqui está um vislumbre do que uma curva de equidade parece ressaltar backtesting, testes para frente e negociação ao vivo usando os diferentes tons de cor para o sistema LAG_CRUDEOIL_4.
(Disclaimer: Hypothetical Model Account Performance)

Teste de sistema de negociação frente
O teste fora de amostragem é uma prática necessária para evitar encaixe de curvas durante a otimização de um sistema comercial. O teste Walk-Forward melhora a idéia de testes de dados fora da amostra e é projetado como uma abordagem contínua e adaptativa. Sua invenção é creditada principalmente a Robert Pardo (leia mais sobre isso em seu livro)
A maneira como ele funciona é bastante simples. É uma combinação de ciclos múltiplos da otimização na amostra # 8220 e # 8221; com & # 8220; verificação fora da amostra & # 8221 ;.
Antecedentes sobre otimização e testes fora da amostra.
O motivo 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 (sobre otimização) ou em uma seleção robusta de parâmetros do sistema.
Se os parâmetros derivados da otimização forem muito pior no teste de verificação fora da amostra, provavelmente significa que os valores dos parâmetros foram (sobre) otimizados para o conjunto de dados específico na amostra (ajustado na curva). Se o sistema funcionar de forma semelhante, isso significa que os parâmetros do sistema são robustos e validam a abordagem adotada para otimização.
Walk-Forward Process: como funciona.
O teste Walk-Forward é um processo contínuo e dinâmico para determinar se a otimização de parâmetros apenas se encaixa no preço e no ruído ou produz resultados estatisticamente válidos fora da amostra. Aqui está como 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 a otimizar o seu sistema usando apenas os primeiros três anos de dados # 8211; neste exemplo, 1999-2001. Quando o sistema é otimizado, registre os valores dos parâmetros ótimos e use-os no teste com novos dados (fora de amostra) a partir de 2002.
Walk Forward de 1999 a 2009.
Deslize a janela de dados de três anos para a frente (2000-2002) e execute o mesmo processo. Depois de processar todos os dados disponíveis, você pode classificar o desempenho de todos os testes fora da amostra e compará-los com as execuções de otimização em amostra. Se a comparação mostra que o sistema é suficientemente robusto para ser negociado ao vivo, você simplesmente continua o processo de caminhar em tempo real, re-otimizando todos os anos.
No encerramento.
Walk-Forward é um processo adaptativo que re-otimiza o sistema de forma contínua para adaptar seus parâmetros às mais recentes condições de mercado.
A premissa de realizar várias etapas de otimização / verificação ao longo do tempo é que o passado recente é um melhor ambiente para selecionar parâmetros do sistema do que o passado distante. Esta é uma suposição que você precisa considerar ao escolher se deseja usar o Walk-Forward ou não, mas esta é uma ferramenta útil no seu arsenal de desenvolvimento de sistemas.
Conforme discutido anteriormente, mudar os parâmetros do sistema com base em condições de mercado recentes pode resultar em um sistema que persegue sua cauda. A próxima publicação neste tópico será uma comparação real do desempenho de um sistema básico quando otimizado em uma maneira padrão & # 8220; & # 8221; e quando otimizado usando o & # 8220; Walk-Forward & # 8221 ;.
18 comentários até agora e darr;
Muito bom resumo, e eu gosto desse gráfico cool walk-forward que se move.
Se eu posso levantar um problema em termos de terminologia precisa. Curve fitting é 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 garante que nosso processo de ajuste de curva (otimização) não seja exagerado ou excesso de ajuste.
Bob Pardo (o autor de # 8216; walk-forward & # 8217;) faz esse ponto em seu tomo. Ele também escreveu que walk-forward é uma metodologia antiquada de 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 walk-forward. Como você olha para isso? Como você sabe o que você tem? Este foi um obstáculo para mim e é a principal razão pela qual eu virei para R para me ajudar a organizar dados.
O que estamos comparando? Lucro líquido? Rebaixamento? O que & # 8216; eficiência & # 8217; da caminhada em frente é aceitável, e o que diz que seu sistema simplesmente é uma merda? Eu acho que você poderia compilar cerca de 20 estatísticas (média, desvio padrão, etc.) e não exagerar.
Vejo seu ponto de vista sobre a terminologia. Eu sei que a terminologia é importante e eu não quero ficar pendurado nela e # 8230; ;-)
Na minha mente, o encaixe da curva é excesso de ajuste (ou seja, o objetivo do ajuste da curva é encontrar os valores dos parâmetros que mais se aproximam dos dados. & # 8211; se você fizer isso, você teria o conjunto de parâmetros que produz o melhor back - sistema testado, retornos, etc., mas que provavelmente não são muito robustos para a frente) & # 8211; Obrigado por essa entrada de qualquer maneira & # 8211; Talvez eu queira ler Pardo para algum esclarecimento.
Em relação aos seus outros pontos, e eu tenho que esclarecer que eu não tenho # 8217; como você e # 8211; ficou com as mãos sujas ao executar um teste de passo a frente completo e # 8230; Mas eu estava imaginando que você primeiro decidisse sobre uma "bliss & # 8221; função (assim como Ed Seykota chama a função objetivo). O valor de sua função de felicidade direcionaria qual parâmetro você escolheu da otimização e use na etapa de back-test / verification de seus testes walk-forward.
Após a conclusão do teste de avanço completo, isso pode ser apenas uma questão de comparar valores de funções de felicidade 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 para segurar no futuro.
Eu estaria interessado em ver sua opinião sobre isso. Lembro-me de ter publicado um pouco sobre funções objetivas no seu blog & # 8230;
I & # 8217; certamente teremos mais para adicionar quando eu começar com ele no TradersStudio!
Retorno pessimista da margem (PROM)
Função FF_PROM2 (MarginRequired As Integer)
Dim AdjWin As Double.
Dim AdjLoss As Double.
Dim MarginValue As Integer.
Dim PROM As Double.
Dim SlowAve As BarArray.
Dim FastAve As BarArray.
AdjWin = wins & # 8211; Sqr (vitórias)
AdjLoss = perdas + Sqr (perdas)
Se SlowAve & lt; FastAve Then.
PROM = ((AdjWin * AvgWin) + (AdjLoss * AvgLoss)) / MarginValue.
& # 039; este próximo relacionamento é o que permite que o fator seja passado no relatório.
Oi Milk & # 8211; Por algum motivo, seu último comentário foi & # 8220; capturado & # 8221; nas minhas redes de spam & # 8221; & # 8230;
Eu suponho que a fórmula PROM acima (do Pardo, eu acredito) seria sua função objetiva para otimizar um sistema de negociação?
Ainda não pensei muito em uma função objetiva, mas sempre imaginei ter um & # 8220; grande & # 8221; fórmula tentando comprometer o bem e o conteúdo do sistema comercial, ou seja, você gostaria de maximizar:
enquanto você deseja maximizar:
& # 8211; calor médio do portfólio.
& # 8211; drawdowns (ou seja, maximizar o índice de lago Ed Seykota).
Uma coisa que eu gostaria de tentar é formular todos esses aspectos e priorizá-los em uma fórmula.
A idéia de reduzir os bons aspectos do sistema de negociação (# de vitórias) e aumentar os maus (# de perdas) na fórmula PROM acima é bastante interessante também. Obrigado!
Sim, essa é a essência da fórmula de Pardo & # 8217; s. Outra boa ideia que ele possui é a correlação de equidade com o lucro perfeito. Isso mostra que um sistema ganha dinheiro quando o mercado o oferece e pode fazer menos quando o lucro perfeito é menor.
Em vez de criar uma função de fitness compósita, que tal nós corremos avançando em um grupo deles para determinar o que ilumina o melhor sobre a rentabilidade futura. Isso seria um empreendimento, mas um exercício interessante.
Que tal nós formulamos 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 fitness pode ser tratada como sua própria rede neural e classificada em sua capacidade de adivinhar a resposta correta.
Ainda não sei como fazer isso.
Esse ponto sobre a comparação do lucro perfeito com o desempenho do sistema (equidade) seria uma maneira interessante de responder a pergunta # 8220: o sistema não está funcionando mais ou os mercados não oferecem oportunidades? # 8221; (ou seja, o desempenho não é bom, mas o lucro perfeito continua bom, o sistema pode ter um problema)
Quanto à métrica para a eficácia de uma função de fitness (eu entendo, você significa função objetivo / bem-aventurança) & # 8211; Não estou convencido de que esta seja uma abordagem válida, pois não vejo a função do objetivo de ter qualquer "predição" e # 8221; poder (isto é, deve ser apenas uma maneira de expressar o desempenho geral de um sistema de acordo com seus critérios ideais). Embora vejo o seu ponto de vista de que esta é a entrada utilizada para selecionar qual conjunto de parâmetros são transmitidos (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 fitness seria usada para funcionar o melhor / mais robusto conjunto de parâmetros entre a otimização e back-test walk-forward, ou seja, onde a relação entre funções objetivas é mais constante e idealmente bastante alta). Isso parece um pouco complicado.
Eu não sou tão interessado nas redes neurais de qualquer maneira (abordagem caixa preta vs KISS, etc.)
Sim, objetivo = fitness = função de felicidade. É o árbitro dos melhores parâmetros. E eu sugeriria que eles são preditivos da robustez de um sistema. Nós provavelmente duvidamos do valor do Lucro Líquido como um bom juiz dos melhores parâmetros. O lucro líquido / Max Drawdown é melhor. O que é melhor do que isso?
Talvez, e este é apenas um pensamento, existe 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 bem-aventurança & # 8230;
A função de felicidade serve para quantificar o seu Nirvana comercial (bliss, nirvana: estou hospedado no mesmo tema aqui e # 8230;).
A função de felicidade é a sua própria maneira de classificar o quão bom ou ruim o desempenho de um sistema fez e # 8211; com base em seus próprios parâmetros pessoais. Por exemplo, o lucro pode ser proportavelmente mais importante para você do que as cobranças. 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 elegante adicionar mais parâmetros na equação e possivelmente alguma lógica:
se CAR & gt; 15%, depois 2 * ln (CAR) & # 8211; ln (MaxDD) & # 8211; Ln (tempo no mercado) e # 8211; 3 * ln (calor médio da carteira)
se CAR & lt; 15%, depois 2 * ln (CAR) & # 8211; 3 * ln (MaxDD) & # 8211; Ln (tempo no mercado) e # 8211; 5 * ln (calor médio da carteira)
Eu acho o site da Ed Seykota muito bom (eu provavelmente o adicionarei ao meu blogroll) e você poderia verificar esse link:
Procure a função de felicidade & # 8211; Isso levanta outras questões também (ou seja, o lucro líquido / Max DD pode dar-lhe um valor de 8 com lucro de 4% e .5% DD. Isso é melhor do que 40% de lucro e 10% de DD?)
Mas, em qualquer caso, não tenho certeza de como você poderia adicionar um elemento preditivo para isso e # 8211; Isso não parece corresponder ao seu propósito (que é quantificar com um único número, como são bons os resultados do back-test). Agora, acho que pode ser possível definir uma abordagem robusta que permita escolher o conjunto de parâmetros que possa funcionar melhor no futuro (ou seja, comparar todas as corridas de otimização e suas funções de felicidade, mas não necessariamente escolher o número mais alto # 8211, potencialmente um 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 na CBT. No backtester regular, Tomasz fecha todos os negócios no final do período OOS. Não há transição. Para maiores execuções de EOD, isso pode não ser crítico. Mas isso causa estragos com períodos mais curtos. Bruce Robinson trabalhou começou a usar o & # 8220; estado & # 8221; função & # 8230; mas requer alguma manipulação. Posso desenterrar o Bruces AFL se você estiver interessado.
Isso parece definitivamente interessante, pois provavelmente irei em 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 por si só vale mais do que mil palavras.
Além disso, referenciei esta publicação no blog no fórum NinjaTrader.
Oi Jez, eu gosto do seu blog.
Avançar é intresting, mas como você pode lidar com a dependência da data de início? Quero dizer, com um sistema de cruzamento 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 certeza de que eu entendo sua pergunta, mas para avançar, eu teria uma coleção de combinações de parâmetros que eu quero que o sistema execute. Todas essas combinações funcionariam desde o início do back-test e, em cada período de intervalo, seu desempenho seria medido e os melhores executantes seriam escolhidos para negociação # 8230;
Com a dependência de início de data, 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 uma determinada data, você recebe alguns sinais de entrada e saída. Se você começar a calcular um mês depois, por exemplo, com o mesmo parâmetro, você também obtém sinais diferentes e resultados diferentes. Na análise progressiva, você tem esse problema em todos os ciclos.
Concordo com esse ponto Alex, no entanto, o processo Walk-Forward ideal 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ê examinaria o desempenho de todos os sistemas (que começaram desde o início do teste), mas apenas para esse período de otimização (ou seja, deixar todos os sistemas / combinações de parâmetros funcionar em paralelo desde o início e examiná-los 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 e uma razão não é o ideal.
Eu também acho melhor entender uma função objetiva como uma definição de sucesso pessoal. # 8221; Como Jez indicou, o lucro / DD não é uma maneira adequada de avaliar um sistema porque não conta o estômago daqueles que arriscam a capital.
Para alguns, 7% de CAGR ou ICGR podem ser adequados porque todos eles podem estômago são desprendimentos leves. Para outros, eles podem estar no mercado para uma montanha-russa de 20-30% CAGR ou ICGR com DDs máximos que farão diminuir o estômago.
Para cada unidade de lucro, devemos pagar em unidades de volatilidade. Profit is the reward that comes from periods of drawdown. The amount of drawdown any given investor is willing to endure is personal. Only an alignment between the system’s parameters and the operator’s subjective view of risk can lead to long term system trading success. Otherwise, the emotions of risk and loss may overwhelm the operator or their clients.
Deixe um comentário (Cancelar)
Atualizações gratuitas.
Posts Populares.
Procure o blog Au. Tra. Sy.
Global Futures Broker.
Au. Tra. Sy blog, Systematic Trading, pesquisa e desenvolvimento, com um sabor de Trend Following.
Descargo de responsabilidade: o desempenho passado não é necessariamente indicativo de resultados futuros. O comércio de futuros é complexo 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 tomado como conselho de investimento. Todo o conteúdo do site, não deve ser interpretado como uma recomendação para comprar ou vender qualquer instrumento financeiro ou de segurança, ou para participar de qualquer estratégia de negociação ou de investimento específica. As idéias expressas neste site são apenas as opiniões do autor. O autor pode ou não ter uma posição em qualquer instrumento financeiro ou estratégia acima referida. Qualquer ação que você toma como resultado de informações ou análises neste site é, em última análise, sua exclusiva responsabilidade.
RESULTADOS DE DESEMPENHO HIPOTÉTICOS TEM MUITAS LIMITAÇÕES INERENTES, ALGUNS DESCRITOS ABAIXO. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VOCE OU POSSIBILIDADE DE ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS; POR FAVOR, HÁ DIFERENÇAS FREQUENTEMENTE SHARP ENTRE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E OS RESULTADOS REAIS REALIZADOS POR TODOS OS PROGRAMAS DE NEGOCIAÇÕES PARTICULARES. UMA DAS LIMITAÇÕES DOS RESULTADOS DE DESEMPENHO HIPOTÉTICOS É QUE ESTÃO GERALMENTE PREPARADAS COM O BENEFÍCIO DE HINDSIGHT. ADICIONALMENTE, A NEGOCIAÇÃO HIPOTÉTICA NÃO IMPORTA RISCOS FINANCEIROS, E NENHUM GRUPO DE NEGOCIAÇÃO HIPOTÉTICA PODE COMPLETAMENTE CONTA PARA O IMPACTO DO RISCO FINANCEIRO DE NEGOCIAÇÃO REAL. POR EXEMPLO, A CAPACIDADE DE PERDER OU DE ADESIVAR A UM PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO EM ESPIRRO DE PERDAS DE NEGOCIAÇÃO SÃO PONTOS MATERIAIS QUE PODEM IGUALMENTE AFETAR EFECTUAR RESULTADOS REAIS DE NEGOCIAÇÃO. HÁ NOMBROSOS OUTROS FATORES RELACIONADOS COM OS MERCADOS EM GERAL OU NA EXECUÇÃO DE QUALQUER PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO QUE NÃO PODE SER TOTALMENTE COMPTABILIZADO NA PREPARAÇÃO DE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E TODOS OS QUE PODEMOS ADVERSAMENTE EFECTUAR OS RESULTADOS DE NEGOCIAÇÃO.
ESTAS TABELAS DE DESEMPENHO E RESULTADOS SÃO HIPOTÉTICOS DE NATUREZA E NÃO REPRESENTA NEGOCIAÇÕES EM CONTAS REAIS.

Comments

Popular posts from this blog

Estratégias de negociação de opções de ações pdf

O que é 1 lote no forex

Todo sobre o apalancamento forex