Saturday 24 June 2017

Testes De Sistemas Comerciais


Codificação de Sistemas de Negociação: Testes, Solução de Problemas e Otimização Agora que você possui um sistema comercial projetado e codificado, é hora de testá-lo para garantir que sua codificação esteja livre de erros técnicos e lógicos. Também veremos algo conhecido como otimização - um recurso em alguns programas de negociação que lhe permitem ajustar suas regras de negociação de acordo com as ações que você planeja negociar. Testando seu sistema de negociação A grande maioria dos aplicativos comerciais que suportam linguagens de programação também suporta ferramentas de teste. Essas ferramentas são divididas em duas categorias: 1. Técnicas As ferramentas de teste técnico buscam erros técnicos em seu código. Por exemplo, se você esquecer de adicionar um ponto-e-vírgula após uma declaraçã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 que está sendo usado. O MetaTrader exibe um erro ou resultados errados quando você tenta compilar seu código, enquanto os aplicativos comerciais como a Tradecision possuem um utilitário de verificação de código incorporado na interface que permite que você cheque seu código para erros antes de aplicá-lo. 2. As ferramentas de teste lógico logístico procuram erros lógicos no seu código. Por exemplo, se você usou um sinal maior que o sinal em vez de um sinal menor que o sinal (o que não é um erro técnico), uma ferramenta de teste lógico irá mostrar que seus resultados não fazem sentido. A ferramenta de teste lógico mais popular é a ferramenta backtesting. Esta ferramenta permite que você tire dados passados ​​e aplique seu sistema de negociação a esses dados. Isso dá uma idéia do seguinte: Se o seu sistema de negociação é lucrativo 13 Quais são as condições que se mostram mais rentáveis ​​13 Onde exista algum erro nas suas regras (Para obter mais informações, consulte Backtesting: Interpretando o Passado.) Solucionando problemas de negociação Sistema Como com qualquer outro tipo de programação, a solução de problemas pode ser uma tarefa tediosa e difícil. Encontrar erros no seu código requer uma classificação sistemática através do seu código para identificar erros sintáticos que, embora com freqüência menores, possam interromper o seu programa. Aqui estão alguns erros comuns a procurar: Semicolons faltantes após declarações - Estas devem ser após cada declaração. 13 Variáveis ​​indefinidas - Lembre-se de que você deve declará-las antes de usá-las. 13 Erros ortográficos. Se algum nome ou função estiver escrito incorretamente, o aplicativo comercial 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 garantir que você esteja usando a sintaxe correta. Alguns aplicativos comerciais contêm um recurso que permitirá que você teste seu código antes de usá-lo ou compilá-lo. Esse recurso permite que você veja qual é o erro e qual linha pode ser encontrada. Pegue a Tradecision, por exemplo: Aqui podemos ver que a Tradecision nos dá a localização (linha e coluna) do erro, uma descrição do erro e o tipo de erro (neste caso, é sintático). Se olharmos para a expressão, podemos ver que na coluna 8 xrossBelow não é uma função válida. Se substituímos o x (que está na coluna 8) com um c, então teremos um código válido. Se olharmos o MetaTrader, podemos ver que os erros surgiram quando tentamos compilar o programa: Aqui podemos ver que, na descrição, a variável BuyNow não foi definida. Clicar duas vezes nessa mensagem de erro nos levará ao local específico do erro no código. Como você pode ver, a maioria dos aplicativos comerciais oferece uma maneira fácil de localizar erros técnicos e corrigi-los. A reparação dos erros envolve simplesmente o envio sistemático de cada mensagem de erro e depois recompilar o código e ou aplicar o sistema de negociação em seus gráficos. Otimizando seu sistema de negociação Algumas aplicações comerciais permitem selecionar variáveis ​​a serem otimizadas. A Tradecision, por exemplo, permite selecionar facilmente uma variável e substituí-la por código que tentará otimizar. A otimização em si é simplesmente um processo que encontra o valor ótimo para um elemento do sistema comercial específico com base em resultados e desempenho anteriores. Note-se que a sobre-otimização resulta em sistemas de negociação que não conseguem se adaptar às condições do mercado, é importante apenas otimizar algumas variáveis ​​importantes, nem todas as variáveis. Aqui está o aspecto da funcionalidade de otimização na Tradecision: você pode ver que declaramos Duas novas variáveis ​​e configurá-las como iguais. Simplesmente significa que o programa de negociação irá substituir isso pelo número ótimo. Em seguida, você pode ver que usamos as novas variáveis ​​dentro de nossa estratégia comercial. Finalmente, estabelecemos um intervalo para os números (para que o programa não procure no infinito). Alguns outros programas de negociação possuem recursos que operam de maneira semelhante, permitindo que você substitua o valor numérico por um e informe o aplicativo de negociação para otimizar. Conclusão Até agora, você deveria ter desenvolvido um sistema comercial comercial em que você possa ter confiança. Na próxima parte desta série, você aprenderá como aplicar seu sistema de negociação em gráficos e como usá-lo para tomar decisões de negociação. Como testar os sistemas de negociação e evitar o ajuste de curva. Para julgar o quão bem um determinado sistema de negociação deve funcionar no futuro, Nós o recuperamos em dados do mercado passado. Backtesting aplica um conjunto de regras de negociação a dados históricos para estimar como essas regras teriam funcionado se tivéssemos negociado. Os bons resultados históricos hipotéticos não garantem que um conjunto de regras funcione bem no futuro. No entanto, os baixos 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. Os comerciantes têm testado estratégias em dados históricos por gerações. No entanto, a prática tornou-se popular com o advento de computadores pessoais e software de teste de sistema criado especificamente. Como System Writer, que evoluiu para a TradeStation. Este software e um banco de dados de dados históricos permitiram que aqueles sem um fundo de escrita de código para testar idéias do sistema comercial. A compreensão e a aceitação mais amplas dos sistemas de negociação, bem como a frustração que muitos encontraram ao tentar construir sistemas de comércio por conta própria, ajudaram o mercado de sistemas de terceiros a prosperar ao longo da década de 1990. Futures Truth é uma empresa independente que rastreou os sistemas comerciais comercialmente disponíveis desde a década de 1980. Atualmente, ele rastreia mais de 500 sistemas. Futuros Verdade testa sistemas comerciais em tempo real, e não em dados históricos. Isso evita a modificação das regras ao longo do tempo e simula melhor a execução das regras nas condições reais do mercado, como períodos de alta volatilidade. De acordo com a Futures Truth, apenas cerca de 45 dos sistemas rastreados são rentáveis ​​a longo prazo, enquanto apenas 20 exibiram uma boa razão de risco. No entanto, esses números provavelmente são melhores do que o populationrsquos em larga escala, porque apenas esses vendedores realmente confiantes em sua lógica passam a Futures Truth para análise em tempo real e crítica pública. Muitos sistemas falham porque não possuem 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 verifica dados históricos para regras que teriam funcionado no passado. Muitas vezes, tais regras são adequadas precisamente ao passado e não têm esperança de trabalhar melhor do que aleatório em dados não vistos. 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 sobre o próprio teste do sistema: o objetivo do backtesting não é produzir uma coleção de estatísticas hipotéticas de lucros e perdas. É testar a validade da teoria e a precisão das regras na captura da premissa. O teste do sistema é um processo multifacetado dos dados, à escala de tempo, aos pressupostos de entrada de pedidos, ao contrato específico e ao controle de riscos. Falhar em qualquer um desses pode arruinar um teste de teste de outra forma ou, manipulá-los pode gerar resultados que são muito superiores aos que conseguiríamos em tempo real. Você precisa fazê-lo direito se você quiser validar o mdash ou, quando apropriado, invalidar o seu sistema. Ferramentas do comércio Existem dois elementos para testar: o software apropriado mdash software e mdash de dados e um método científico para desenvolver sistemas usando essas ferramentas. Letrsquos começa por olhar 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 entrar em uma ordem limite, algum software registra um preenchimento se esse preço for tocado. No entanto, dificilmente há uma garantia de que tal pedido teria sido preenchido na negociação real, nem há garantia de que não seja. Entrar em paradas garante uma entrada, mas não um preço. Outra questão é registrar os preços reais. Embora a maioria dos softwares desenvolvidos profissionalmente já não tenha esse problema, ainda é uma preocupação para aqueles que testam manualmente sistemas em planilhas, como o Microsoft Excel. Por exemplo, se um sistema comprar em uma parada igual ao fechar mais um terço do alcance médio nos últimos três períodos, e se o alcance médio for 10, então estamos comprando no final mais 3.333. Se estamos negociando o E-mini SampP 500, ele opera com 0,25. Isso significa que o diferencial de entrada deve arredondar até 3,50. Um comerciante de início pode não perceber isso se mantiver manualmente números, e não foi há muito tempo que muitos programas profissionais cometiam o mesmo erro. Ao longo do tempo, esse erro poderia se somar a uma discrepância considerável. Em grande escala, no entanto, tais detalhes processuais são menores. O grande problema é o dado. Artigos relacionadosMultiCharts 10 MultiCharts é uma plataforma de negociação premiada Se você precisa de um software de negociação do dia ou você investir por períodos mais longos, o MultiCharts possui recursos que podem ajudar a alcançar seus objetivos de negociação. O gráfico de alta definição, os indicadores e estratégias integrados, o comércio de um clique de gráfico e DOM, backtesting de alta precisão, otimização genética e força genética, execução automática e suporte para scripts EasyLanguage são todas ferramentas importantes à sua disposição. Hoice de corretores e feeds de dados A liberdade de escolha foi a idéia de condução por trás do nosso MultiCharts e você pode vê-lo na ampla escolha de feeds e corretores de dados suportados. Escolha o seu método de negociação, teste-o e comece a negociar com qualquer corretor suportado que você gosta, essa é a vantagem do MultiCharts.

No comments:

Post a Comment