пятница, 13 апреля 2018 г.

Sistema de negociação fora da amostra


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.)

Parte 1: Introdução ao Walk Forward Analysis.
8 de novembro de 2014 por.
Muitos traders desenvolvem sistemas de negociação usando um processo de teste e otimização de diferentes conjuntos de regras e parâmetros de negociação nos mesmos dados. Os sistemas desenvolvidos usando esse processo repetitivo tendem a se desintegrar rapidamente quando são negociados, avançando em tempo real se o desenvolvedor não for cuidadoso. O principal problema com esse tipo de desenvolvimento de sistema é o que os matemáticos chamam de "poucos graus de liberdade". No jargão do comércio, ele é conhecido como "ajuste de curva". O teste de caminhada visa resolver esse problema.
Nos testes, sempre que várias estratégias ou conjuntos de parâmetros são testados no mesmo conjunto de dados, os ângulos de liberdade dos resultados são reduzidos. Esse processo de usar os mesmos dados históricos resulta em melhor desempenho, mas serve para reduzir a chance de que a estratégia ou estratégias sejam lucrativas no futuro.
Como um sistema de negociação pode ser desenvolvido enquanto mantém um razoável grau de liberdade? A maneira mais simples de melhorar os resultados vem do uso de testes sem amostras, nos quais a série de dados é dividida em dois segmentos, cobrindo diferentes prazos. períodos. O (s) sistema (s) é (em) desenvolvido (s) usando o primeiro ou "período de amostragem" e, em seguida, o (s) sistema (s) é (em) testado (s) para verificar o desempenho no segundo período ou fora da amostra.
Com efeito, um teste é realizado nos dados de "fora da amostra", independentemente de quantas ideias são tentadas nos dados "em amostra". Os degrees graus de liberdade são preservados e o desempenho fora da amostra fornece uma indicação muito melhor do desempenho do sistema em tempo real. É claro que toda vez que o processo de teste é repetido com um sistema diferente, “graus de liberdade” são perdidos. Se forem feitos testes suficientes usando os dados, os dados fora da amostra tornam-se parte dos dados na amostra e a vantagem desse método de teste é perdida.
O Walk Forward Analysis leva a idéia de testes sem amostras para o próximo nível. Pense nisso como "sem amostras" de testes em esteróides. Análise de avanço de canal funciona assim. Digamos que você tenha doze anos de dados estendendo-se de 1995 a 2006 para os mercados que deseja negociar. Suponhamos também que sua estratégia de negociação precise de um mínimo de três anos de dados para testes e otimização.
Para começar, comece por desenvolver e otimizar o sistema usando apenas os três primeiros anos de dados - neste exemplo, 1995 - 1997. Nesses três anos de dados, tente quantas ideias desejar e otimize os parâmetros de várias maneiras. como você pode pensar. É importante não olhar para nenhum dado depois de 1997! Quando você acha que encontrou o "Santo Graal" dos sistemas de negociação, registre as regras para o sistema com os parâmetros ideais. Essas regras e parâmetros otimizados devem ser usados ​​posteriormente para o teste final com novos dados, começando em 1998.
Deslize a janela de tempo de três anos de dados para frente um pouco - digamos, um mês. Agora, os dados com os quais você está trabalhando são executados do segundo mês de 1995 até o segundo mês de 1998. Repita a análise, incluindo a otimização e registre as regras e os parâmetros otimizados. Na passagem final, esses parâmetros serão utilizados para o segundo mês de 1997.
Continue com o avanço e otimizando os períodos de dados de três anos. Registre os resultados para uso no primeiro mês após o período de otimização de três anos. Quando seus dados finalmente acabarem em 2010, volte e teste o sistema durante todo o período de 1998 a 2010. Altere as regras e os parâmetros a cada mês para usar os que você encontrou e registrou. Na verdade, você está executando um novo teste fora da amostra para cada mês. O desempenho do sistema para esses treze anos fora da amostra (156 meses fora da amostra) é uma indicação muito melhor de como um sistema funcionará em tempo real do que o desempenho de qualquer período de tempo único usado para otimização.
Não há nada mágico sobre os períodos de tempo presumidos - três anos para o desenvolvimento do sistema e um mês para o intervalo de walk-forward. Escolher esses dois parâmetros de tempo é um trade-off entre o tempo de otimização e a validade estatística dos resultados. Na prática, descobri que usar cerca de 20% do período de otimização da janela de walk-forward funciona razoavelmente bem.
Se os resultados para os meses fora do exemplo parecerem bons, continue o processo de avanço em tempo real para encontrar os parâmetros a serem usados ​​com dinheiro real. Outra vantagem deste método de desenvolvimento e negociação de sistemas é que o seu sistema se adaptará melhor às mudanças no comportamento do mercado ao longo do tempo. Os mercados mudam com o tempo - todos nós já vimos sistemas que ganharam dinheiro por vários anos e depois simplesmente pararam de trabalhar porque os mercados mudaram.
Na próxima seção desta série, vamos dar uma olhada em como o teste de avanço pode ser feito dentro do TradersStudio usando um exemplo que imita um cenário do mundo real.

Sistema de negociação fora da amostra
Definições: Na amostra refere-se aos dados que são reservados para testes completos. No teste de amostra inclui a otimização de parâmetros e deve ser usado para executar todos os testes preparatórios para executar o sistema ao vivo ou executar um teste de amostra para fins de validação.
Fora da amostra estão os dados que são separados dos dados da amostra e são usados ​​para validar que os testes da amostra produziram resultados válidos. Dados fora da amostra não devem ser usados ​​para otimização ou teste que não seja uma simples validação no final do processo. Dados de amostra são dados novos que nunca foram usados ​​para testar o sistema e, como resultado, replicam o que você obteria se o teste fosse executado durante esse período não testado, como em um teste direto.
Otimização excessiva de dados de amostra. A otimização excessiva do período de amostragem arrisca uma chance maior de que apenas por sorte, um teste superior seja encontrado. Quanto mais parâmetros forem testados na granularidade mais fina, maior será a chance de os resultados da amostra ficarem ajustados apenas aos dados da amostra e não serão generalizáveis ​​para nenhum outro dado.
Os dados têm uma alteração de regime no final do período de teste da amostra, o que faz com que os dados fora da amostra se comportem de maneira diferente. Um exemplo de uma mudança de regime pode ser uma mudança marcada na volatilidade que ocorre apenas no final do período de teste da amostra que faz com que o sistema perca lucratividade.
Os filtros que podem melhorar o desempenho do sistema de amostra podem, paradoxalmente, diminuir o desempenho fora da amostra. Uma maneira de testar se esse é o caso é remover sistematicamente os filtros, um de cada vez, para determinar se os filtros são muito específicos para a hora atual e não são generalizáveis ​​o suficiente para outras vezes. Para testar isso corretamente, você precisará de um período de teste adicional que possa ser usado para validar cada alteração do sistema e, ao mesmo tempo, preservar os dados fora da amostra para a validação final.
Um dos cálculos matemáticos é implementado incorretamente. Se você usar uma função matemática, como desvio padrão, correlação, etc., tome cuidado para garantir que os cálculos sejam realizados corretamente, verificando uma fonte conhecida de bons cálculos para sua função matemática específica.
Devido a um grande número de testes, (bons) resultados foram obtidos por sorte. Isso é semelhante ao nº 1. Se você torturar os dados por tempo suficiente, acabará cedendo e lhe fornecerá um resultado de teste superior. Infelizmente, na maioria das vezes, esse resultado de amostra rosado não pode ser replicado da amostra. É mais arte do que ciência determinar quanto teste é apropriado. Você terá que experimentar para determinar quanto tempo / quantas iterações executar para seus testes para obter melhores resultados.
Os dados que estão sendo usados ​​no teste são muito inconsistentes para basear uma estratégia sistemática. Isso pode acontecer se você estiver usando dados de baixa qualidade como uma entrada para o seu sistema ou se estiver solicitando mais de seus dados do que aquilo que é capaz de produzir.
Seu método de teste está apresentando uma visão antecipada do viés de snooping de dados. O viés de snooping de dados é onde você usa informações sobre o futuro em sua metodologia de desenvolvimento ou teste de sistema. É realmente fácil introduzir o viés de snooping de dados no seu teste se você realizar backtests manuais. Esta é uma das razões pelas quais eu sinto que é melhor fazer backtesting automatizado. Reserve algum tempo para garantir que nenhum dado do período fora da amostra seja incluído no período de amostragem.
Sua metodologia de teste está introduzindo viés de seleção. O viés de seleção pode ser introduzido na fase de teste da amostra, na qual você seleciona parâmetros com base no melhor desempenho. De um modo geral, os parâmetros devem ser selecionados com base em subconjuntos do período de amostragem, em vez de serem baseados no período inteiro da amostra. Este é um viés muito difícil de superar, particularmente com o software tradicional de backtesting. Eu posso postar um artigo futuro sobre este tópico.
A otimização no período de amostragem favorece resultados altamente lucrativos. Como resultado, sua estratégia de perda pode não ter a chance de ser totalmente testada. Um exemplo disso é usar uma meta de lucro muito pequena com um stop loss maior. Com base na otimização, você pode pensar que o critério de parada raramente é acionado, mas quando novos dados com diferentes características de volatilidade são usados ​​no período fora da amostra, o sistema termina com uma sequência de perdas de parada. Como o stop loss é grande, ele raramente é acionado porque o processo de otimização selecionará naturalmente sistemas com baixa frequência de interrupção. Mas, se as condições se alinharem aos dados não vistos, de modo que várias perdas de parada ocorram em seqüência, você poderá descobrir que seus parâmetros de saída de perda não são tão ótimos quanto o seu teste indicaria. Para superar esse problema, reduza a faixa de valores permitidos para saídas de perdas adversas para ter uma noção melhor de como as perdas regulares durante o período de teste serão atendidas.
Os dados têm buracos ou faltam dados que podem causar sinais imprevisíveis durante o teste. Sempre verifique os dados antes do teste, procurando períodos em que os dados estão faltando. Durante minha última rodada de testes, descobri que faltava uma semana para o EURUSD que estava causando resultados não confiáveis ​​nos testes.

