O teste e a validação regular do sistema do CCSM são necessários para garantir que a qualidade e a integridade do modelo sejam mantidas ao longo do processo de desenvolvimento. Esta seção estabelece os padrões de teste do sistema e os procedimentos que serão usados para verificar se os padrões foram cumpridos. Supõe-se que as equipes de desenvolvimento de modelos de componentes tenham testado seu componente antes de disponibilizá-lo para o teste do sistema. Consulte a seção) para obter mais informações sobre o teste de componentes individuais e testes unitários de sub-rotina individual e módulos dentro dos componentes. Existem duas categorias gerais de avaliações de modelos: frequentes testes curtos e integrações de validação longa e pouco frequentes. O teste de modelo refere-se a execuções de modelos curtas (3 a 31 dias) projetadas para verificar se a mecânica subjacente eo desempenho do modelo acoplado continuam a atender às especificações. Isso inclui verificar se o modelo realmente é iniciado e executado, comparando o desempenho do modelo eo speedcost relativo de cada componente do modelo, além de verificar se o modelo reinicia exatamente. Esses testes são feitos em cada uma das plataformas de destino. O teste do modelo não aborda se a resposta do modelo é correta, apenas verifica se ela opera mecanicamente como especificada. A validação do modelo envolve integrações mais longas (pelo menos 1 ano) para garantir que os resultados do modelo estejam de acordo aceitável com as estatísticas climáticas do modelo anterior e observadas Características do sistema climático real. A validação do modelo ocorre com cada versão CCSM menor (ou seja, CCSM2.1, CCSM2.2) ou a pedido dos cientistas e grupos de trabalho da CCSM. Uma vez solicitado, a validação do modelo só é realizada depois que os cientistas da CCSM foram consultados e a fase de teste do modelo foi completada com sucesso. Os resultados da validação do modelo são documentados em uma página da Web publicamente avaliável (cesm. ucar. edumodelsccsm2.0betatestingstatus. html). A validação da porta é definida como a verificação de que as diferenças entre duas simulações de modelo, de outra forma idênticas, obtidas em diferentes máquinas ou usando ambientes diferentes são causadas apenas por erros de roundoff da máquina. O teste formal do CCSM é necessário para cada versão marcada do modelo. O líder de garantia de qualidade CCSM é responsável por garantir que esses testes sejam executados, seja pessoalmente fazendo ou executando por uma pessoa qualificada. Se um componente modelo for identificado como tendo um problema, a ligação para esse componente deverá tornar a resolução desse problema a sua maior prioridade. Os resultados dos testes e benchmarking serão incluídos no modelo marcado para documentar as características de execução do modelo. Os scripts de teste e análise reais farão parte do repositório CCSM CVS para incentivar o uso por usuários externos. O CCSM de compilação bem sucedido deve compilar em cada uma das plataformas de destino, sem alterações nos scripts, códigos ou conjuntos de dados. A inicialização bem-sucedida do CCSM começará a partir de um estado inicial e será executada por 10 dias. O reinício bem-sucedido do CCSM começará a partir de um estado inicial e parará após 5 dias, depois reiniciará e funcionará a partir do dia 6 ao dia 10. O CCSM do ramo bem-sucedido começará a partir de um estado inicial e suspenderá após 5 dias, então execute uma filial com apenas um Mudança de nome de caso e executado a partir do dia 6 até o dia 10. Reinício exato Uma combinação de bit-for-bit deve ocorrer entre a execução inicial de 10 dias e a reinicialização e execuções de ramificação usando o mesmo número de processadores. Trapping de sinal Um teste de captura de sinal deve ser conduzido com a variável de ambiente DEBUG definida como verdadeira no Makefile. Outros diagnósticos Uma prova de diagnóstico será realizada com infodbug ajustado para o nível 2 na entrada do acoplador. Diagnóstico de porta Um teste de diagnóstico de porta será executado com infobcheck ajustado para o nível 3 na entrada do acoplador e uma corrida de 10 dias será realizada. Comparação do desempenho O tempo total da CPU, o uso da memória, o volume de saída, o custo do GAU, o uso do espaço no disco e o tempo do relógio da parede para a corrida de 10 dias serão gravados. O custo relativo de cada componente também será gravado. Relatório de teste Os resultados de todas as etapas acima devem ser documentados em um relatório de teste com ênfase em resultados, comparações com o teste anterior e recomendações para melhorias. Quaisquer falhas ou defeitos observados devem ser anotados e devem ser levados à atenção da ligação responsável por esse componente e pelo gerente de engenharia de software. Teste de fumo Um dos principais critérios utilizados na avaliação da eficácia de um procedimento de teste é o período de tempo decorrido desde a última vez que o sistema foi testado. Para testar mudanças no sistema ou no software, uma rodada automatizada de teste de seis dias será feita a cada fim de semana com a mais recente distribuição CCSM em cada uma das plataformas suportadas. Um teste de reinício será realizado no primeiro fim de semana de cada mês. Relatório de teste Os resultados das etapas 1 serão documentados automaticamente em um relatório de teste.13.2 Procedimentos de validação do modelo para a validação do modelo CCSM ocorre com cada versão CCSM menor (ou seja, CCSM2.1, CCSM2.2) ou a pedido dos cientistas da CCSM e Grupos de trabalho. Antes de iniciar uma corrida de validação, o Líder de Garantia de Qualidade da CCSM consultará os cientistas do CCSM para projetar o experimento de validação. Etapas de execução pré-validação: testes com sucesso A validação irá concluir com sucesso as etapas de teste descritas acima. Assinatura do cientista Os cientistas da CCSM devem concordar em disponibilizar-se para analisar informalmente os resultados da corrida durante a corrida e rever formalmente os resultados dentro de uma semana após a conclusão da parceria com correntes anteriores do modelo O resultado concorda com os modelos anteriores Comparação com Clima observado O resultado concorda com a climatologia observada. A validação é definida como a verificação de que as diferenças entre duas simulações de modelo, de outra forma idênticas, obtidas em diferentes máquinas ou usando ambientes diferentes são causadas apenas por erros de roundoff da máquina. Os erros do Roundoff podem ser causados pelo uso de duas máquinas com representação de ponto flutuante interno diferente, ou usando um número diferente de elementos de processamento na mesma máquina, o que pode causar uma re-ordenação conhecida de alguns cálculos, ou usando diferentes versões ou opções do compilador ( Em uma única máquina ou máquinas diferentes) que analisam os cálculos internos de forma diferente. O seguinte artigo oferece uma referência primária para validação de portas (doravante denominada RW): Rosinski, J. M. e D. L. Williamson: A acumulação de erros de arredondamento e validação de portas para modelos atmosféricos globais. Journal of Scientific Computing, Vol. 18, Nº 2, março de 1997. Conforme estabelecido no RW, três condições do comportamento da solução modelo devem ser cumpridas para validar com sucesso uma porta de modelos de circulação atmosférica geral: durante os primeiros timestaps, as diferenças entre as soluções originais e portadas devem estar dentro de Uma a duas ordens de grandeza de arredondamento de máquina durante os primeiros dias, o crescimento da diferença entre as soluções originais e portadas não deve exceder o crescimento de uma perturbação inicial introduzida nos bits mais baixos da solução original as estatísticas de uma longa A simulação deve ser representativa do clima do modelo produzido pelo código original. A extensão em que essas condições se aplicam a modelos diferentes de um modelo atmosférico ainda não foi estabelecida. Além disso, note que a terceira condição não é o foco desta seção (ver seção 13.2). A validação do sistema CCSM completo, definida como a combinação de todos os componentes do modelo ativo que participam na computação total, é um processo de duas etapas: Valide cada modelo como um sistema autônomo Valide o sistema acoplado A validação de cada modelo de componente deve ser realizada por Os desenvolvedores de modelos, e talvez não seja necessário realizar as análises autônomas como parte de testes de validação regulares e frequentes. Para validar o CCSM totalmente acoplado, o objetivo é estabelecer um procedimento que permita concluir com confiança que a porta do sistema completo (todos os componentes ativos) é válida. No entanto, há pelo menos dois problemas potenciais que devem ser observados: o procedimento será suficiente para tirar conclusões com confiança. Isso é, ele deve ter pouco potencial para concluir uma boa porta quando o porto é, de fato, ruim. Com a conclusão de que a porta é ruim, é provável que não haja informações disponíveis para identificar qual componente do sistema completo é suspeito. O procedimento geral para a validação portuária do CCSM completo é examinar o crescimento das diferenças entre duas soluções em um número adequado de timestaps integrais. Esse crescimento do erro pode ser comparado com o crescimento das diferenças entre duas soluções em uma única máquina, onde a solução diferente foi produzida pela introdução de uma perturbação aleatória da menor amplitude que pode ser sentida pelo modelo na precisão da máquina. Recomenda-se que o procedimento examine o crescimento das diferenças em uma variável de estado que reside na interface física primária (ou seja, a superfície), onde a acumulação de erros em todos os componentes atuará rapidamente e onde a ação do acoplador CCSM é Também significativo (por exemplo, mapeamento de grade). Também é recomendado que o procedimento seja realizado em um sistema acoplado onde a troca de informações entre componentes ativos é freqüente. Os intercâmbios de informações que os limites de um dia modelo podem mascarar a detecção de uma porta inválida porque a magnitude das diferenças de erro pode atingir os níveis de saturação de retorno antes da troca de dados. Veja o exemplo 5 na seção 13.3.4. A receita para a validação CCSM é a seguinte: execute o CCSM em uma máquina selecionada em que a confiança na solução foi estabelecida re-execute o CCSM na mesma máquina, apresentando uma perturbação de erro inicial na temperatura do modelo atmosférico 3-D usando o Procedimento disponível no CCM (consulte - necessidade de um link na web-) execute o CCSM na máquina de destino usando o mesmo código, os mesmos arquivos de nomes de entrada do modelo e os mesmos arquivos de dados de entrada do modelo e compare o crescimento do erro na solução perturbada em relação ao Crescimento de erro na solução portada. Os erros devem satisfazer as duas primeiras condições descritas em RW. Recomendações específicas para uma validação de porta de CCSM: diferença de campo do RMS, com base em área. Observe que o campo que está sendo examinado deve ser processado usando a precisão completa da máquina. O campo deve ser salvo na precisão total da máquina durante a etapa de arquivamento do histórico do modelo e a estatística de erro deve ser calculada com a precisão total da máquina. 13.3.4 Exemplos de validação de porta Exemplo 1. Crescimento de erro de perturbação Um crescimento típico do erro de perturbação da diferença de temperatura de superfície globalmente calculada usando um controle e uma perturbação de bit de ordem inferior do CCM em 16pes do IBM SP. Dois dias (144 timestaps atmosféricos) são mostrados. Observe que os primeiros timestaps satisfazem a primeira condição de RW. Exemplo 2. A linha da porta da máquina Black é o crescimento do erro de perturbação na máquina original (o mesmo que o exemplo 1). A linha vermelha é o crescimento das diferenças entre a simulação na máquina original e a simulação em 64passes de um SGI Origin 2000, e a linha azul é o crescimento das diferenças de uma simulação em 32pes de um IBM SP. Note que os primeiros dois dias (144 timesteps) satisfazem a segunda condição do RW. Exemplo 3. Porta ruim Igual ao exemplo 2, mas a linha azul é uma porta onde a concentração padrão de gases de efeito estufa foi modificada acidentalmente no código fonte atmosférico. A primeira e segunda condições de RW são violadas. Exemplo 4. Bad Port II Igual ao exemplo 2, mas a linha azul é uma porta onde o coeficiente de difusão de segunda ordem foi aumentado em 15 na entrada do namelist do modelo atmosférico. A primeira e segunda condições de RW são violadas. Exemplo 5. Freqüência do modelo de troca de dados Igual ao exemplo 2, mas a linha azul é uma porta onde o coeficiente de difusão vertical do modelo oceânico foi abaixado intencionalmente. Enquanto as condições de RW primeiro e segundo estão satisfeitas, a porta foi forçada a ter sido ruim. O problema é que o oceano e a atmosfera foram direcionados para trocar dados apenas nos limites do dia (72 timestaps atmosféricos) e, portanto, o acoplador não comunicou a solução oceânica à atmosfera até o início do segundo dia. O erro na solução do modelo oceânico já atingiu o nível de saturação do roundoff pelo tempo que o modelo atmosférico recebeu a informação. Para a validação da porta, este exemplo demonstra que as trocas de dados entre os componentes devem ocorrer com mais frequência do que a escala de tempo em que o erro de roundoff atinge um valor de nível (saturado). Design de máquina determinista de sistemas de negociação com validação restrita Um sistema de negociação de alta taxa de ganhos para O SPY foi usinado projetado usando um método determinista e um simples preditor de preço. A variação de resultados na amostra foi realizada em amostras fora de amostra de SPY e de uma segurança anti-correlacionada. Os resultados mostram que os sistemas de negociação de alta taxa de ganhos com risco apropriado: a relação de recompensa pode ser usinada projetada que seja mesmo lucrativa em um mercado anti-correlacionado. O design determinista da máquina dos sistemas de negociação é um processo que produz o mesmo resultado cada vez que minima os mesmos dados com os mesmos parâmetros de projeto. Este é um processo compatível com os requisitos de testes e análises científicas. Note-se que a maioria dos algos de design de máquinas baseados em redes neurais ou algoritmos genéticos não produzem, em geral, o mesmo resultado quando alimentados com os mesmos dados e os mesmos parâmetros devido a aleatoriedade em condições iniciais. A validação é o processo de avaliação de como os resultados do design da máquina se realizam em um conjunto de dados independente com a finalidade de proteger contra erros de Tipo III. Isto é, o teste das hipóteses sugeridas pelos dados. No entanto, no caso do design da máquina, é sabido que a validação simples não é suficiente devido ao teste de hipóteses múltiplas e ao snooping de dados. Procedimentos de validação mais avançados são necessários para avaliar a importância dos sistemas de negociação desenvolvidos através do design da máquina. Neste blog, além do teste fora da amostra, outro teste estrito é realizado em uma segurança anti-correlacionada durante o mesmo período de dados não visto. Processo de design da máquina Conjunto de dados e parâmetros de desempenho na amostra Usaremos o Price Action Lab para projetar a máquina um sistema de negociação para a SPY que será constituído por uma série de padrões de preços a curto prazo. O fechamento das barras diárias será usado como preditor de preço com um período máximo de 9 barras. A amostra de dados disponíveis desde o início deste ETF é dividida da seguinte forma: In-sample: 01291993 8211 12312008 Fora da amostra 01022009 8211 04022017 A taxa de ganhos mínima exigida para cada um dos padrões é 85. O objetivo de lucro é definido como 2 porque Gostaríamos de evitar tanto quanto possível encaixar as saídas para os dados. O stop-loss é definido como 4 com base no requisito de um fator de lucro mínimo de 1,5 por padrão identificado na amostra. Também exigimos que cada padrão na amostra tenha mais de 20 negócios e não mais do que 7 perdedores consecutivos. Abaixo está o espaço de trabalho para o design da máquina na amostra: cada linha nos resultados corresponde a um padrão de preços que satisfaça os parâmetros de desempenho especificados pelo usuário. O Trade on é o ponto de entrada, neste caso o Open of next bar. P é a taxa de sucesso do padrão, PF é o fator de lucro, Trades é o número de trades históricos, CL é o número máximo de perdedores consecutivos, Type é LONG para padrões longos e SHORT para padrões curtos, Target é o alvo de lucro, Stop é a parada-perda e C indica ou pontos para as saídas, neste caso é. Última data e primeira data são a última e primeira data no arquivo de dados históricos. O laboratório de ação de preço identificou 30 padrões distintos que satisfaziam os critérios especificados no espaço de trabalho, 23 longos e 7 curtos. Uma vez que o bom desempenho é garantido na amostra por design, continuaremos com testes fora da amostra. Nós apenas mencionamos que, na amostra, o retorno anual composto foi de 22 e a relação de Sharpe foi de 2,57. Em seguida, o código Amibroker foi gerado para os padrões de preços e eles foram combinados com o operador OR em um sistema comercial final. Os resultados de backtest no out-of-sample são mostrados abaixo: A curva de equidade é aceitável, embora abaixo de comprar e manter (dados não ajustados). No entanto, não devemos esperar que um único sistema superar a compra e a retenção, especialmente quando há uma forte tendência nos últimos dois anos. O retorno anual composto é 9,84, o retorno líquido é de 79,76, máx. Drawdown é -14.92, o fator de lucro é 1.47 e a razão de Sharpe é 1. Um total de 150 negócios foram gerados na amostra fora de amostra, 109 de comprimento e 41 de curto. Os negócios curtos contribuíram com cerca de 4,8 para o retorno anual composto. Observe que a comissão de 0,01 por ação foi incluída no teste e o capital inicial foi de 100K. O patrimônio líquido foi totalmente investido em cada nova posição. Os resultados aceitáveis na saída da amostra não são suficientes para proteger os erros de Tipo III. Isso é verdade porque o processo de design da máquina testou muitos sistemas no in-sample antes de oferecer um resultado final. São necessários testes adicionais. Uma vez que a validação cruzada do k-fold e outros métodos de particionamento de dados são difíceis de aplicar no caso de sistemas de negociação, recorreremos a testes de aleatorização e testes em títulos comparáveis mas anti-correlacionados. Abaixo está a distribuição dos retornos líquidos de 20.000 sistemas de comércio aleatório de SPY longshort que iniciam posições no fechamento da barra diária na saída da amostra com base no resultado de um lance de moeda justo (cabeças longas, caudas curtas). As posições longas são fechadas quando as caudas aparecem e as posições curtas são fechadas quando as cabeças aparecem. O patrimônio inicial é de 100K, a comissão é fixada em 0,01 por ação e o patrimônio líquido é totalmente investido em cada posição: o retorno líquido de 79,76 na saída do sistema projetado pela máquina para resultados SPY superiores a 96,09 dos sistemas aleatórios, resultando Em um p-valor de 0,0391. Portanto, dado que a hipótese nula é verdadeira, a probabilidade de obter o retorno testado no fora da amostra por chance é de cerca de 4. Mas é realmente. A resposta é que talvez não seja e é realmente maior. Precisamos de validação adicional. Um teste rigoroso de validação cruzada Uma vez que nosso sistema foi desenvolvido realizando essencialmente vários testes, a análise de randomização acima é um primeiro passo para descartar erros de Tipo III, mas não é suficiente. Podemos usar essa análise para economizar tempo no sentido de que, se o valor p for superior a 0,05, podemos então rejeitar o sistema. Mas um alto valor de p não exclui um sistema falso devido a testes múltiplos, ou seja, um sistema que teve a sorte de passar no teste de randomização. Com o objetivo de aumentar as chances de que nosso resultado não seja espúrio, identificaremos uma segurança anti-correlacionada no período fora da amostra e testaremos o sistema. Um bom candidato para este teste é TLT, como mostrado abaixo: A correlação média de 120 dias de SPY e TLT durante o período fora da amostra foi de -0,34 com um período de quase dois anos, que está marcado no gráfico, de Alta anti-correlação. Abaixo está o desempenho equitativo do sistema desenvolvido para SPY em dados TLT no mesmo período fora da amostra: no caso do TLT, o sistema supera a compra e retenção com retorno anual composto de 9,43 e retorno líquido de 75,60. Max. Drawdown é -11.14 e Sharpe é 1.06 com fator de lucro igual a 1.49. Este é um resultado significativo. Um sistema desenvolvido para o SPY funciona ainda melhor no TLT, uma segurança anti-correlacionada. Assim, a probabilidade de os padrões identificados durante a concepção da máquina ter um poder preditivo é alto. No entanto, note que este teste deve ser executado apenas uma vez. Se os resultados não forem satisfatórios, a busca de outra segurança anti-correlacionada que proporcionará um resultado positivo, ou para outro sistema que proporcione um resultado positivo com o mesmo teste, introduz um viés de snooping de dados e invalida o significado desses testes. O mesmo se aplica a qualquer processo que reutilize dados para executar testes em uma amostra fora da amostra. Se os dados forem reutilizados muitas vezes, a pesca de dados é garantida juntamente com resultados espúrios. Aparentemente, isso é o que prejudica os esforços de muitos desenvolvedores de sistemas que usam redes neurais e algoritmos genéticos para o meu por bordas. É também por isso que o determinismo é importante: se um sistema diferente for extraído em cada nova avaliação, ou há muitos sistemas diferentes com bom desempenho, isso facilita o espionagem de dados. No entanto, com o Price Action Lab, isso não é possível porque, com os mesmos parâmetros, o mesmo sistema será encontrado e todos os padrões são usados para desenvolver o sistema final, ou seja, não há nenhum viés de seleção. Abaixo está a distribuição dos retornos líquidos de 20.000 sistemas de negociação TLT longshort aleatórios que iniciam posições no final de cada barra diária no fora da amostra, com base no resultado de um lance de moeda justo (cabeças longas, caudas curtas). O patrimônio inicial é de 100K, a comissão é fixada em 0,01 por ação e o patrimônio líquido é totalmente investido em cada posição: o retorno líquido de 75,60 do sistema projetado pela máquina para pontuações TLT superior a 97,47 dos sistemas aleatórios, resultando em um valor p de 0,0253 . Portanto, uma vez que a hipótese nula é verdadeira, a probabilidade de obter o sistema resulta na falta de chance por chance é de aproximadamente 2,5. Preditores simples de ação de preços, como o fechamento de barras diárias, ainda possuem poder preditivo apesar de uma contínua arbitragem de oportunidades nos mercados. Isso foi demonstrado neste blog. É importante que o projeto da máquina que usa um preditor simples para desenvolver um algoritmo seja determinista, de outro modo, testes complexos devem ser usados para evitar erros de tipo III e pesca de dados. A complexidade dos testes exigidos torna a aplicação do design da máquina com base em condições iniciais aleatórias extremamente difícil no caso de desenvolvimento do sistema de negociação. Devido à natureza determinística do algoritmo de projeto da máquina usado neste exemplo, um teste mais simples mas rigoroso foi usado com base no desempenho do sistema em uma segurança anti-correlacionada. No entanto, qualquer abuso desses tipos de testes torna ineficazes na proteção contra erros de Tipo III. Obviamente, o desenvolvimento do sistema comercial não é fácil e está ficando mais difícil à medida que a tecnologia avança. Os comerciantes têm duas opções ao desenvolver sistemas: a primeira opção é baseada em conceber uma hipótese para testar que deve ser única. Caso contrário, pode ser um artefato do viés de mineração de dados. A segunda opção envolve o uso do design da máquina. Ambas as opções têm armadilhas. A primeira opção requer singularidade e a segunda opção requer testes efetivos de validação cruzada. Pode ser o caso de uma hipótese única ter baixas chances devido à mineração de dados implacável nos últimos 25 anos usando computadores e testes de backtest. Você pode assinar aqui notificações de novas postagens por e-mail. 2017 Michael Harris. Todos os direitos reservados. Nós concedemos uma permissão revogável para criar um hiperlink para este blog sujeito a certos termos e condições. Qualquer cópia, reprodução, distribuição, publicação, exibição, modificação ou transmissão não autorizada de qualquer parte deste blog é estritamente proibida sem autorização prévia por escrito.
No comments:
Post a Comment