Testando Um Sistema De Negociação
Trading Systems Codificação: testes, solução de problemas e otimização Agora que você tem um sistema de negociação projetado e codificado, é hora de testá-lo para se certificar de que sua codificação está livre de erros lógicos e técnicos. Nós também vamos olhar para algo conhecido como otimização - um recurso em alguns programas de negociação que permite que você ajuste suas regras de negociação para caber as ações que você planeja na negociação. Testando Seu Sistema de Negociação A grande maioria das aplicações comerciais que suportam linguagens de programação também suportam ferramentas de teste. Essas ferramentas são divididas em duas categorias: 1. Técnico Técnico ferramentas de teste de pesquisa para erros técnicos em seu código. Por exemplo, se você esquecer de adicionar um ponto-e-vírgula após uma instrução, a ferramenta de teste técnico irá notificá-lo de que sua declaração é inválida. A localização da ferramenta de teste técnico depende do aplicativo comercial sendo usado. O MetaTrader exibe um erro ou resultados falhos quando você tenta compilar o código, enquanto os aplicativos comerciais como o Tradecision possuem um utilitário de verificação de código incorporado na interface que permite verificar o código antes de aplicá-lo. 2. Logical As ferramentas de teste lógico pesquisam erros lógicos em seu código. Por exemplo, se você usar um sinal maior do que em vez de um sinal menor (o que não é um erro técnico), uma ferramenta de teste lógico mostrará que seus resultados não fazem sentido. A ferramenta de teste lógica mais popular é a ferramenta de backtesting. Esta ferramenta permite-lhe tirar dados passados e aplicar o seu sistema de negociação a esses dados. Isto dá-lhe uma ideia do seguinte: Se o seu sistema de negociação é rentável 13 Quais condições provam ser mais rentáveis 13 Onde quaisquer erros em suas regras podem existir (Para mais informações, consulte Backtesting: Interpretando o Passado.) Solução de problemas de sua negociação Sistema Como com qualquer outro tipo de programação, a solução de problemas pode ser uma tarefa tediosa e difícil. A localização de erros no seu código requer a triagem sistemática do seu código para identificar erros sintáticos que, embora frequentemente menores, podem interromper o seu programa. Aqui estão alguns erros comuns para procurar: Faltam pontos e vírgulas depois de declarações - Estas têm de ser depois de cada instrução. 13 Variáveis indefinidas - Lembre-se de que você precisa declará-las antes de usá-las 13 Erros ortográficos - Se algum nome ou função estiver escrito incorretamente, o aplicativo de troca retornará um erro (veja o exemplo abaixo). 13 Uso incorreto de () - Lembre-se de que atribui um valor a outro valor, enquanto significa igual a. 13 Uso incorreto de funções internas - Consulte a documentação de aplicativos comerciais ou a interface de programação de aplicativos (API) para certificar-se de que está usando a sintaxe correta. Alguns aplicativos comerciais contêm um recurso que permite testar seu código antes de usá-lo ou compilá-lo. Este recurso permite que você veja qual é o erro e em qual linha ele pode ser encontrado. Tome Tradecision por exemplo: Aqui podemos ver que Tradecision nos dá a localização (linha e coluna) do erro, uma descrição do erro e do tipo de erro (neste caso, é sintática). Se olharmos para a expressão, podemos ver que na coluna 8 xrossBelow não é uma função válida. Se substituirmos o x (que está na coluna 8) por um c, então teremos um código válido. Se olharmos para MetaTrader, podemos ver que os erros surgem quando tentamos compilar o programa: Aqui podemos ver que na descrição diz que a variável BuyNow não estava definida. Clicar duas vezes nesta mensagem de erro nos levará ao local específico do erro no código. Como você pode ver, a maioria das aplicações de negociação dar-lhe uma maneira fácil de localizar erros técnicos e corrigi-los. Corrigir os erros simplesmente envolve sistematicamente passar por cada mensagem de erro e, em seguida, recompilar o código andor ou aplicar o sistema de comércio para seus gráficos. Otimizando Seu Sistema de Negociação Alguns aplicativos comerciais permitem selecionar variáveis a serem otimizadas. Tradecision, por exemplo, permite que você selecione facilmente uma variável e substitua-a por código que tente a otimização. Otimização em si é simplesmente um processo que encontra o valor ideal para um determinado sistema de comércio elemento baseado em resultados anteriores e desempenho. Observe que a sobre-otimização resulta em sistemas de negociação que são incapazes de se adaptar às condições de mercado, portanto, é importante apenas otimizar algumas variáveis importantes, não todas as variáveis Aqui está o que o recurso de otimização parece na Tradecision: Você pode ver que nós declaramos Duas novas variáveis e defini-las igual a. O simplesmente significa que o programa de troca irá substituir isso com o número ideal. Em seguida, você pode ver que nós usamos as novas variáveis dentro de nossa estratégia de negociação. Finalmente, definimos um intervalo para os números (para que o programa não procure no infinito). Alguns outros programas de negociação têm recursos que operam de forma semelhante, permitindo que você substitua o valor numérico com um e dizendo o aplicativo de negociação para otimizá-lo. Conclusão Até agora você deve ter desenvolvido um sistema de comércio de trabalho em que você pode ter confiança. Na próxima parte desta série, você aprenderá a aplicar seu sistema de negociação a gráficos e como usá-lo para tomar decisões comerciais. 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 por isso 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 teste, 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 ele afeta diretamente as entradas e saídas, o gerenciamento de dinheiro e a 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. O teste de gerenciamento de dinheiro de volta permite testar vários modelos de gerenciamento de dinheiro para ver qual funciona melhor com 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 vai 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 comércio você vai precisar de volta testá-lo completamente, 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, força 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 normalmente vem de uma seqüência de negociações perdedoras ou uma oportunidade de 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 o seu sistema em primeiro lugar. Ela não acumulou a necessária confiança necessária para trocar com sucesso 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 Negociação Computadorizada, como mostrado na Caixa 9.1. Fonte: Jurik, M 1999, Negociação Computadorizada: Maximizando o Dia de Negociação e Lucros de Noite, New York Institute of Finance, Nova York. Mas o que é negociação de volta testando exatamente Trading backtesting é 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 trades anteriores. Interpretando 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 de comércio 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 do software de backtesting de negociação não podem ser superestimados. 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 boa 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 de preços. Para testar com sucesso o teste, isso envolveria a obtenção de dados históricos de uma segurança, bem como a relação preço / lucro (razão PE). Tipicamente, os dados históricos de um grupo de ações incluirão apenas os índices aberto, alto, baixo, fechado e de volume Para cada período. Devido a esta limitação, muitos sistemas de negociação mecânica são projetados em torno de indicadores puramente preço técnico. Infelizmente, a maioria dos mecânicos sistema de negociação com base em dados fundamentais está além do escopo de investidores de varejo devido à falta de dados históricos disponíveis para realizar um teste de negociação completa de volta. Software de teste de volta Felizmente, nestes dias, muitos pacotes gráficos têm software de teste de volta construído dentro Se você seguiu o processo de seleção de um pacote de gráficos no capítulo anterior, você deve ter encontrado um com back testando capacidades incluídas ou encontrado um que é compatível Com outro pacote off-the-shelf. Para aqueles de vocês que decidiram comprar o MetaStock no capítulo 8, o TradeSim 8211 ultimate-trading-systemstradesim é provavelmente o simulador de mercado mais realista e verdadeiro que eu encontrei. Ele pode rapidamente testar e avaliar um sistema de negociação, seja uma única segurança ou um portfólio de múltiplas seguranças. Eu acredito que tading o teste traseiro é a única maneira de remover a auto-dúvida. Depois de ter estabelecido que você tem um sistema de comércio confiável e robusto só então você vai ser confiante na negociação dele. Da mesma forma que o seu software de gráficos, certifique-se de conhecer o seu pacote de volta à frente. Você não será capaz de tirar o melhor proveito dela, a menos que você entenda completamente como ele funciona eo que você pode fazer com ele. Soluções alternativas Infelizmente, tenho visto muitos clientes nunca bastante obtê-lo no que diz respeito ao teste de volta. Para muitos, software de teste de volta é simplesmente demasiado técnico. Se você cair nessa categoria, não desista. É um passo crítico no processo de design do sistema. Para os menos técnicos, eu encontrei uma solução chamada Trading Performance Analyzer ultimate-trading-systemstpa. É fácil de usar e perfeito para analisar seu sistema antes de negociá-lo em tempo real. Nota importante: Se você se encontrar testando e re-testing na esperança de tropeçar através dessa bala de prata, lembre-se, você nunca vai criar um sistema comercial que tem uma taxa de 100 sucesso. Muitos tentaram (eu incluído) e todo mundo falhou. Você deve estar à procura de um bom sistema de negociação com drawdown mínimo e um bom risco para recompensa ratio. Many sistemas de negociação têm mais negociações perdedoras do que ganhar e ainda assim eles fazem dinheiro. Como o gerenciamento de dinheiro. (Ver capítulo 6.) A peça final no quebra-cabeças de design de sistema é pegar o sistema de negociação que você projetou nos capítulos anteriores e testá-lo. Ao testar seus sistemas você acabou de se colocar entre os top 1 dos comerciantes, garantindo seu sucesso. Parabéns Comprar um pacote de teste de negociação de volta: TradeSim 8211 ultimate-trading-systemstradesim Analisador de Desempenho de Negociação 8211 ultimatetradingsystemstpa Aprenda o seu software de teste de volta escolhido por dentro e por fora. Back testar seu sistema recém-projetado, incluindo sua entrada, saídas e regras de gestão de dinheiro. Você verificou Portfolio123 Por 50 dólares por mês você tela para variáveis técnicas e fundamentais, backtest-lo, fazer verificações de robustez (entradas aleatórias centenas de vezes para garantir que você não é cereja escolhendo os resultados) e testes de simulação com comprar e vender regras separadas , Deslizamento, universos feitos sob encomenda, blá, blá, blá. Você pode usá-lo por 45 dias como um teste gratuito se você usar o código HKURTIS ao se inscrever para testá-lo. Antes Portfolio123 eu pensei que somente Zacks Research Wizard era uma alternativa de baixo custo 8211, mas centenas de dólares para a versão aguada, viés de sobrevivência e outros problemas 8211 não, obrigado. IMO seu software de grau institucional para cerca de 120 o custo. Jesuraj 7 de março de 2012 às 5:07 am Oi Dave, eu aconteceu de ler este excelente aritcle. Em Metastock, eu gostaria de reservar lucro para apenas metade da minha posição e eu não poderia encontrar uma maneira de fazer isso. Você poderia por favor me avise se tal teste é possível em Metastock. Obrigado e considera JesurajHow para backtest sistemas de negociação e evitar ajuste de curva Para julgar o quão bem um determinado sistema de comércio deve funcionar no futuro, nós backtest-lo em dados do mercado passado. Backtesting aplica um conjunto de regras de negociação a dados históricos para estimar como essas regras teriam realizado se tivéssemos realmente negociado-los. Os bons resultados históricos hipotéticos não garantem que um conjunto de regras funcione bem no futuro. No entanto, os pobres resultados históricos hipotéticos quase certamente significam que um sistema não deve ser negociado em tempo real. O valor percebido do backtesting está enraizado na crença de que as tendências históricas se repetem. Traders têm testado estratégias sobre dados históricos para gerações. No entanto, a prática tornou-se popular com o advento de computadores pessoais e purpose-built sistema de teste de software. Como System Writer, que evoluiu para TradeStation. Este software e um banco de dados históricos permitiram que aqueles sem um fundo de código-escrita para testar idéias do sistema de negociação. A maior compreensão e aceitação de sistemas de negociação, bem como a frustração que muitos encontraram ao tentar construir sistemas de negociação por conta própria, ajudaram o mercado de sistemas de terceiros a florescer ao longo dos anos 90. Futures Truth é uma empresa independente que tem rastreado comercialmente disponíveis sistemas de negociação desde a década de 1980. Atualmente, ele rastreia mais de 500 sistemas. Futures Truth testes sistemas de negociação em tempo real, e não em dados históricos. Isso impede a modificação de regras ao longo do tempo e simula melhor a execução de regras em condições reais de mercado, como períodos de alta volatilidade. De acordo com a Verdade de Futuros, apenas cerca de 45 dos sistemas de rastreamento são rentáveis a longo prazo, enquanto apenas 20 exibiram uma boa relação de risco-benefício. No entanto, esses números provavelmente são melhores do que os populações mais amplas, porque somente aqueles vendedores verdadeiramente confiantes em sua lógica o transformam em Futures Truth para análise em tempo real e crítica pública. Muitos sistemas falham porque faltam uma premissa válida. Em vez disso, os parâmetros de entrada e saída são derivados da mineração de dados. A mineração de dados simplesmente digitaliza dados históricos para regras que teriam funcionado no passado. Muitas vezes, essas regras se encaixam precisamente no passado e não têm nenhuma esperança de trabalhar melhor do que aleatória em dados invisíveis. Em vez disso, o desenvolvimento do sistema deve começar com uma teoria que pode ser testada, analisada e ajustada para aplicação. Este conceito também implica uma perspectiva diferente no próprio teste do sistema: O objetivo do backtesting não é produzir uma coleção de estatísticas de lucro e perda hipotéticas. É para testar a validade da teoria ea precisão das regras na captura da premissa. O teste do sistema é um processo multifacetado dos dados, à escala de tempo, às suposições da entrada da ordem, aos detalhes do contrato e ao controle de risco. Falhar em qualquer um destes pode arruinar um mdash de teste válido de outra forma ou, manipulando-os pode gerar resultados que são muito superiores do que nós conseguiríamos em tempo real. Você precisa fazer isso direito se você esperar para validar mdash ou quando apropriado, invalidar mdash seu sistema. Ferramentas do comércio Existem dois elementos para backtesting: as ferramentas adequadas mdash software e dados mdash e um método científico para desenvolver sistemas usando essas ferramentas. Letrsquos começar por olhar para as ferramentas do comércio. Muitas opções estão disponíveis para testar suas idéias. Eles diferem na facilidade de transformar idéias em código e em como eles lidam com os detalhes, o que pode ter um grande impacto nos resultados. Por exemplo, se um sistema entra em uma ordem de limite, algum software registra um preenchimento se esse preço for tocado. No entanto, dificilmente haverá garantia de que tal ordem teria sido preenchida na negociação real, nem há garantia de que ela não exista. Entrar em paragens garante uma entrada, mas não um preço. Outra questão é registrar os preços reais. Enquanto a maioria dos softwares desenvolvidos profissionalmente já não tem esse problema, ainda é uma preocupação para aqueles que testar sistemas manualmente em planilhas, como o Microsoft Excel. Por exemplo, se um sistema compra em uma parada igual ao fechamento mais um terço da faixa média nos últimos três períodos, e se a faixa média é 10, então estamos comprando no fechamento mais 3.333. Se estamos negociando o E-mini SampP 500, negocia em 0,25 tamanhos de carrapatos. Isso significa que o diferencial de entrada deve arredondar para 3.50. Um comerciante de início não pode perceber isso se manualmente trituração números, e wasnrsquot muito tempo atrás que muitos programas profissionais cometiam o mesmo erro. Com o passar do tempo, esse erro poderia somar uma discrepância considerável. No quadro geral, no entanto, tais detalhes processuais são menores. O grande problema são os dados. Artigos relacionados
Comments
Post a Comment