Teste de Estratégia & # 8211; Violar essas etapas prejudicará sua conta.
Uma das experiências mais gratificantes para um profissional da TradeStation é pegar um relatório de desempenho que comprove que sua grande ideia de estratégia é de fato uma estratégia lucrativa. O teste de estratégia feito corretamente, conforme descrito neste artigo, pode verificar a eficácia de sua estratégia de negociação e dar a você confiança para começar a negociá-la. Mas esteja avisado, o teste de estratégia feito de maneira inadequada pode levá-lo à destruição financeira.
O teste de estratégia feito incorretamente pode resultar em falsas esperanças em uma estratégia de perda. Um comerciante recentemente compartilhou sua experiência de obter ótimos resultados da estratégia testando sua ideia, mas depois de negociá-la no mercado, ele estava perdendo dinheiro todos os dias. Ele estava confuso sobre o que ele fez de errado. Tendo obtido excelentes resultados em seu relatório de desempenho de testes, ele se perguntou por que sua estratégia promissora estava drenando sua conta de negociação. O problema foi que ele violou vários dos passos necessários para um teste de estratégia confiável.
Com o conhecimento de como obter um relatório de desempenho preciso, você poderá confiar em sua estratégia na negociação ao vivo e proteger sua conta de negociação. Para testar adequadamente uma estratégia, existem cinco etapas principais que são vitais para seguir; configure TradeStation, & # 8220; em dados de amostra & # 8221; testando, & # 8220; dados fora de amostra & # 8221; testes, testes em tempo real na conta do simulador e execução de negociação em tempo real.
Etapa 1: Configurar a TradeStation.
Antes de começar a testar seus dados, você deve configurar o TradeStation para que os dados inseridos em seu relatório de desempenho sejam precisos. Siga estes 3 itens críticos para configurar corretamente o TradeStation.
(a) No menu da sua plataforma TradeStation, vá para “format symbol” e dê ao TradeStation uma data inicial e final para testar. Este intervalo de datas histórico é chamado de dados "na amostra". # 8221; Não inclua os seis meses mais recentes neste “dado in-sample”. Os seis meses mais recentes são chamados de dados “fora da amostra”, & # 8221; e será usado mais tarde durante os seus dados fora de amostra & # 8221; etapa de teste.
(b) Em seguida, no menu da sua plataforma TradeStation, vá para a estratégia de formatação & # 8220; & # 8221; e selecione & # 8220; propriedades para todos. & # 8221; Agora selecione o & # 8220; general & # 8221; aba e insira as comissões e o slippage (seja o mais realista possível, ou faça uma estimativa muito alta se você não tiver certeza). Se esta etapa for ignorada, o relatório de desempenho do teste de estratégia não terá sentido. Se isso não for feito, você pode ter uma boa curva de patrimônio no relatório de desempenho, mas assim que você inserir as comissões e os números de derrapagem, a curva de capital pode reverter para uma curva de capital submarino.
(c) O último passo da configuração está em & # 8220; propriedades para todos os & # 8221; sob o & # 8220; geral & # 8221; aba. Olhe na seção inferior esquerda chamada "resolução de teste de estratégia". # 8221; Verifique o "back-test" da barra de pesquisa dentro da barra de ferramentas & # 8220; & # 8221; opção e, em seguida, selecione o menor período de tempo disponível para seu estilo de gráfico para fazer com que os testes de estratégia se assemelhem mais aos dados em tempo real. Quando o teste de estratégia, TradeStation usa os dados abertos, altos, baixos e de fechamento, assim, quanto maior a barra de tempo, mais distorcido o relatório de desempenho do teste de estratégia pode ser. Este teste de back-testing da barra de pesquisa dentro da página & # 8221; opção fará com que o computador faça muito mais cálculos de teste de estratégia. Isso pode realmente desacelerar sua geração de relatórios de desempenho, então, por favor, seja paciente. Para um relatório de desempenho preciso, você deve usar o back-testing & # 8221; opção.
Essas etapas de configuração são essenciais para obter um relatório de desempenho preciso, portanto, certifique-se de que isso seja concluído precisamente antes de continuar. Depois que a TradeStation for configurada corretamente, você poderá começar a testar sua estratégia.
Etapa 2: Teste de dados na amostra (também chamado de “Teste de retorno”)
Agora você está pronto para começar a testar sua ideia de estratégia. Começaremos testando os dados “na amostra” que você configurou para testar durante as etapas de configuração. Comece com a apresentação de um relatório de desempenho da TradeStation. Agora eu tenho um relatório de desempenho na frente de mim que vou me referir, mas você estará olhando para o seu próprio relatório de desempenho para analisar seus próprios números. É a isso que nos referiremos nos passos abaixo. Existem 7 sub-etapas para o teste “in-sample data”, como segue:
Primeiro, veja quantas negociações a estratégia fez. Para reduzir os erros de teste de estratégia, onde o erro é definido por [erro = 1 / Raiz quadrada (Número Trades no teste)], você deseja pelo menos 400 trades para reduzir a margem de erro para 5% nos resultados do teste de estratégia. Em 100 negociações, você tem uma margem de erro de 10%. Quanto maior o número de entradas em sua estratégia que você otimiza, maior o número de negociações que você precisa evitar otimizar sua estratégia.
Veja também quantas vezes a estratégia foi negociada em média por dia. Quanto mais uma estratégia é negociada, mais lucro ela pode gerar.
No relatório de desempenho que estou vendo, ele negociou 397 negócios nos últimos 3 meses e meio, com média de 5,3 negócios por dia.
Segundo, olhe para o “Valor Médio de Comércio”. Ele precisa ser grande o suficiente para que o preenchimento de pedidos lentos e / ou o escorregamento maior que o normal não elimine a lucratividade da estratégia.
No meu relatório, o “Valor Médio de Comércio” é de $ 162,32. As comissões e o valor de slippage, conforme definido nas etapas de configuração, já são subtraídos neste relatório de desempenho.
65% do tempo esta estratégia troca 1 contrato.
35% do tempo esta estratégia troca 3 contratos.
10% do tempo esta estratégia negocia 5 contratos.
Terceiro, olhe para ver se o "Profit Factor" e "Ratio Average Win-Average Loss" estão acima de 1,5 e a porcentagem de negociações vencedoras é de cerca de 45% ou melhor.
Essa estratégia teve um “Profit Factor” de 1,83.
Esta estratégia teve uma “Média de Ganhos Média / Média de Perdas” de 2,28 (2,28 significa que o ponto de equilíbrio é de cerca de 28% “Percentagens de Negócios Vencidos”)
Nesta estratégia, o “Percent Winning Trades” foi de 44,58%.
Quarto, olhe para a página da lista de negociação e avalie a coluna de lucros e subidas de lucros. Observe quantos comércios ganharam dinheiro e quanto dinheiro eles fizeram antes da saída do comércio. Olhando para a quantidade de dinheiro que foi feita em relação ao lucro subiu e desceu, você quer saber se administrar os negócios poderia gerar mais lucros. O exemplo usado aqui mostra que uma boa porcentagem de negociações obteve lucros muito maiores do que os pontos de saída automatizados.
Quinto, veja os três números de empate (DD). Eu gosto de ver o maior número em 15% ou menos do “Lucro Líquido Total” e o “Max DD” em 5% ou menos do “Lucro Líquido Total” (esses números informam sobre o nível de risco de sorteio durante seus negócios) ).
Lucro Total & # 8211; US $ 64.440
Peak to Valley DD & # 8211; $ 8.960 é 13% do lucro total.
Fechar para fechar DD & # 8211; $ 7.120 é 11% do lucro total.
Max DD & # 8211; $ 3.420 & # 8211; 5% do lucro total.
Sexto, Olhando para o "Maior Perder Comércio" no relatório, eu gostaria de ver 5% ou menos do "Lucro Líquido Total." No meu relatório, o "Maior Perder Comércio" que ocorreu foi de US $ 2.580, que é de 4% do total Lucro líquido."
Em sétimo lugar, reviso o período de tempo no comércio médio. O tempo médio de um negócio está de acordo com a regra de ouro da negociação? & # 8220; cortar suas perdas rapidamente e deixar seus lucros correrem? & # 8221; Você também desejará ver se a estratégia é criada usando apenas saídas de lucro (sem saídas de stop loss reais). Ele pode ter um relatório interessante, mas pode mostrar uma relação desequilibrada entre barras médias por negociação vencedora versus barras médias por negociação perdida, se não houver saídas de perda de parada. Aqui estão minhas barras médias:
Média de barras por negociação vencedora 7.24.
Média de barras por negociação perdida 3,51 barras.
Essa estratégia está em conformidade com a regra de ouro da negociação. Observe como ele reduz as perdas rapidamente, em uma média de 3,51 bars, e permite que os lucros corram por uma média de 7,24 barras.
Então, o que isso tudo significa? Isso significa que essa estratégia passou na fase de teste de estratégia histórica do teste de estratégia.
Etapa 3: Dados fora da amostra (também chamados de "Teste de avanço" # 8221;)
Uma vez que você tenha testado seus “dados dentro da amostra” e tenha determinado que sua estratégia é digna de testes contínuos, você pode agora testar sua estratégia com os dados “fora da amostra”. Se você ainda não testou sua dados de amostra, faça isso antes de prosseguir.
Para testar os dados “fora da amostra”, usamos os últimos 6 meses de dados disponíveis que você reservou na etapa 1 (a). Na etapa 1 (b) deste artigo, falamos sobre configurar a TradeStation e abordar comissões e slippage e usar a opção “back-testing-back-bar”, que deve ser usada para executar qualquer relatório de desempenho usado em seu teste de estratégia. . Certifique-se de ter configurado o TradeStation corretamente antes de prosseguir.
Entre no "símbolo de formato" e altere o intervalo de datas para incluir APENAS os "dados fora de amostra" & # 8221; intervalo de datas que NÃO foi usado durante o teste de estratégia em dados na amostra. & # 8221; Isto é referido como teste no & # 8220; out-of-sample & # 8221; dados.
Comece com a apresentação de um relatório de desempenho da TradeStation sobre o & # 8220; out-of-sample & # 8221; dados e revise todos os itens que discutimos na etapa 2 acima neste item fora de amostra & # 8221; relatório de desempenho. Quanto mais próximo ele estiver do relatório de desempenho do Passo 2 “dados de amostra”, mais robusta será a estratégia. Isso sugere que os resultados não foram de ajuste de curva e você tem uma boa chance de ter uma estratégia viável. Esse teste de intervalo de datas “fora da amostra” é muito mais importante do que a etapa de teste de estratégia nos “dados de amostra” para encontrar uma estratégia bem-sucedida. É uma boa ideia testar vários tipos de & # 8220; fora da amostra & # 8221; intervalos de datas, o que é chamado de "Análise de Caminhe para a Frente".
Robustez: Perry J. Kaufman declarou: "Praticamente falando, uma estratégia de negociação robusta é aquela que produz consistentemente bons resultados em um amplo conjunto de valores de parâmetros (entrada) aplicados a muitos mercados diferentes testados por muitos anos. & # 8221;
Se a estratégia falhar durante estes dados fora de amostra & # 8221; teste, NÃO otimize usando seus dados “fora da amostra” reservados. Isso derrotaria essa etapa vitalmente importante no desenvolvimento da estratégia. Você pode voltar à sua estratégia e consertá-la, ou então abandoná-la e desenvolver uma nova ideia de estratégia.
Uma ressalva & # 8211; Se a sua estratégia está capitalizando em uma determinada condição de mercado, como a volatilidade atual, e então você "testar dados fora de amostra" testar um intervalo de datas não volátil, pode não ter um bom desempenho. No entanto, em nossa próxima fase de testes, Live Forward Testing ”, pode ser bem-sucedida, já que ainda estamos em um mercado volátil. Você deve entender por que sua estratégia funciona, sob quais condições de mercado ela funciona bem e em que condições de mercado ela não funciona bem.
Agora que você testou seus dados "fora da amostra" e sua estratégia é promissora, você está pronto para continuar testando sua estratégia na conta do simulador.
Neste ponto, você configurou o TradeStation para que seu relatório de desempenho seja preciso, você testou seus dados “na amostra” e seus dados “fora da amostra” e sua estratégia ainda está ótima. Agora você está pronto para continuar testando sua estratégia na conta do simulador.
Etapa 4: teste de transmissão ao vivo na conta do simulador.
Durante o teste ao vivo no simulador, você deseja verificar se as entradas e saídas de feed de dados ao vivo são semelhantes às entradas e saídas históricas. Depois de ter feito transações de dados ao vivo por um dia, salve a lista de transações ao vivo. Agora, recarregue esse mesmo gráfico para que a estratégia seja recalculada com base no histórico desse mesmo dia. Registre a lista de negociação histórica e compare as entradas e saídas ativas com as entradas e saídas históricas. Eles são iguais ou pelo menos semelhantes? Você entende as diferenças e o impacto que o seu & quot; Live Data & # 8221; teste diz sobre sua estratégia?
Somente monitorando o programa diariamente, o desempenho pode ser visto sob real & # 8220; live & # 8221; condições de mercado. Continue o Live Forward Testing no simulador até que você esteja totalmente confortável com o fato de sua estratégia funcionar com dados ao vivo. Os resultados em tempo real geralmente serão menos lucrativos do que seus resultados históricos. A questão chave é se o teste em tempo real mostra que você tem uma estratégia lucrativa que vale a pena negociar?
Passo 5: Real Live Trading Execution.
Depois de ter feito a devida diligência e se sentir confortável com os resultados da estratégia no simulador, você estará pronto para negociar ao vivo. Como você está negociando uma estratégia totalmente nova com dinheiro real, comece com um risco significativamente reduzido de dimensionamento de posição de 1/4 de 1% do patrimônio de sua conta em risco por ponto de perda de parada por negociação. Continue negociando com risco mínimo até verificar se tudo está funcionando corretamente em sua nova estratégia durante as execuções de ordens reais.
Uma vez que sua estratégia esteja ganhando dinheiro no mercado ao vivo, lentamente, com o tempo, comece a aumentar seu risco de dimensionamento de posição. Mova seu risco para cima de 1/4 de 1% para 1%. Continue negociando com 1% de risco até que você tenha várias semanas a meses de desempenho comercial consistente. Se você quer ser agressivo e usar mais, pode continuar a aumentar para o máximo de 3% do patrimônio de sua conta em risco por negociação.
Se você seguir as 5 etapas descritas neste artigo, você poderá testar com confiança qualquer ideia de estratégia que você tenha. Guarde este artigo para referência. Assim, da próxima vez que você for inspirado com uma ótima ideia, você será capaz de prová-lo, proteger sua conta de negociação na TradeStation e ter confiança em negociar ao vivo sua estratégia.
Clique neste link para saber como testar de forma rápida e precisa qualquer ideia de negociação que você possa ter.
& # 8212; por Mark David Johnson do customizedtrading. Mark David Johnson é um programador TradeStation e EasyLanguage da TradeStation para os últimos 6 anos. Ele está envolvido em programação há mais de 26 anos e envolvido no comércio há mais de 16 anos.
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.

Software de negociação para construção.
sistemas de negociação de ações, futuros, índices e forex.
usando indicadores de análise técnica e redes neurais.
O NeuroShell Trader é um software para a construção de sistemas de negociação. Não é um sistema de negociação por si só, é um kit de ferramentas de técnicas tradicionais e Inteligência Artificial (AI) que você pode combinar para formar sistemas de negociação informatizados.
O NeuroShell Trader irá construir sistemas de negociação para ações, FOREX, futuros, commodities, opções, índices e muito mais. Você pode construir sistemas de negociação para trocas em todo o mundo, como a NYSE, AMEX, FTSE, DAX, ASX, TSX, SFE e muitos mais.
Os sistemas de negociação podem consistir em indicadores e regras padrões de análise técnica, como os traders têm usado há anos, técnicas de inteligência artificial, como redes neurais, ou híbridos de ambos. Os sistemas de negociação que você criar farão o back-test automaticamente e continuarão a fornecer sinais no futuro, à medida que novos dados chegarem.
Os modelos de negociação geralmente são construídos usando indicadores de análise técnica com base nos dados brutos e outros dados do instrumento. Digamos que você acredite que os indicadores a seguir serão úteis em modelos que produzirão sinais de negociação no mercado de ações:
O spread entre cada estoque teórico e INTC A força relativa entre cada estoque teórico e o indicador $ DJUCR A estocástico% k aplicado a cada estoque teórico.
Portanto, a próxima coisa que você pode fazer é inserir os indicadores acima em seu gráfico usando o Assistente de Indicador. O Indicator Wizard contém mais de 800 indicadores padrão para escolher.
Sistemas de Negociação e Previsão.
Fácil de construir sistemas de negociação baseados em regras, modelos avançados de previsão de redes neurais ou sistemas híbridos que combinam ambos.
Redes neurais.
Encontre padrões em seus dados para prever valores futuros ou outros fluxos de dados.
Por que usar uma rede neural? Se você tem um conjunto de indicadores favoritos, mas não possui um conjunto de regras de negociação para criar um sistema de negociação lucrativo, as redes neurais podem criar as regras de negociação para você. As redes neurais podem ajudar você a encontrar padrões em seus dados. Eles são uma ferramenta indispensável para prever e prever valores futuros.
Nós fazemos nossa própria pesquisa de redes neurais. Nosso mais novo tipo de rede neural, o Turboprop 2, é provavelmente a melhor rede neural do planeta. É muito rápido. A maioria das redes neurais treina em 5 a 20 segundos. Nenhuma rede neural baseada no paradigma backprop agora muito antigo pode se aproximar de nossas redes neurais. Por que a velocidade é importante? Porque quando você está otimizando, você pode estar treinando centenas ou mesmo milhares de redes neurais, o que seria literalmente impossível com o antigo algoritmo de rede neural de retropropagação.
A rede neural Turboprop 2 é muito precisa (supondo que você tenha entradas relevantes, é claro), e fornece um valor de contribuição numérica para cada entrada, para que você possa decidir de maneira inteligente entre as entradas. Nosso otimizador de algoritmo genético também ajudará você a decidir. O Turboprop 2 também possui mecanismos para ajudar a prevenir o overfitting. Você não precisa de um conjunto de "teste", além de um conjunto de "validação" ou "avaliação" para evitar o superajuste com a rede neural Turboprop 2. O turboélice 2 também pode treinar com base no aumento do lucro, bem como na redução do erro.
O Turboprop 2 não tem parâmetros para ajustar a rede neural. Não há necessidade de ser um especialista em redes neurais; Inserir uma previsão ou previsão de rede neural é tão fácil quanto inserir um indicador.
Algorítmos genéticos.
Otimização mais rápida de previsões, sistemas de negociação e indicadores técnicos.
Os mercados de hoje são mais difíceis do que nunca de analisar. O NeuroShell Trader oferece uma vantagem com três diferentes otimizadores baseados em algoritmos genéticos para ajustar suas ideias de negociação. Você pode otimizar seus sistemas de negociação para maximizar o lucro, minimizar o rebaixamento ou escolher dentre os mais de 30 outros objetivos.
A velocidade é essencial quando se está avaliando um grande número de sistemas de negociação. Nossas técnicas de Algoritmo Genético, Estratégia de Evolução e Otimização de Enxame são capazes de afinar um grande número de variáveis ​​do sistema de negociação em muito menos tempo que os otimizadores de força bruta tradicionais (também incluídos) que tentam todas as combinações possíveis. Os otimizadores baseados no algoritmo genético podem encontrar os períodos de tempo para os indicadores e, ao mesmo tempo, determinar quais regras devem ser usadas na estratégia de negociação. O Trader também pode procurar ótimos preços de parada e limite para seus sistemas de negociação.
Os gráficos são o principal componente do NeuroShell. Você pode abrir muitos gráficos de uma só vez, novos ou aqueles que você já construiu e salvou anteriormente. Ao criar um novo gráfico, você especifica a periodicidade com a qual deseja ver e processar os dados, bem como o tempo que deseja carregar nos dados. Em seguida, você especifica os instrumentos relacionados cujos dados históricos devem ser carregados no gráfico. Eles são os instrumentos-alvo para os quais você deseja criar sinais de negociação.
Vários instrumentos no gráfico aparecem em sua própria página do gráfico. Por exemplo, digamos que você carregue IBM, DELL, HPQ e AAPL como seus instrumentos de destino. (Eles não têm que ser estoques; eles podem ser pares FOREX, commodities, E-minis, opções, etc). Observe que você pode inserir vários modelos diferentes em um gráfico. Depois de inserir um modelo, ele se aplica automaticamente a todas as páginas do gráfico.
Gráfico B ased.
Estão disponíveis atualizações para as versões NeuroShell Trader Power User e NeuroShell DayTrader Power User, que permitem que o software distribua o processamento de otimização de modelos financeiros complexos em sua rede local. O resultado é uma diminuição significativa na quantidade de tempo que leva para criar e atualizar os sistemas de negociação à medida que as condições do mercado mudam.
Vamos dizer que sua rede local tem três computadores conectados, uma máquina de 12 núcleos e duas máquinas quad core. Isso é um total de 20 núcleos, os quais podem estar procurando o seu modelo de negociação ideal simultaneamente. Os computadores mais rápidos lidam com uma parcela maior da carga. Você tem controle sobre quais computadores da rede deseja participar e quais não deseja participar.
Escolha entre três diferentes versões de rede do NeuroShell Trader, dependendo da potência e velocidade que você precisa:
Otimização distribuída de rede.
Otimização ainda mais rápida de grandes modelos complexos com processamento distribuído em vários computadores.
Depois que o gráfico for carregado com os dados solicitados, você estará pronto para definir um ou mais modelos no gráfico. Qualquer modelo que você cria no gráfico se aplica automaticamente a todos os instrumentos no gráfico. Seu modelo pode ser otimizado da mesma forma para todas as páginas do gráfico ou otimizado para cada página do gráfico. Os modelos podem ser Estratégias de Negociação ou Previsões. Observe que você pode inserir vários modelos em um gráfico. Depois de inserir um modelo, ele se aplica automaticamente a todas as páginas do gráfico.
You may or may not have a clue about how the indicators you have chosen work. If you do, you probably have some idea about how they would be used to generate trading signals, rules like "Buy when the relative strength between the stock and the $DJUCR is high, and the spread with INTC is low." In this case you will want your model(s) to be Trading Strategies, even if you are unsure what values should be considered high and low above. The genetic optimizer will find the values for you. If you either have no clue about how the indicators work, or no clue about appropriate rules for them, you will probably want to build a Prediction with a neural net for your model(s), because neural nets find their own rules.
Indicadores de Análise Técnica.
Over 800 indicators.
Trading Strategy Wizard.
Prediction Wizard.
The Trading Strategy Wizard is a fast mechanism for entering trading rules without having to type messy formulas or write in some algorithmic programming-like language.
The Wizard is all point and click. You just list the rules for long entry, long exit, short entry, and short exit (cover). Each of these rules is in fact an indicator you build just like any other indicator - with the Indicator Wizard. You can also enter indicators for stop and limit price levels, including trailing stops.
If you want to optimize your trading strategies, the genetic optimizer will do these things for you:
Find which of the rules you have listed should be used in combination Find out what the parameters of the indicators in your rules should be set to Perform both of the above at the same time (we call this full optimization) Even your stops and limits can be optimized.
When the Trading Strategy is complete, it will show you historical buy and sell signals. As new data is added to the chart, those buy and sell signals will continue to appear with each new bar. You can insert a variety of indicators to plot how your profit is growing.
Predictions are neural nets made with the Prediction Wizard. That's what our standard neural nets do, they make predictions about the future value of a data stream, usually a price or change in price, but any data stream can be predicted. Here is basically all you have to do to make a prediction model:
Choose some inputs - data streams, usually indicators, that you believe are leading indicators of the market Decide what you want to predict, usually change or percent change of the open or close Decide how much historical data will be used to train the neural net Decide how much historical data you want to use to test how well the neural net has learned.
If you want to optimize your prediction, the genetic optimizer will do these things for you:
Find which inputs you listed should be used in combination Find which indicator parameters values should be set to Perform both of the above at the same time Find neural network thresholds for trading.
When the prediction is complete, it will show you historical buy and sell signals. As new data arrives in the future, those buy and sell signals will continue to appear with each new bar. You can insert a variety of indicators to plot how your profit is growing.
Sometimes when you build traditional trading systems, neural network models, or optimized models of any type, it is possible to make a model so good that it does not hold up with future market conditions. Isso é chamado overfitting. NeuroShell lets you hold some data outside of the system building process (called out-of-sample data). Therefore, NeuroShell contains facilities that will automatically backtest with out-of-sample data for you, so you can gain confidence that your model will hold up in the future.
Our optimizer also works in a mode we call "paper trading". In this mode, the optimizer keeps the trading system that works better in a period of time after the optimization period, rather than the optimal (peak) model. Paper trading automatically gives you a trading system that is less likely to be overfit, and more likely to work well into the future.
Out-of-Sample Backtesting.
Determine if your trading system holds up in future trading before risking real money.
Trader Power User and Trader Professional allow you to create end of day charts with daily, weekly, and monthly charts.
DayTrader Power User and DayTrader Professional works with both end of day, weekly and monthly charts and intra day charts that have hour, minute, second, volume and range bars.
End of Day and Intra Day Charts.
NeuroShell lets you take almost any condition, not just trading signals, and define an alert to let you know when that condition has just occurred.
Visual and sound notification of important events.
Once you have developed a model that you are happy with, you can specify that trades be sent to your broker’s account for execution, with the fill price being returned to NeuroShell. The trades can be sent automatically, or only after you approve them. As an alternative, NeuroShell will email your trades to email addresses of your choice.
Currently NeuroShell Trader has Interactive Brokers, FXCM and TradeStation integrated and other brokers are available from ZagTrader. Direct connections to more brokers are being developed.
Integrated Trading.
Automatically send trades to your favorite brokerage while you’re out on the golf course.
Your charts can mix and match multiple time frames in data streams, indicators, predictions, and trading strategies as well as other instrument data. The NeuroShell Trader Power User mixes daily, weekly, and monthly timeframes, while the NeuroShell DayTrader Power User can include multiple intraday timeframes as well. For example, the Trader Power User lets you combine daily and weekly bars in the same trading system. The DayTrader Power User version can create a single trading system with minute, hour, and range bars. Think of the possibilities.
Análise de múltiplos períodos de tempo.
Combine different timeframes of data, indicators, predictions, and trading strategies into one chart or analysis.
You can select from over fifteen different sizing methods. If you don’t know how many shares, contracts, or units to buy with each trade, let the optimizer decide the most profitable method.
Advanced Money Management.
Control the money allocated to each trade.
Fixed Size Fixed Dollar Percent of Account Fixed Leverage Fixed Fractional Kelly formula Optimal f.
Secure f Profit Risk Volatility Risk Fixed Ratio Margin + Drawdown Sizing Fixed Dollar Amount per Unit Fixed Dollar Fixed Dollar Risk.
Pyramiding and scaling options add the ability to either enter or exit trades with more than one order. If you’re uncertain which of the pyramiding or position sizing methods to use, the Trader’s optimizer can assist in your decision process.
Pyramiding and Position Scaling.
Enter or exit trades with multiple orders.
If you want to evaluate your model’s performance on a Trading Strategy that is re-optimized regularly on newer data, and then applied to out-of-sample data, you can use the Walk Forward Optimization feature.
For example, you can backtest reoptimizing a Trading Strategy every week for the past 10 weeks. After each reoptimization, the Trading Strategy is applied to data for the following week. The NeuroShell Trader Power User will perform 11 total optimizations in this case, each shifted by one week. Ten of those optimizations will show the “actual” trading results had you traded the reoptimized model for the week following the optimization period. The final optimization is optimized up to the very last date so you can go forward into the future trading a model that has been optimized on the very latest data in the same manner as the prior 10 simulated optimizations.
This feature can also be applied to intraday bars if you own the NeuroShell DayTrader Power User version.
Walk Forward Optimization.
Evaluate performance on systems that re-optimized regularly on newer data, and then applied to out-of-sample data.
The Power User versions include a “batch” mode of reoptimizing and backtesting models you’ve created previously.
Simply save the model as a chart template. Save templates for ALL of the models you wish to incorporate in this batch process. To begin the batch process, simply select all of the templates you wish to include in the batch on the first page of the Trading Strategy wizard. You’ll have the option to modify the dates, costs, and optimization parameters that you wish to use during optimization of all of the templates. You DO NOT have to rebuild each model.
After the models are backtested and you have analyzed the results, you can check the templates you wish to see displayed in a chart.
Batch Processing.
Optimize and back test multiple trading strategy templates on multiple instruments in one continuous process.
NeuroShell Trader allows you to distribute optimization processing across multiple computer cores and multiple hyper threads on a single computer.
As an example, if you have an Intel Core i7 processor, which has 4 processing cores each with the ability to process two simultaneous hyper threads, the NeuroShell Trader optimization processing could be spread out to 8 different threads. Theoretically, you could realize up to an 8x speed increase in optimization on a Core i7 computer, however due to the overhead of controlling, setup, and communication with each distributed thread, the speed increase may approach, but will never reach 8x. (You also have options to limit the number of cores/hyperthreads utilized during optimization if you want to use other programs during optimization without any processor sharing.)
For even faster optimization, see Network Distributed Optimization described below.
Multicore Distributed Optimization.
Lightning fast optimization of complex models with distributed processing across multiple cores of a single computer.
COMBINE RULES AND NEURAL NETS - You can build hybrid trading systems that involve neural network predictions as well as standard rules.
HYBRID MODELS - Since everything in NeuroShell is a data stream, there are many ways to build hybrid models by feeding the results of one wizard into another wizard. Indicators can go into other indicators, predictions and trading rules can go into indicators, trading signals can go into other trading rules, etc., etc.
PANEL OF EXPERTS - You can build a "panel of experts" - a strategy that consults several other strategies or neural networks to see what the majority predicts.
PAIRS TRADING - You can build pairs trading models and even optimize them.
PORTFOLIO MODELS - You can build portfolio models, where the model looks at a basket of stocks and takes a position in one or more of them based upon their relative position in the basket (relative position can be based upon one or more indicators or neural nets.) These portfolio models can be hedged to be market neutral, so that at a given time there are an equal number of long and short positions.
CROSS MARKET OPTIMIZATION - You can optimize each instrument in the chart individually, or do one general optimization that results in the same model for all instruments in the chart.
INTRADAY MODELS - You can build intraday models with the NeuroShell DayTrader Professional to make decisions about direction of the market at specified times of the day.
DATA EXPORTING - You can export data, indicators, signals, equity curves, etc. from NeuroShell into text files for processing in Excel, statistical programs, or other trading systems.
DATA IMPORTING - You can load text files of indicators or signals from other programs into NeuroShell in many cases.
CUSTOM INDICATOR API - Sometimes you may have in mind indicators that are too complex even for our Indicator Wizard to construct. In that case, you can program your own in standard languages like C++, Power Basic, and other languages capable of creating dynamic link libraries.
CUSTOM BROKERAGE API - If you don't want to use our connected brokers and have another broker you'd rather send trades to automatically, you or your programmers may be able to use our programmable "Trade Pump" to program your own custom brokerage interface.
CUSTOM DATA FEED API - We also have a programmable interface called the "Data Pump" which may allow you or your programmer to build a custom data interface to an intraday data provider not already supported by NeuroShell.
Use YOUR rules, indicators, and formulas to analyze today’s volatile markets, without writing any code. Instead, use our point and click “wizards” for indicators, predictions, and trading systems. For example, create multiple variations of the same indicator, such as 9 and 13 period moving averages, in one pass through the indicator wizard.
The indicator wizard allows you to build complex indicators by combining a number of the 800 included indicators. You can save these “custom” indicators for use in other trading systems. The prediction and trading strategy wizards also allow entire systems to be combined, so you can build “ensemble” systems with more power to find profitable trades. Save your favorites as templates for later use.

9 Mistakes Quants Make that Cause Backtests to Lie by Tucker Balch, Ph. D.
Below is a follow-up article on Dr. Balch's talk he gave at Quantcon 2015.
"I’ve never seen a bad backtest” -- Dimitris Melas, head of research at MSCI.
Um backtest é uma simulação de uma estratégia de negociação usada para avaliar a eficácia da estratégia se ela fosse negociada historicamente. Backtestesting é usado por fundos hedge e outros pesquisadores para testar estratégias antes que o capital real seja aplicado. Backtests are valuable because they enable quants to quickly test and reject trading strategy ideas.
All too often strategies look great in simulation but fail to live up to their promise in live trading. There are a number of reasons for these failures, some of which are beyond the control of a quant developer. But other failures are caused by common, insidious mistakes.
An over optimistic backtest can cause a lot of pain. I’d like to help you avoid that pain by sharing 9 of the most common pitfalls in trading strategy development and testing that can result in overly optimistic backtests:
Many strategies require refinement, or model training of some sort. As one example, a regression-based model that seeks to predict future prices might use recent data to build the model. It is perfectly fine to build a model in that manner, but it is not OK to test the model over that same time period. Such models are doomed to succeed.
Don’t trust them.
Solution: Best practices are to build procedures to prevent testing over the same data you train over. As a simple example you might use data from 2007 to train your model, but test over 2008-forward.
By the way, even though it could be called “out-of-sample” testing it is not a good practice to train over later data, say 2014, then test over earlier data, say 2008-2013. This may permit various forms of lookahead bias.
2. Using survivor-biased data.
Suppose I told you I have created a fantastic new blood pressure medicine, and that I had tested it using the following protocol:
uma. Randomly select 500 subjects.
b. Administer my drug to them every day for 5 years.
c. Measure their blood pressure each day.
At the beginning of the study the average blood pressure of the participants was 160/110, at the end of the study the average BP was 120/80 (significantly lower and better).
Those look like great results, no? What if I told you that 58 of the subjects died during the study? Maybe it was the ones with the high blood pressure that died! This is clearly not an accurate study because it focused on the statistics of survivors at the end of the study.
This same sort of bias is present in backtests that use later lists of stocks (perhaps members of the S&P 500) as the basis for historical evaluations over earlier periods. A common example is to use the current S&P 500 as the universe of stocks for testing a strategy.
Why is this bad? See the two figures below for illustrative examples.
Figure: The green lines show historical performance of stocks that were members of the S&P 500 in 2012. Note that all of these stocks came out of the 2008/2009 downturn very nicely.
Figure: What really happened: If, instead we use the members of the S&P 500 starting in 2008, we find that more than 10% of the listed companies failed.
In our work at Lucena Research, we see an annual 3% to 5% performance “improvement” with strategies using survivor-biased data.
Solution: Find datasets that include historical members of indices, then use those lists to sample from for your strategies.
3. Observing the close & other forms of lookahead bias.
In this failure mode, the quant assumes he can observe market closing prices in order to compute an indicator, and then also trade at the close. As an example, one might use closing price/volume to calculate a technical factor used in the strategy, then trade based on that information.
This is a specific example of lookahead bias in which the strategy is allowed to peek a little bit into the future. In my work I have seen time and again that even a slight lookahead bias can provide fantastic (and false) returns.
Other examples of lookahead bias have to do with incorrect registration of data such as earnings reports or news. Assuming for instance that one can trade on the same day earnings are announced even though earnings are usually announced after the close.
Solution: Don’t trade until the open of the next day after information becomes available.
The very act of trading affects price. Historical pricing data does not include your trades and is therefore not an accurate representation of the price you would get if you were trading.
Consider the chart below that describes the performance of a real strategy I helped develop. Consider the region A, the first part of the upwardly sloping orange line. This region was the performance of our backtest. The strategy had a Sharpe Ratio over 7.0! Based on the information we had up until that time (the end of A), it looked great so we started trading it.
When we began live trading we saw the real performance illustrated with the green “live” line in region B – essentially flat. The strategy was not working, so we halted trading it after a few weeks. After we stopped trading it, the strategy started performing well again in paper trading (Region C, Arg!).
Como isso pode ser? We thought perhaps that the error was in our predictive model, so we backtested again over the “live” area and the backtest showed that same flat area. The only difference between the nice 7.0 Sharpe Ratio sections and the flat section was that we were engaged in the market in the flat region.
What was going on? The answer, very simply, is that by participating in the market we were changing the prices to our disadvantage. We were not modeling market impact in our market simulation. Once we added that feature more accurately, our backtest appropriately showed a flat, no-return result for region A. If we had had that in the first place we probably would never have traded the strategy.
Solution: Be sure to anticipate that price will move against you at every trade. For trades that are a small part of overall volume, a rule of thumb is about 5 bps for S&P 500 stocks and up to 50 bps for more thinly traded stocks. It depends of course on how much of the market your strategy is seeking to trade.
Naïve backtesters will allow a strategy to buy or sell as much of an asset as it likes. This may provide a misleadingly optimistic backtest because large allocations to small companies are allowed.
There often is real alpha in thinly traded stocks, and data mining approaches are likely to find it. Consider for a moment why it seems there is alpha there. The reason is that the big hedge funds aren’t playing there because they can’t execute their strategy with illuid assets. There are perhaps scraps of alpha to be collected by the little guy, but check to be sure you’re not assuming you can buy $10M of a $1M company.
Solution: Have your backtester limit the strategy’s trading to a percentage of the daily dollar volume of the equity. Another alternative is to filter potential assets to a minimum daily dollar volume.
An overfit model is one that models in-sample data very well. It predicts the data so well that it is likely modeling noise rather than the underlying principle or relationship in the data that you are hoping it will discover.
Here’s a more formal definition of overfitting: As the degrees of freedom of the model increase, overfitting occurs when in-sample prediction error decreases and out-of-sample prediction error increases.
What do we mean by “degrees of freedom?” Degrees of freedom can take many forms, depending on the type of model being created: Number of factors used, number of parameters in a parameterized model and so on.
Solution: Don’t repeatedly “tweak” and “refine” your model using in-sample data. And always compare in-sample error versus out-of-sample error.
Complex models are often overfit models. Simple approaches that arise from a basic idea that makes intuitive sense lead to the best models. A strategy built from a handful of factors combined with simple rules is more likely to be robust and less sensitive to overfitting than a complex model with lots of factors.
Solution: Limit the number of factors considered by a model, use simple logic in combining them.
8. Trusting stateful strategy luck.
A stateful strategy is one whose holdings over time depend on which day in history it was started. As an example, if the strategy rapidly accrues assets, it may be quickly fully invested and therefore miss later buying opportunities. If the strategy had started one day later, it’s holdings might be completely different.
Sometimes such strategies’ success vary widely if they are started on a different day. I’ve seen, for instance, a difference in 50% return for the same strategy started on two days in the same week.
Solution: If your strategy is stateful, be sure to test it starting on many difference days. Evaluate the variance of the results across those days. If is large you should be concerned.
Even if you avoid all of the pitfalls listed above, if you generate and test enough strategies you’ll eventually find one that works very well in a backtest. However, the quality of the strategy cannot be distinguished from a lucky random stock picker.
How can this pitfall be avoided? It can’t be avoided. However, you can and should forward test before committing significant capital.
Solution: Forward test (paper trade) a strategy before committing capital.
It is best to view backtesting as a method for rejecting strategies, than as a method for validating strategies. One thing is for sure: If it doesn’t work in a backtest, it won’t work in real life. The converse is not true: Just because it works in a backtest does not mean you can expect it to work in live trading.
However, if you avoid the pitfalls listed above, your backtests stand a better chance of more accurately representing real life performance.
Live Webinar: Dr. Balch will present a webinar on this topic on April 24, 2015 at 11AM. You can register to watch the webinar live by following this link.
Tucker Balch, Ph. D. is a professor of Interactive Computing at Georgia Tech. He is also CTO of Lucena Research, Inc., a financial decision support technology company. You can read more essays by Tucker at augmentedtrader.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta para fornecer serviços de consultoria de investimento pela Quantopian.
Além disso, o material não oferece opinião com relação à adequação de qualquer investimento específico ou de segurança. Nenhuma informação aqui contida deve ser considerada como uma sugestão para se envolver ou se abster de qualquer ação relacionada ao investimento, pois nenhuma das suas afiliadas está comprometida em fornecer consultoria de investimento, atuar como um consultor para qualquer plano ou entidade sujeita a o Employee Retirement Income Security Act de 1974, conforme alterado, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em uma capacidade fiduciária com relação aos materiais aqui apresentados. Se você for um investidor individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado com a Quantopian sobre se qualquer ideia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não garante a exatidão ou integridade das opiniões expressas no site. As opiniões estão sujeitas a alterações e podem ter se tornado não confiáveis ​​por várias razões, incluindo mudanças nas condições de mercado ou circunstâncias econômicas.
Good post. However, if one reads enough of my posts, one will find some bad backtests--though only of others' strategies =P.
That said, I display all my code so anyone can feel free to dispute my results.

Fooled By Out of Sample Testing.
Developing trading systems on an in-sample of historical data and then testing the results on an out-of-sample is a widely used practice that hides some fundamental flaws. In this article I list some of the problems that may arise from the wrong application of out-of-sample testing and I discuss an alternative method that involves testing a trading system on a much wider range of market conditions while at the same time it makes full use of historical data during the development phase.
After a trading system is designed, either manually of by a machine, it is important to know whether it is a random selection that happened to fit well to the data or it has some kind of intelligence in pairing raw market returns with its signals. A common practice employed by developers is to split the data in an in-sample and an out-of-sample, develop the system on the former sample and then cross-validate the results on the latter sample. This practice has several inherent drawbacks and flaws and some are listed below:
(1) Use of out-of-samples limits the amount of data available during the development phase. (Usually 4/5 of the data are used as the in-sample and the remaining 1/5 as the out-of-sample. )
(2) If the out-of-sample involves conditions similar to those found in the in-sample, the cross-validation results will be positive. For example, a trend following system developed on an in-sample with several trends will probably perform very well on an out-of-sample that is mainly composed of a single trend. Many stock traders were fooled by a similar situation when developing systems during the 1990s when there was a strong upward market trend. On the other hand, if the out-of sample includes only adverse conditions, then the system will not be given a chance to prove itself and it will be rejected. An example is again a trend-following system and an out-of-sample with only choppy price action. Since a trend following system profits from capturing trends, it would be unfair to evaluate it on just sideways price action. A well-balanced sample should include several trends of various magnitudes and several sideways periods in between them to determine whether the profits accumulated from trend following are multiples of the losses made during sideways periods.
(3) If the process makes use of data-snooping, as it is the case with some genetic programming algorithms that permute indicators based on the optimization of a fitness function, the probability of finding a trading system that passes the out-of-sample test is, for all practical purposes, equal to 1. In other words, if at every step of the process some test results on the same data are ignored and a final selection is made that optimizes some objective, given enough permutations one may find a spurious model that may pass cross-validation tests by chance alone. Even in the case that the fitness function is evaluated based on the performance on a number of historical data files, such as a portfolio of securities, given enough permutations the probability that the final result passes all cross-validation tests approaches 1 but the model may still be spurious.
Solutions to (3) above have been proposed that attempt to control Type I errors (the incorrect rejection of the null hypothesis that the system has no intelligence or that its returns were drawn from a distribution with zero mean return) have a serious flaw as they must consider all possible models. In the case of trading systems designed via the use of genetic programming, the number of all possible models may be in the order of billions or trillions and a good part of them may be irrelevant. In the case of manual design, the term “possible model” is quite ambiguous. Thus, although fancy algorithms have been proposed to tackle this problem, they lack a foundation and they are mostly impractical. They can also be detrimental to the design process because in their effort to control for Type I errors they introduce Type II errors and as a result some good results may be rejected.
Testing on comparable data rather than on an out-of-sample.
The method of testing on comparable data is the oldest used and traders refer to it as the requirement that “a system must perform well over a good number of markets”. However, due to the limited availability of data when the method was initially proposed it lost its appeal and methods such as bootstrapping and Monte Carlo simulations gained popularity. However, thanks to the introduction of ETFs in the mid 1990s, now there are plenty of comparable historical data series to use in the testing of equity and fixed income trading systems. In the case of futures and currencies, about 2o years of more data are now available since the method of testing on comparable data was proposed. Thus, there are no more excuses in using out-of-sample testings that can be misleading and one should test a system developed on the whole available price history of a given market on a sufficient number of other markets to determine its performance. But this must be done correctly and below are some suggestions:
(a) Comparable data is a general term and it does not necessarily refer to comparable securities but mostly to the requirement that the data structure must be comparable in the sense that if a system uses the Close and the Volume, for example, the comparable series must also have Close and Volume available.
(b) The portfolio to test a system must be selected a priori and not posteriori. This is very important because any post hoc selection is equivalent to cheating and reminds of the chartists who only see those patterns that worked while neglecting many others that did not.
(c) The portfolio must include positively but also negatively correlated securities to ensure that the system performs well over a wide variety of conditions and markets.
Parte II. An example of a machine generated trading system.
In this example a system for SPY will be generated by Price Action Lab using all available history of this ETF since inception and then it will be tested on a number of ETFs that have been used in this website for more than a year to provide short-term trading alerts. The list includes SPY, DBC, DIA, EEM, GLD, IWM, QQQ, SLV, TLT, USO, XLE and XLF.
Price Action Lab is a program that identifies price patterns in historical data based on user-defined performance criteria. It was a deliberate choice back in the early 1990s, when development of the algorithm of Price Action Lab started, to consider only price patterns because they involve no free parameters and issues of curve-fitting through optimization were limited to the size of the exits, something that is controlled by the user and not by the data-mining process.
Step 1. Defining the market, timeframe and profit target and stop loss.
In this example a trading system will be developed for SPY using non-adjusted daily data from the ETF inception (01/29/1993) to 05/24/2013. The profit target and the stop-loss are set at 2.5%. A T/S file is first created and saved in Price Action Lab as follows:
Passo 2 . Creation of a pattern search workspace.
On the search workspace, the selection of data files and parameters that will guide the program in identifying price patterns is made:
The workspace is created by selecting the following:
a) The T/S file we created by the name 2p5.trs.
b) The data file SPY. TXT.
c) The trade parameters: ”%” is marked to indicate that the values in the selected T/S file stand for percentages of the entry price, which is selected as the open of the next bar under Inputs. The Delay input is kept marked off. (Using delay inputs will be the subject of another post).
d) Under search parameters we input 69.99 for the minimum win rate for long patterns and 66.99 for short patterns, 29 for the minimum number of trades, 1.50 for the minimum profit factor and 8 for the maximum number of consecutive losers (< 8). The other parameters stay at default values.
e) The date range in the data file is shown under File Date Range. In this case it corresponds to the in-sample range. The Search Range is left to 500. This means that Price Action Lab will demand that all patterns that are found to satisfy the performance criteria set in (a) – (d) must have at least one historical trade in the most recent 500 bars. Finally, the Extended search option is checked.
Price Action Lab will run for an interval of time depending on computer CPU speed but in this particular case it will complete the search after about 15-20 minutes on the average. The output should look like the one below (sorted for highest win rate P):
Each line in the above results corresponds to a price pattern that satisfies the performance parameters specified by the user. Index and Index Date are used internally to classify patterns. Trade on is the entry point, in this case the Open of next bar. P is the success rate of the pattern, PF is the profit factor, Trades is the number of historical trades, CL is the maximum number of consecutive losers, Type is LONG for long patterns and SHORT for short patterns , Target is the profit target, Stop is the stop-loss and C indicates whether % or points for the exits, in this case it is “%”. Last Date and First Date are the last and first date in the historical data file.
It may be seen from the results that Price Action Lab found 24 distinct patterns, 21 long and 3 short, which satisfied the performance criteria specified on the workspace. One could argue that these patterns are random and a result of survivorship bias, i. e. they survived by chance alone and they have no predictive power. This is one reason tests on comparable data will be carrried out below. But first note that:
& # 8211; All patterns will be used as components of a trading system. There is no selection made from the results obtained.
& # 8211; Price Action Lab does not find systems that later allow varying their parameters for fitting their performance in some in or out-of-sample. All patterns found are parameter-free , eliminating an important but serious concern dealing with curve-fitting.
& # 8211; Price Action Lab does not use genetic programming, neural networks, permutations or any other methods employed by some other programs that very often produce random and curve-fitted systems. Price Action Lab is based on a proprietary deterministic algorithm that produces the same output each time it encounters the same conditions and that is in compliance with the standards of scientific testing and analysis.
The Test Patterns function is used next to get a quick calculation of key performance statistics for the search period:
The above results include all signals from all patterns and thus involve multiple positions. It may be seen from the above results that the Compound Annual Return (CAR) is 17.75% for the system of 24 patterns since inception of SPY. As expected by design, the equity curve is upward slopping. However, the system just designed by the program may be curve-fitted and essentially random. For this purpose and as discussed before, we will test this system on 11 more comparable securities since their inception.
Example: Testing on IWM data.
The following results were obtained after the symbol for SPY was replaced by IWM (this will be a feature of v4.1 to be released soon but it can be done manually at this point):
It may be seen that after an initial sluggish period and a drawdown, the system manages to produce a CAR of 11.54% for this ETF. One should not expect to see the same kind of a smooth equity line in comparable markets. We are only interested in noticing overall profitability and in this case the system passes the test.
Example: Testing on TLT data.
This is an interesting test because after the financial crisis erupted, SPY and TLT have maintained a high negative correlation:
It may be seen that in this case the equity curve starts with an upward slope, then there is a drawdown without going negative and then a sharp rise. (Note that the actual percent drawdown of an account will depend on risk management parameters and equity.)
Summary of system performance.
The performance on all 12 ETFs is summarized on the table below:

