Como testar de volta o seu sistema de negociação


Backtesting O que é Backtesting Backtesting é o processo de testar uma estratégia de negociação em dados históricos relevantes para garantir sua viabilidade antes que o comerciante arrisque qualquer capital real. Um comerciante pode simular a negociação de uma estratégia durante um período adequado de tempo e analisar os resultados para os níveis de rentabilidade e risco. BREAKING DOWN Backtesting Se os resultados satisfazem os critérios necessários que são aceitáveis ​​para o comerciante, a estratégia pode ser implementada com algum grau de confiança que resultará em lucros. Se os resultados forem menos favoráveis, a estratégia pode ser modificada, ajustada e otimizada para alcançar os resultados desejados, ou pode ser completamente descartada. Uma quantidade significativa do volume negociado no mercado financeiro de hoje é feito por comerciantes que usam algum tipo de automação de computador. Isto é especialmente verdadeiro para estratégias de negociação com base em análise técnica. Backtesting é uma parte integrante do desenvolvimento de um sistema de negociação automatizado. Backtesting Significado Quando feito corretamente, backtesting pode ser uma ferramenta inestimável para tomar decisões sobre se deve utilizar uma estratégia de negociação. O período de tempo de amostra em que um backtest é realizado é crítico. A duração do período de tempo de amostragem deve ser suficientemente longa para incluir períodos de condições de mercado variáveis, incluindo tendências de alta, tendências de baixa e negociação de intervalo limitado. Realizar um teste em apenas um tipo de condição de mercado pode produzir resultados únicos que podem não funcionar bem em outras condições de mercado, o que pode levar a conclusões falsas. O tamanho da amostra no número de comércios nos resultados do teste também é crucial. Se o número de amostras de ofícios é muito pequeno, o teste pode não ser estatisticamente significativo. Uma amostra com muitas transações durante um período muito longo pode produzir resultados otimizados em que um número esmagador de trades vencedores coalesce em torno de uma condição de mercado específico ou tendência que é favorável para a estratégia. Isso também pode causar um comerciante para tirar conclusões enganosas. Mantê-lo real Um backtest deve refletir a realidade na medida do possível. Os custos de transacção que de outra forma poderiam ser considerados negligenciáveis ​​pelos operadores quando analisados ​​individualmente podem ter um impacto significativo quando o custo agregado é calculado durante todo o período de backtesting. Estes custos incluem comissões, spreads e derrapagem, e eles poderiam determinar a diferença entre se uma estratégia comercial é rentável ou não. A maioria dos pacotes de software de backtesting inclui métodos para contabilizar esses custos. Talvez a métrica mais importante associada ao backtesting seja o nível de robustez da estratégia. Isto é conseguido comparando os resultados de um teste de volta otimizado em um período de tempo de amostra específico (referido como in-sample) com os resultados de um backtest com a mesma estratégia e configurações em um período de tempo de amostra diferente (referido como out - Da amostra). Se os resultados são igualmente rentáveis, então a estratégia pode ser considerada válida e robusta, e está pronta para ser implementada em mercados em tempo real. Se a estratégia falhar em comparações fora da amostra, então a estratégia precisa de mais desenvolvimento, ou deve ser abandonada completamente. Testando suas idéias de negociação Uma das coisas mais úteis que você pode fazer na janela de análise é fazer back - Teste sua estratégia comercial em dados históricos. Isso pode lhe dar informações valiosas sobre pontos fortes e fracos de seu sistema antes de investir dinheiro real. Este recurso único AmiBroker é pode economizar muito dinheiro para você. Escrevendo suas regras de negociação Primeiro você precisa ter regras objetivas (ou mecânicas) para entrar e sair do mercado. Este passo é a base da sua estratégia e você precisa pensar sobre isso sozinho, pois o sistema deve corresponder a sua tolerância ao risco, tamanho de carteira, técnicas de gerenciamento de dinheiro e muitos outros fatores individuais. Depois de ter suas próprias regras para a negociação você deve escrevê-los como comprar e vender regras em AmiBroker Formula Lanugage (mais curto e tampa se você quiser testar também negociação curta). Neste capítulo, vamos considerar muito básico de média móvel cruzar sistema. O sistema compraria ações / contratos quando o preço próximo sobe acima da média móvel exponencial de 45 dias e venderá ações / contratos quando o preço próximo cair abaixo da média móvel exponencial de 45 dias. A média móvel exponencial pode ser calculada em AFL usando sua função embutida EMA. Tudo o que você precisa fazer é especificar a matriz de entrada eo período de média, de modo que a média móvel exponencial de 45 dias dos preços de fechamento pode ser obtida pela seguinte declaração: O identificador de fechamento refere-se à matriz incorporada que mantém os preços de fechamento do símbolo atualmente analisado . Para testar se o preço de fechamento cruza acima da média móvel exponencial, usaremos função cruzada interna: buy cross (close, ema (close, 45)) A declaração acima define uma regra de negociação de compra. Dá quot1quot ou quottruequot quando o preço próximo cruza acima do ema (próximo, 45). Então, podemos escrever a regra de venda que daria quot1quot quando acontecer a situação oposta - fechar o preço cruza abaixo ema (close, 45): vender cross (ema (close, 45), close) Por favor, note que estamos usando a mesma função cross, A ordem inversa dos argumentos. Assim, a fórmula completa para longos comércios será parecida com esta: comprar cross (close, ema (close, 45)) vender cross (ema, fechar, fechar) NOTA: Para criar uma nova fórmula, abra o Formula Editor usando o Analysis-gtFormula Editor , Digite a fórmula e escolha Tools-gtSend para o menu Análise no editor de fórmulas Para testar o seu sistema basta clicar no botão Voltar teste na janela de análise automática. Certifique-se de ter digitado na fórmula que contém, pelo menos, comprar e vender regras comerciais (como mostrado acima). Quando a fórmula está correta, a AmiBroker começa a analisar seus símbolos de acordo com suas regras de negociação e gera uma lista de negócios simulados. Todo o processo é muito rápido - você pode testar milhares de símbolos em questão de minutos. A janela de progresso mostrará o tempo de conclusão estimado. Se quiser interromper o processo, basta clicar no botão Cancelar na janela de progresso. Quando o processo estiver concluído, a lista de negócios simulados é mostrada na parte inferior da janela de análise automática. (O painel Resultados). Você pode examinar quando os sinais de compra e venda ocorreram apenas clicando duas vezes no comércio no painel Resultados. Isso lhe dará sinais brutos ou não filtrados para cada bar quando as condições de compra e venda forem atendidas. Se você quiser ver apenas setas de comércio único (abertura e fechamento do comércio atualmente selecionado), você deve clicar duas vezes na linha enquanto mantém pressionada a tecla SHIFT. Alternativamente, você pode escolher o tipo de exibição selecionando o item apropriado no menu de contexto que aparece quando você clica no painel de resultados com o botão direito do mouse. Além da lista de resultados, você pode obter estatísticas muito detalhadas sobre o desempenho de seu sistema clicando no botão Relatório. Para saber mais sobre as estatísticas do relatório, consulte a descrição da janela do relatório. Alterando suas configurações de teste de volta O motor de teste de volta no AmiBroker usa alguns valores predefinidos para executar sua tarefa, incluindo o tamanho da carteira, periodicidade (diária / semanal / mensal), quantidade de comissão, taxa de juros, Preço campos e assim por diante. Todas essas configurações podem ser alteradas pelo usuário usando a janela de configurações. Depois de alterar as configurações, lembre-se de executar novamente o teste de volta se desejar que os resultados estejam em sincronia com as configurações. Por exemplo, para testar as barras semanais em vez de diariamente, basta clicar no botão Configurações, selecione Semanalmente na caixa de combinação Periodicidade e clique em OK. Em seguida, execute a análise clicando em Voltar ao teste. Nomes de variáveis ​​reservadas A tabela a seguir mostra os nomes das variáveis ​​reservadas usadas pelo Automatic Analyzer. O significado e os exemplos sobre como usá-los são apresentados mais adiante neste capítulo. Permite a quantidade de dólar de controle ou porcentagem de carteira que é investida no comércio (veja explicações abaixo) Análise Automática (novo em 3.9) Até agora nós discutimos bastante simples uso do testador de volta. AmiBroker, no entanto, suporta métodos muito mais sofisticados e conceitos que serão discutidos mais adiante neste capítulo. Observe que o usuário iniciante deve primeiro jogar um pouco com os tópicos mais fáceis descritos acima antes de prosseguir. Assim, quando você estiver pronto, por favor dê uma olhada nos seguintes recursos recentemente introduzidos do back-tester: a) host AFL script para escritores fórmula avançada b) suporte melhorado para operações curtas c) a maneira de controlar o preço de execução de ordem a partir do Script d) vários tipos de paradas em testador de volta e) dimensionamento de posição f) tamanho de lote redondo e tamanho de carrapato g) conta de margem h) backtesting futuros AFL scripting host é um tópico avançado que é abordado em um documento separado disponível aqui e eu não vou discutir Documento. Recursos restantes são muito mais fáceis de entender. Nas versões anteriores do AmiBroker, se você quisesse back-testar sistema usando longas e curtas operações, você só poderia simular stop-and-reverse estratégia. Quando a posição longa foi fechada, uma nova posição curta foi aberta immediatelly. Foi porque comprar e vender variáveis ​​reservadas foram utilizados para ambos os tipos de comércios. Agora (com a versão 3.59 ou superior) existem variáveis ​​reservadas separadas para abrir e fechar operações longas e curtas: buy - quottruequot ou 1 value abre trading long trade - quottruequot ou 1 value fecha negociação curta short - quottruequot ou 1 value abre short trade cover - quottruequot ou 1 valor fecha comércio curto Som, a fim de back-test negociações curtas que você precisa para atribuir curto e cobrir variáveis. Se você usar o sistema stop-and-reverse (sempre no mercado) simplesmente atribuir vender a curto e comprar para cobrir curto vender cobertura comprar Isto simula o modo pré-3.59 versões trabalhadas. Mas agora AmiBroker permite que você tenha regras de negociação separadas para ir por muito tempo e para ir curto, como mostrado neste exemplo simples: / / long trades entrada e saída regras: comprar cross (cci (), 100) vender cross (100 cci) ) // negociação curta regras de entrada e saída: cruz curta (-100, cci ()) cobertura cross (cci (), -100) Note que neste exemplo se CCI está entre -100 e 100 você está fora do mercado. Controle de preço de comércio AmiBroker agora fornece 4 novas variáveis ​​reservadas para especificar o preço ao qual as ordens de compra, venda, curto e de cobertura são executadas. Esses arrays têm os seguintes nomes: buyprice, sellprice, shortprice e coverprice. A principal aplicação dessas variáveis ​​é controlar o preço do comércio: BuyPrice IIF (dayofweek () 1, HIGH, CLOSE) // em segunda-feira comprar em alta, caso contrário comprar em fechar Assim você pode escrever o seguinte para simular real stop-orders: BuyStop. A fórmula para comprar stop nível SellStop. A fórmula para vender o nível de parada // se em qualquer momento durante o dia os preços sobem acima do nível de buystop (highgtbuystop) // a ordem de compra ocorre (no buystop ou baixa o que for maior) Comprar Cross (High, BuyStop) // se em qualquer momento durante o (Preço de sellstop baixo) // a ordem de venda ocorre (em sellstop ou o mais elevado é o mais baixo) Sell Cross (SellPrice, SellStop) BuyPrice máximo (BuyStop, baixo) // certifica-se compra o preço não menos de Por favor, note que AmiBroker predefinições de preço de compra, sellprice, shortprice e coverprice variáveis ​​de matriz com os valores definidos na janela de configurações de teste do sistema (mostrado abaixo), então você pode, mas Não precisa defini-los na sua fórmula. Se você não os define AmiBroker funciona como nas versões antigas. Durante o back-testing, o AmiBroker verificará se os valores que você atribuiu ao buyprice, sellprice, shortprice, coverprice se encaixam no intervalo alto-baixo da determinada barra. Se não, o AmiBroker irá ajustá-lo a um preço alto (se o preço for maior do que alto) ou ao preço baixo (se o preço for menor do que baixo). Como você pode ver na foto acima, novas configurações para As paradas de destino de lucro estão disponíveis na janela de configurações do teste do sistema. As paradas de meta de lucro são executadas quando o preço alto para um determinado dia excede o nível de parada que pode ser dado como uma porcentagem ou um aumento de ponto do preço de compra. Por padrão, as paradas são executadas ao preço que você define como matriz de preço de venda (para negócios longos) ou matriz de preço de cobertura (para negócios curtos). Esse comportamento pode ser alterado usando QuotExit no stopquot recurso. QuotExit at stopquot feature Se você marcar quotExit at stopquot box nas configurações as paradas serão executadas no nível de parada exata, ou seja, se você definir o objetivo de lucro stop em 10 sua parada eo preço de compra foi de 50 stop order será executado em 55, mesmo se Sua matriz de preço de venda contém valor diferente (por exemplo preço de fechamento de 56). Perda máxima pára de trabalhar de forma semelhante - eles são executados quando o preço baixo para um determinado dia cai abaixo do nível de parada que pode ser dada como uma porcentagem ou aumento de ponto do preço de compra Este tipo de parar é usado para proteger os lucros como ele Acompanha o seu comércio de modo que cada vez que um valor de posição atinge uma nova alta, a parada de arrasto é colocada em um nível mais alto. Quando o lucro cai abaixo do nível de parada final, a posição é fechada. Este mecanismo é ilustrado na imagem abaixo (10 stop de arrasto é mostrado): / um exemplo de implementação de baixo nível de lucro-alvo parar em AFL: / Buy Cross (MACD (), Signal ()) para (i Barcount I) priceatbuy BuyPrice i if (priceatbuy gt 0 SellPrice i gt 1.1 priceatbuy) Vender i 1 SellPrice i 1.1 preçoatbuy priceatbuy 0 else Sell i 0 Este é um novo recurso na versão 3.9. Posição de dimensionamento no backtester é implementado por meio de nova variável reservada PositionSize ltsize arraygt Agora você pode controlar a quantidade de dólar ou percentual de carteira que é investido no número de comércio positivo definir (dólar) montante que é investido no comércio, por exemplo: PositionSize 1000 / / Investir 1000 em todos os números negativos de comércio -100 ..- 1 definir porcentagem: -100 dá 100 do tamanho atual da carteira, -33 dá 33 de capital disponível, por exemplo: PositionSize -50 / sempre investir apenas metade do patrimônio atual / dinâmica Exemplo: PositionSize - 100 RSI () como RSI varia de 0..100 isso resultará em posição dependendo dos valores de RSI - gt valores baixos de RSI resultarão em porcentagem mais alta investida Se menos de 100 de dinheiro disponível é investido então o restante Montante gera taxa de juros conforme definido nas configurações. Há também uma nova caixa de seleção na janela de configurações AA: quotAllow tamanho da posição shrinkingquot - isso controla como backtester lida com a situação quando o tamanho da posição solicitada (através da variável PositionSize) excede o dinheiro disponível: quando esta bandeira é marcada a posição é inserida com o tamanho shinked para Disponível se não estiver selecionado, a posição não será inserida. Para ver os tamanhos de posição reais, use um novo modo de relatório na janela de configurações AA: quotLista comercial com preços e pos. Sizequot Para o fim, aqui está um exemplo de técnica de dimensionamento de posição baseada em Tharps ATR codificada em AFL: Comprar ltyour comprar fórmula heregt Vender 0 // vender apenas por stop TrailStopAmount 2 ATR (20) Capital 100000 / IMPORTANTE: Defini-lo também no A técnica pode ser resumida da seguinte forma: O capital total por símbolo é de 100.000, estabelecemos o nível de risco em 1 do total (em termos de custos) capital próprio. O nível de risco é definido da seguinte forma: se uma parada final em um estoque de 50 é, digamos, 45 (o valor de dois ATRs contra a posição), a perda 5 é dividido em 1000 de risco para dar 200 ações para comprar. Assim, o risco de perda é 1000, mas o risco de alocação é de 200 ações x 50 / ação ou 10.000. Assim, estamos alocando 10 do capital próprio para a compra, mas apenas arriscando 1000. (Excerto editado da lista de discussão AmiBroker) Tamanho do lote e tamanho do carrapato Vários instrumentos são negociados com várias unidades quottradingquot ou quotblocksquot. Por exemplo, você pode comprar o número fracionário de unidades de fundo mútuo, mas você não pode comprar o número fracionário de ações. Às vezes você tem que comprar em 10s ou 100s lotes. AmiBroker agora permite que você especifique o tamanho do bloco no nível global e por símbolo. Você pode definir o tamanho do lote redondo por símbolo na página Symbol-gtInformation (figura 3). O valor de zero significa que o símbolo não tem tamanho de lote redondo especial e usará o quotDefault round lot sizequot (configuração global) da página de configurações da Análise Automática (Figura 1). Se o tamanho padrão também é definido como zero, significa que o número fracionário de ações / contratos é permitido. Você também pode controlar o tamanho do lote redondo diretamente de sua fórmula AFL usando RoundLotSize variável reservada, por exemplo: Esta configuração controla o movimento de preço mínimo do símbolo dado. Você pode defini-lo no nível global e por símbolo. Tal como acontece com o tamanho do lote redondo, pode definir o tamanho do carimbo por símbolo na página Symbol-gtInformation (figura 3). O valor de zero instrui AmiBroker a usar quotdefault tick sizequot definido na página Configurações (figura 1) da janela Automatic Analysis. Se o tamanho padrão do alerta também estiver definido como zero, significa que não há movimento de preço mínimo. Você pode definir e recuperar o tamanho do carrapato também da fórmula AFL usando a variável reservada TickSize, por exemplo: Note que a configuração de tamanho de carrapato afeta somente os comércios fechados por paradas internas e / ou ApplyStop (). O backtester assume que os dados de preço seguem os requisitos de tamanho de tick e não altera os arrays de preço fornecidos pelo usuário. Portanto, especificar o tamanho do tick faz sentido somente se você estiver usando as paradas internas para que os pontos de saída sejam gerados em níveis de preço quotallowedquot em vez dos calculados. Por exemplo, no Japão - você não pode ter partes fracionárias de ienes para que você deve definir ticksize global para 1, assim built-in pára comércios de saída em níveis inteiros. Configuração da margem da conta define o requisito de margem percentual para toda a conta. O valor padrão da margem da conta é 100. Isso significa que você tem que fornecer 100 fundos para entrar no comércio e esta é a maneira como backtester trabalhou em versões anteriores. Mas agora você pode simular uma conta de margem. Quando você compra na margem que você está simplesmente emprestado dinheiro de seu corretor para comprar ações. Com os regulamentos atuais você pode colocar até 50 do preço de compra do estoque que você deseja comprar e emprestar a outra metade de seu corretor. Para simular isso basta digitar 50 no campo Margem da conta (veja a figura 1). Se sua equidade intial for ajustada a 10000 seu poder de compra será então 20000 e você poderá incorporar posições mais grandes. Observe que essa configuração define a margem para a conta inteira e não está relacionada a negociação de futuros. Em outras palavras, você pode negociar ações na conta de margem. QuotRegistro inverso força a saída para as configurações de Backtester. Quando está ligado (a predefinição) - backtester funciona como nas versões anteriores e fecha já positon aberto se novo sinal de entrada no sentido inverso é encontrado. Se este interruptor estiver DESLIGADO - mesmo que o sinal de inversão ocorra, o backtester mantém o comércio atualmente aberto e não fecha a posição até que o sinal de saída regular (venda ou cobertura) seja gerado. Em outras palavras, quando esta opção é OFF backtester ignora sinais curtos durante longos comércios e ignora Buy sinais durante curtas operações. QuotAver a mesma barra de saída (barra única de comércio) quot opção para as configurações Quando é ON (as configurações padrão) - entrada e saída na mesma barra é permitida (como nas versões anteriores) se for OFF - saída pode acontecer a partir de Apenas na barra seguinte (isto aplica-se a sinais regulares, existe uma definição separada para as saídas geradas pelo ApplyStop). Mudar para OFF permite reproduzir o comportamento do MS backtester que não é capaz de lidar com saídas no mesmo dia. QuotActivate pára imediatamentequot Esta definição resolve o problema de testar sistemas que entram em comércios no mercado aberto. Nas versões anteriores a 4.09, o backtester supôs que você estava entrando em negociações no mercado próximo, de modo que as paradas embutidas foram ativadas a partir do dia seguinte. O problema foi quando você de fato definido preço aberto como o preço de entrada de comércio - então flutuações de preço mesmo dia não desencadear as paradas. Houve algumas soluções publicadas baseadas no código AFL, mas agora você não precisa usá-los. Simplesmente se você trocar em aberto, você deve marcar quotActivate pára imediatamentequot (imagem 1). Você pode perguntar por que não basta verificar o buyprice ou shortprice matriz se é igual ao preço aberto. Infelizmente este não funcionará. Por que simplesmente porque há dias doji quando o preço aberto iguala perto e então o backtester nunca saberá se o comércio foi introduzido no mercado aberto ou próximo. Então nós realmente precisamos de um ajuste separado. QuotUse QuickAFLquotQuickAFL (tm) é um recurso que permite um cálculo AFL mais rápido sob certas condições. Inicialmente (desde 2003) estava disponível apenas para indicadores, a partir da versão 5.14 está disponível também na Análise Automática. Inicialmente, a idéia era permitir redraws mais rápidos do gráfico através do cálculo da fórmula AFL apenas para aquela parte que é visível no gráfico. De forma semelhante, janela de análise automática pode usar subconjunto de cotações disponíveis para calcular AFL, se selecionado parâmetro 8220range8221 é menor do que 8220Todos os quotationsquot. Explicação detalhada sobre como QuickAFL funciona e como controlá-lo, é fornecida neste artigo da Base de Dados de Conhecimento: www. amibroker / kb / 2008/07/03 / quickafl / Observe que essa opção funciona não somente no backtest, mas também em otimizações, Explorações e scans. Backtesting: Interpretando o passado Backtesting é um componente-chave do desenvolvimento do sistema de comércio eficaz. É realizado reconstruindo, com dados históricos, negócios que teriam ocorrido no passado usando regras definidas por uma determinada estratégia. O resultado oferece estatísticas que podem ser usadas para avaliar a eficácia da estratégia. Usando esses dados, os comerciantes podem otimizar e melhorar suas estratégias, encontrar quaisquer falhas técnicas ou teóricas, e ganhar confiança em sua estratégia antes de aplicá-lo aos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado é susceptível de funcionar bem no futuro e, inversamente, qualquer estratégia que teve um desempenho ruim no passado é susceptível de funcionar mal no futuro. Este artigo dá uma olhada no que as aplicações são usadas para backtest, que tipo de dados é obtido, e como colocá-lo para usar Os dados e as ferramentas Backtesting pode fornecer abundância de estatística valiosa comentários sobre um determinado sistema. Algumas estatísticas de backtesting universal incluem: Lucro líquido ou perda - ganho ou perda percentual líquido. Prazo - Datas passadas em que o teste ocorreu. Universo - Estoques que foram incluídos no backtest. Medidas de volatilidade - Percentagem máxima de subida e descida. Médias - Percentual de ganho médio e perda média, média de barras mantidas. Exposição - Percentual de capital investido (ou exposto ao mercado). Razões - Relação vitórias-perdas. Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco. Normalmente, backtesting software terá duas telas que são importantes. O primeiro permite que o profissional personalize as configurações para backtesting. Essas personalizações incluem tudo, desde o período até os custos de comissão. Aqui está um exemplo de tal tela no AmiBroker: A segunda tela é o relatório de resultados de backtesting real. Isto é onde você pode encontrar todas as estatísticas mencionadas acima. Mais uma vez, aqui está um exemplo desta tela no AmiBroker: Em geral, a maioria dos softwares comerciais contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para realizar dimensionamento automático da posição, otimização e outros recursos mais avançados. Os 10 mandamentos Há muitos fatores comerciantes atenção para quando eles estão backtesting estratégias de negociação. Aqui está uma lista das 10 coisas mais importantes para lembrar enquanto backtesting: levar em conta as tendências do mercado amplo no período em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia foi apenas testada de 1999 a 2000, pode não ser bem em um mercado de baixa. É muitas vezes uma boa idéia para backtest durante um período de tempo longo que engloba vários tipos diferentes de condições de mercado. Leve em conta o universo no qual o backtesting ocorreu. Por exemplo, se um sistema de mercado amplo é testado com um universo consistindo de ações de tecnologia, pode deixar de fazer bem em diferentes setores. Como regra geral, se uma estratégia é direcionada para um gênero específico de estoque, limitar o universo a esse gênero, mas, em todos os outros casos, manter um grande universo para fins de teste. Medidas de volatilidade são extremamente importantes a considerar no desenvolvimento de um sistema de comércio. Isto é especialmente verdadeiro para as contas alavancadas, que são submetidas a chamadas de margem se a sua equidade desce abaixo de um certo ponto. Os comerciantes devem procurar manter a volatilidade baixa, a fim de reduzir o risco e permitir uma transição mais fácil dentro e fora de um determinado estoque. O número médio de barras mantidas também é muito importante para assistir ao desenvolver um sistema de negociação. Embora a maioria dos backtesting software inclui custos de comissão nos cálculos finais, isso não significa que você deve ignorar esta estatística. Se possível, aumentar o número médio de barras mantidas pode reduzir os custos de comissão e melhorar o retorno geral. A exposição é uma espada de dois gumes. Aumento da exposição pode levar a maiores lucros ou maiores perdas, enquanto diminuição da exposição significa lucros mais baixos ou menos perdas. No entanto, em geral, é uma boa idéia para manter a exposição abaixo de 70, a fim de reduzir o risco e permitir uma transição mais fácil dentro e fora de um determinado estoque. A estatística de ganhos / perdas médios, combinada com a relação ganhos-perdas, pode ser útil para determinar o dimensionamento de posição otimizado e o gerenciamento de dinheiro usando técnicas como o Critério Kelly. (Veja Money Management Usando o Critério Kelly.) Os comerciantes podem assumir posições maiores e reduzir os custos de comissão, aumentando seus ganhos médios e aumentando sua relação ganhos-para-perdas. Retorno anualizado é importante porque é usado como uma ferramenta para comparar os retornos de sistemas contra outros locais de investimento. É importante não só olhar para o retorno global anualizado, mas também para ter em conta o risco aumentado ou diminuído. Isso pode ser feito olhando para o retorno ajustado ao risco, que explica vários fatores de risco. Antes de um sistema de negociação ser adotado, ele deve superar todos os outros locais de investimento em igual ou menos risco. Backtesting personalização é extremamente importante. Muitas aplicações backtesting têm entrada para valores de comissão, tamanhos de lote redondos (ou fracionários), tamanhos de carrapatos, requisitos de margem, taxas de juros, pressupostos de deslizamento, regras de dimensionamento de posição, regras de saída da mesma barra, configurações de parada e muito mais. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o corretor que será usado quando o sistema for ativado. Backtesting às vezes pode levar a algo conhecido como super-otimização. Esta é uma condição onde os resultados de desempenho são ajustados tão altamente ao passado que eles não são mais precisos no futuro. É geralmente uma boa idéia implementar regras que se aplicam a todas as ações ou um conjunto selecionado de ações segmentadas e não são otimizadas na medida em que as regras não são mais compreensíveis pelo criador. Backtesting nem sempre é a maneira mais precisa para avaliar a eficácia de um determinado sistema de comércio. Às vezes, as estratégias que funcionaram bem no passado não conseguem fazer bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de comércio de papel de um sistema que foi testado com sucesso antes de ir ao vivo para ter certeza de que a estratégia ainda se aplica na prática. Conclusão Backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema comercial. Se criado e interpretado corretamente, pode ajudar comerciantes a aperfeiçoar e melhorar suas estratégias, encontrar todas as falhas técnicas ou teóricas, assim como ganhar a confiança em sua estratégia antes de aplicá-la aos mercados reais. Recursos Tradecision (www. tradecision) - Desenvolvimento de Sistemas de Negociação de Alto Nível AmiBroker (www. amibroker) - Desenvolvimento do Sistema de Negociação de Orçamento. Uma pessoa que negocia derivados, commodities, obrigações, acções ou moedas com um risco superior à média em troca de. QuotHINTquot é uma sigla que significa quothigh renda não impostos. quot É aplicado a high-assalariados que evitam pagar renda federal. Um fabricante de mercado que compra e vende títulos corporativos de curto prazo, chamados de papel comercial. Um negociante de papel é tipicamente. Uma ordem colocada com uma corretora para comprar ou vender um número definido de ações a um preço especificado ou melhor. A compra e venda irrestrita de bens e serviços entre países sem a imposição de restrições, tais como. No mundo dos negócios, um unicórnio é uma empresa, geralmente uma start-up que não tem um registro de desempenho estabelecido. Backtech Backtech estratégia Backtesting é uma ferramenta essencial para ver se sua estratégia funciona ou não. Software de Backtesting simula sua estratégia em dados históricos e fornece um relatório de backtesting, que permite que você conduza a análise apropriada do sistema negociando. A versão de 64 bits permite carregar o máximo de dados necessários para o backtesting mais exigente. Para obter informações técnicas sobre este recurso, consulte a página Wiki relacionada. A precisão é fundamental A MultiCharts é uma solução criada especificamente para desenvolvimento de estratégia e backtesting. Nossa filosofia é que o backtesting de estratégia deve ser tão realista quanto a tecnologia moderna permite - é por isso que usamos multi-threading e tecnologia de 64 bits. Suposições mínimas criam testes mais realistas Mesmo que nenhuma aproximação possa ser 100 perfeita, fizemos tudo para recriar com precisão as condições de mercado passadas e a execução de ordens para negociação de estratégia. Motores de backtesting típicos têm um monte de suposições e atalhos, que resultam em testes irrealistas e resultados não confiáveis. MultiCharts é uma plataforma de negociação de nível institucional que minimiza suposições e considera muitos fatores. Tecnologias modernas para computadores poderosos A estratégia de backtesting muitas vezes precisa de muitos dados e software que é capaz de processá-lo. Quase todos os computadores agora apresentam configurações multi-core com muita memória, então você precisa aproveitar isso. Multi-threading significa que MultiCharts espalha muitas tarefas em diferentes núcleos, de modo que eles completam muito mais rápido. A versão de 64 bits do MultiCharts permite carregar tantos dados como se encaixam em sua memória para análise - até anos e anos de dados de carrapatos para movimentos de preços detalhados. Simulação de tick-by-tick Chamamos esse recurso de Bar Magnifier. É essencial para aumentar a precisão durante o backtesting. MultiCharts pode construir barras maiores fora de compassssecond menor e barras de minutos fora de carrapatos, horas e barras de dia fora de minutos. Você pode recriar movimentos de preços exatos dentro de cada barra usando a lupa de barra, que construirá barras maiores fora de componentes menores. Por exemplo, barras de uma hora têm quatro pontos visuais abertos, altos, baixos e próximos. O Bar Magnifier pode invisivelmente carregar minutos que compõem a hora, ea estratégia será backtested em uma base minuto-a-minuto. Pergunte, lance e preços comerciais Backtesting leva em conta que a compra real acontece a preços de pedir, venda real a preços de oferta. Isso torna nossa simulação backtesting o mais realista possível.9. Back Testing A arte de testar de volta Como eu já mencionei antes, uma das coisas que eu realmente amo sobre a negociação é que, ao contrário de qualquer outro negócio, você pode testar completamente o seu modelo de negócio (plano de negociação) sem arriscar dinheiro real. Na negociação, este processo de avaliação é chamado de volta testing. Back testes é a área agora mais negligenciada pelos comerciantes. Ive falou sobre a importância da psicologia e gestão de dinheiro em capítulos anteriores e assim tem um monte de outros treinadores de negociação. Tanto assim, há agora um bevy da informação e da consciência ao redor. Você só tem que navegar na net para ver o quanto foco é colocado sobre estas áreas como deve haver. Mas toda esta atenção parece ser à custa de back testing. Como resultado da negociação de volta de testes, eu acho, tornou-se agora a nova área menos compreendida e apreciada de negociação. Por que o teste de volta é tão importante? O teste de troca de volta é mais importante porque impacta diretamente em suas entradas e saídas, gerenciamento de dinheiro e psicologia das seguintes maneiras. O teste de entradas e saídas permite testar todo o desempenho do sistema usando dados históricos. Com essa informação, você pode fazer os ajustes necessários para produzir os resultados que você está procurando. Dinheiro gestão back testar permite testar vários modelos de gestão de dinheiro para ver qual funciona melhor com o seu sistema. Psicologia como discutido anteriormente no livro, a compreensão de seus sistemas de pontos fortes e fracos, mesmo que eles estão apenas no papel irá melhorar a sua confiança comercial. Isso terá um efeito indizível sobre o seu desempenho quando você começar a negociar de verdade. Seja qual for o critério de análise técnica que você usa para negociar com as médias móveis, castiçais, fugas de volatilidade, retrocessos Fibonacci ou qualquer outro sistema de negociação você vai precisar para testá-lo de volta, a fim de remover qualquer dúvida possível sobre sua capacidade. Sem negociação de volta testes, surge uma falta de confiança e, normalmente, obriga os comerciantes a questionar seus próprios sistemas de negociação. Eles cedem à tentação de modificar seu plano de negociação, muitas vezes com consequências devastadoras. Esta tentação geralmente vem de uma seqüência de negociações perdendo ou uma oportunidade para substituir seu sistema de comércio com um novo indicador whiz-bang que é a última moda falada em fóruns de bate-papo. Qualquer coisa que parece bom demais para ser verdade vai atrair a atenção de um comerciante que não está satisfeito com seu sistema comercial, simplesmente porque ela não testou adequadamente seu sistema em primeiro lugar. Ela não acumulou a necessária confiança necessária para trocar com êxito o sistema que desenvolveu. A minha estratégia de negociação será rentável Esta é a pergunta mais frequente no mundo do comércio. O autor Mark Jurik teve um ir em respondê-lo em seu livro Computerized Trading, como mostrado na caixa 9.1. Fonte: Jurik, M 1999, Negociação Informatizada: Maximizando o Dia de Negociação e os Lucros de Noite, Instituto de Finanças de Nova York, Nova York. Mas o que é negociação de volta testando exatamente backtesting Trading é o processo de testar uma estratégia comercial usando dados históricos, em vez de testá-lo em tempo real com dinheiro real. As métricas obtidas a partir do teste podem ser usadas como uma indicação de quão bem a estratégia teria executado se tivesse sido aplicada a negócios anteriores. Interpretar esses resultados, em seguida, fornece ao comerciante com métricas suficientes para avaliar o potencial do sistema de comércio. Logicamente, sabemos que os resultados deste tipo de teste não será capaz de prever retornos futuros com precisão pontual no entanto, ele pode fornecer um indicador sobre se você deve mesmo perseguir um sistema comercial ou não. O que é mais, se você decidir ir em frente e trocar o sistema, ele vai lhe dar guias sobre o que esperar. Mas a questão permanece: como você pode testar um desempenho de sistemas de negociação ao longo do tempo Existem apenas duas maneiras de fazer isso manualmente ou com software de computador. Para ser honesto, o software de computador é a única opção real. Eu tentei ambos os métodos de teste e testes manuais não é apenas demorado, mas muito difícil de replicar e testar de forma eficaz. Os benefícios derivados da negociação backtesting software não pode ser superestimada. Ele vai lhe poupar tempo e proporcionar uma oportunidade infinita para afinar e testar seu sistema. Um pequeno investimento em capital para comprar software de teste de volta bom potencialmente você vai economizar milhares no mercado é um investimento muito sábio, se você está pensando em projetar um sistema comercial bem sucedido e mecânico. Mecânica back testing Por favor, entenda, desde que o seu sistema de negociação mecânica trabalha exclusivamente com dados de preços (aberto, alto, baixo, fechar, volume), você será capaz de usar software de teste de volta. Por exemplo, digamos que você crie um sistema de negociação mecânico com a seguinte regra de entrada: Regra: Compre uma garantia quando a média móvel de 10 dias do preço de fechamento ultrapassar a média móvel de 30 dias do preço de fechamento. Esta regra pode ser testada muito facilmente sobre os dados históricos. Por outro lado, a regra do sinal de compra pode ser um pouco mais complexa, como: Regra: Compre uma garantia quando a média móvel de 10 dias do preço de fechamento ultrapassar a média móvel de 30 dias do preço de fechamento ea relação PE 75 ou inferior ao seu valor três meses antes. Esta regra introduz dados que muitas vezes não são fornecidos ou mantidos em um banco de dados de informações sobre preços. To successfully back test this would involve obtaining historical data of a security as well as the price-to-earnings ratio (PE ratio).Typically, historical data on a group of equities would only include the open, high, low, close and volume for each period. Because of this limitation, many mechanical trading systems are designed around purely price technical indicators. Unfortunately most mechanical trading system based on fundamental data is beyond the scope of retail investors due to the lack of historical data available to conduct a complete trading back test. Back testing software Fortunately, these days, many charting packages have back testing software built in. If you followed the process for selecting a charting package in the previous chapter, you should have either found one with back testing capabilities included or found one that is compatible with another off-the-shelf package. For those of you who decided to purchase MetaStock in chapter 8, TradeSim 8211 www. ultimate-trading-systems/tradesim is probably the most realistic, true trading simulator/analyser I have found. It can quickly back test and evaluate a trading system, whether a single security or a multiple-security portfolio. I believe tading back testing is the only way to remove self-doubt. Once you have established that you have a reliable and robust trading system only then will you be confident in trading it. Similarly to your charting software, make sure you know your package back to front. You wont be able to get the best out of it unless you fully understand how it works and what you can do with it. Alternative Solutions Sadly, I have seen many clients never quite get it with regards to back testing. For many, back testing software is simply too technical. If you fall into that category, dont give up. Its a critical step in the system design process. For the less technical, I have found a solution called the Trading Performance Analyzer www. ultimate-trading-systems/tpa . Its easy to use and perfect for analysing your system before trading it real time. Important note: If you find yourself testing and re-testing in the hope of stumbling across that silver bullet, remember, you will never create a trading system that has a 100 success rate. Many have tried (myself included) and everyone has failed. You should be looking for a good trading system with minimal drawdown and a good risk-to-reward ratio. Many trading systems have more losing trades than they do winning and yet they still make money. How Money management . (See chapter 6.) The final piece in the system-design jigsaw puzzle is to take the trading system you have designed in the previous chapters and test it. By testing your systems you have just put yourself among the top 1 of traders, ensuring your success. Congratulations Actions Purchase a trading back testing package: TradeSim 8211 www. ultimate-trading-systems/tradesim Trading Performance Analyzer 8211 www. ultimatetradingsystems/tpa Learn your chosen back testing software inside and out. Back test your newly designed system including your entry, exits, and money management rules. Have you checked out Portfolio123 For 50 bucks a month you screen for fundamental and technical variables, backtest it, do robustness checks (random entries hundreds of times to ensure you are not cherry picking the results), and simulation testing with seperate buy and sell rules, slippage, custom universes, blah, blah, blah. You can use it for 45 days as a free trial if you use the code HKURTIS when signing up to test it out. Before Portfolio123 I thought only Zacks Research Wizard was a low cost alternative 8211 but hundreds of dollars for the watered down version, survivorship bias, and other problems 8211 no thank you. IMO its institutional grade software for about 1/20th the cost. Jesuraj March 7, 2012 at 5:07 am Hi Dave, I happened to read this excellent aritcle. In Metastock, I would like to book profit for only half my position and I could not find a way of doing this. Could you please let me know whether such testing is possible in Metastock. Thanks and regards Jesuraj

Comments