Trading system out of sample


AmiBroker 5.10 features the automatic Walk-Forward test mode.
The automatic Walk forward test is a system design and validation technue in which you optimize the parameter values on a past segment of market data (”in-sample”), then verify the performance of the system by testing it forward in time on data following the optimization segment (”out-of-sample”). You evaluate the system based on how well it performs on the test data (”out-of-sample”), not the data it was optimized on. The process can be repeated over subsequent time segments. The following illustration shows how the process works.
The purpose of walk-forward test is to determine whenever the performance of optimized trading system is the realistic or the result of curve-fitting. The performance of the system can be considered realistic if it has predicitive value and performs good on unseen (out-of-sample) market data. When the system is properly designed, the real-time trading performance should be in relation to that uncovered during optimization. If the system is going to work in real trading, it must first pass a walk-forward test. In other words, we don't really care about in-sample results as they are (or should be) always good. What matters is out-of-sample system performance. It is the realistic estimate of how the system would work in real trading and will quickly reveal any curve-fitting issues. If out-of-sample performance is poor then you should not trade such a system.
The premise of performing several optimization/tests steps over time is that the recent past is a better foundation for selecting system parameter values than the distant past. We hope is that the parameter values chosen on the optimization segment will be well suited to the market conditions that immediately follow. This may or may not be the case as markets goes through bear/bull cycle, so care should be taken when choosing the length of in-sample period. For more information about system design and verification using walk-forward procedure and all issues involved, we can recommend Howard Bandy's book: "Quantitative Trading Systems" (see links on AmiBroker page).
To use Walk-Forward optimization please follow these steps:
Start and End dates mark initial period begin / end.
This period will be moved forward by Step until the End reaches the Last date.
By default an “EASY MODE” is selected which simplifies the process of setting up WF parameters.
a) Out-of-sample segment immediatelly follows in-sample segment.
b) the length of out-of-sample segment equals to the walk-forward step.
between periods. Intraday mode set START date of the next period as NEXT DAY after END of previous period. That guarantees.
that boundary day is not counted twice when testing on intraday data.
The interface allows to selectivelly disable in-sample and out-of-sample phases using checkboxes at top (for special things like running sequential backtests without optimization).
All settings are immediatelly reflected in the PREVIEW list that shows all generated IS/OOS segments and their dates.
will be used for sorting results and finding the BEST one. Any built-in column can be used.
(as appears in the optimization output), or you can use any custom metric that you define.
in custom backtester. The default is CAR/MDD, you can however select any other built-in metric from the combo.
You can also TYPE-IN any custom metric that you have added via custom backtester interface.
IN-SAMPLE and OUT-OF-SAMPLE combined equity.
Combined in-sample and out-sample equities are available by.
OSEQUITY composite tickers (consecutive periods of IS and OOS are concatenated and scaled to maintain continuity of equity line - this approach assumes that you generally speaking are compounding profits).
ISEQUITY" , "In-Sample Equity" , colorRed , styleLine );
OSEQUITY" , "Out-Of-Sample Equity" , colorGreen , styleLine );
OUT-OF-SAMPLE summary report (new in 5.60)
Version 5.60 brings a new walk-forward summary report that covers all out-of-sample steps. It is visible in the Report Explorer as last one and has "PS" type.
There were significant changes to walk forward testing made to allow summary out-of-sample report. The most important change is that each subsequent out-of-sample test uses initial equity equal to previous step ending equity. (Previously it used constant initial equity). This change is required for proper calculation of all statistics/metrics throughout all sections of out-of-sample test.
Summary report shows the note that built-in metrics correctly represent all out-of-sample steps but summary custom metrics are composed using user-definable method:
1 first step value, 2 last step value, 3 sum, 4 average, 5 minimum, 6 maximum.
By default summary report shows last step value of custom metrics UNLESS user specifies different combining method in.
bo. AddCustomMetrics has now new optional parameter - CombineMethod.
bool AddCustomMetric( string Title, variant Value, [optional] variant LongOnlyValue, [optional] variant ShortOnlyValue , [optional] variant DecPlaces = 2, [optional] variant CombineMethod = 2 )
This method adds custom metric to the backtest report, backtest "summary" and optimization result list. Title is a name of the metric to be displayed in the report, Value is the value of the metric, optional arguments LongOnlyValue, ShortOnlyValue allow to provide values for additional long/short-only columns in the backtest report. Last argument DecPlaces controls how many decimal places should be used to display the value.
Supported CombineMethod values are:
1 first step value, - summary report will show the value of custom metric from very first out-of-sample step.
2 last step value (default), - summary report will show the value of custom metric from the last out-of-sample step.
3 sum, - summary report will show the sum of the values of custom metric from all out of sample steps.
4 average, - summary report will show the average of the values of custom metric from all out of sample steps.
5 minimum, - summary report will show the smallest value of custom metric from all out of sample steps.
6 maximum.- summary report will show the largest value of custom metric from all out of sample steps.
Note that certain metrics calculation methods are complex and for example averaging them would not lead to mathematically correct representation of all out of sample test. Summaries of all built-in metrics are mathematically correct out-of-the-box (i. e. they are *not* averages, but properly calculated metrics using method that is appropriate for given value). This contrasts with custom metrics, because they are user-definable and it is up to the user to select 'combining' method, and still it may happen that none of the available methods is appropriate.
For that reason the report includes the note that explains what user-definable method was used to combine custom metrics.

Комментариев нет:

Отправить комментарий