Monday 13 November 2017

Código Do Sistema Comercial


Trading Systems Coding Os sistemas de negociação são simplesmente conjuntos de regras que os comerciantes usam para determinar suas entradas e saídas de uma posição. Desenvolver e usar sistemas de negociação pode ajudar os comerciantes a obter retornos consistentes, limitando o risco. Em uma situação ideal, os comerciantes devem se sentir como robôs, executando trades de forma sistemática e sem emoção. Então, talvez você tenha se perguntado: o que é para impedir que um robô negocie meu sistema. A resposta: Nada. Este tutorial irá apresentá-lo às ferramentas e técnicas que você pode usar para criar seu próprio sistema de negociação automatizado. Como são os Sistemas de Negociação Automatizados Criados Os sistemas de negociação automatizados são criados convertendo suas regras de sistemas comerciais em códigos que seu computador pode entender. O seu computador executa essas regras através do seu software de negociação, que procura trocas que adiram às suas regras. Finalmente, os negócios são colocados automaticamente com seu corretor. Este tutorial se concentrará nas segunda e terceira partes deste processo, onde suas regras são convertidas em um código que seu software comercial pode entender e usar. O que o software de negociação suporta sistemas de negociação automatizados Existem muitos programas de negociação que suportam sistemas de negociação automatizados. Alguns gerarão automaticamente e colocam trocas com seu corretor. Outros encontrarão automaticamente negócios que atendam aos seus critérios, mas exigem que você coloque os pedidos com seu corretor manualmente. Além disso, os programas de negociação totalmente automáticos geralmente exigem que você use corretoras específicas que ofereçam suporte a tais recursos, você também pode ter que preencher um formulário de autorização adicional. Vantagens e desvantagens Os sistemas de negociação automatizados têm vários benefícios, mas também têm suas desvantagens. Afinal, se alguém tivesse um sistema de negociação que ganhasse dinheiro automaticamente o tempo todo, ele ou ela seria, literalmente, possuir uma máquina de fazer dinheiro. Vantagens: um sistema automatizado leva a emoção e ocupado - trabalha fora da negociação, o que permite que você se concentre em melhorar Sua estratégia e regras de gerenciamento de dinheiro. 13 Uma vez que um sistema lucrativo é desenvolvido, não requer nenhum trabalho de sua parte até que ele queque, ou as condições do mercado exigem uma mudança. Desvantagens: se o sistema não estiver corretamente codificado e testado, grandes perdas podem ocorrer muito rapidamente. 13 Às vezes, é impossível colocar certas regras em código, o que dificulta o desenvolvimento de um sistema de negociação automatizado. Neste tutorial, você aprenderá como planejar e projetar um sistema de negociação automatizado, como traduzir esse design para o código que seu computador irá entender, como testar seu plano para garantir o melhor desempenho e, finalmente, como colocar seu sistema em uso. Codificação de sistemas de negociação: Design de sistema Os sistemas de negociação automatizados minimizam as emoções, permitem uma entrada de pedidos mais rápida, levam a uma maior consistência e a resolver problemas de erro-piloto. Os comerciantes de sistemas dividem seu tempo entre negociação, desenvolvimento, backtesting, otimização e testes avançados, para criar sistemas de negociação viáveis ​​e de alta probabilidade. O software automatizado de negociação forex analisa o mercado para negociações favoráveis ​​com base na sua contribuição. Saiba mais sobre esta valiosa ferramenta forex. Ao misturar boas análises com implementação efetiva, você pode melhorar drasticamente seus lucros neste mercado. Aprenda a adicionar estrutura aos seus métodos de negociação com estas seis etapas importantes. A maioria dos corretores fornecerá registros comerciais, mas também é importante manter o controle por conta própria. O software tornou a negociação diária rápida e automática - mais razões para ser tão cuidadoso quanto possível ao escolher o caminho certo para suas necessidades. É impossível evitar o desastre sem regras de negociação - certifique-se de saber como elaborá-los para você. Essas etapas farão de você um comerciante mais disciplinado, mais esperto e, em última instância, mais rico. Perguntas freqüentes A depreciação pode ser usada como uma despesa dedutível para reduzir os custos tributários, reforçando o fluxo de caixa. Saiba como Warren Buffett se tornou tão bem sucedido por meio de sua participação em várias escolas de prestígio e suas experiências do mundo real. O Instituto CFA permite a um indivíduo uma quantidade ilimitada de tentativas em cada exame. Embora você possa tentar o exame. Conheça os salários médios do analista de mercado de ações nos EUA e diferentes fatores que afetam salários e níveis globais. Perguntas freqüentes A depreciação pode ser usada como uma despesa dedutível para reduzir os custos tributários, reforçando o fluxo de caixa. Saiba como Warren Buffett se tornou tão bem sucedido por meio de sua participação em várias escolas de prestígio e suas experiências do mundo real. O Instituto CFA permite a um indivíduo uma quantidade ilimitada de tentativas em cada exame. Embora você possa tentar o exame. Saiba mais sobre os salários médios dos analistas do mercado de ações nos EUA e diferentes fatores que afetam os salários e os níveis gerais. O código comercial do Sistema de Biblioteca de Códigos é divulgado em várias postagens, pode ser uma boa idéia consolidá-los todos em um lugar (aqui) antes disso Torna-se um pouco incomodado, eu também escrevo mensalmente para a revista Análise Técnica de Stocks e Commodities (TASC) em sua seção Dicas Trader8217s (principalmente código Trading Blox). Por favor, encontre tudo abaixo para sua leitura: 8212 TASC magazine Traders8217 Dicas 8212 TASC Traders Tips (abril de 2010): modificado Volume Preço Tendência Indicador no Excel No artigo Modificado Volume-Preço Tendência Indicador nesta edição, o autor David Hawkins discute uma modificação de O indicador de tendência do preço do volume (VPT), ​​já baseado no indicador de volume no balanço desenvolvido originalmente por Joseph Granville. Link para traders8217 dicas link para arquivo Excel TASC Traders Tips (maio de 2010): Suavização b em Trading Blox Em 8220Smoothing o artigo Bollinger b8221, o autor Sylvain Vervoort explica como remover o ruído do indicador tradicional b, usado para identificar pontos de viragem claros e divergências . Link para dicas de traders8217 link para o arquivo tbx TASC Traders Tips (dezembro de 2010): Hull Moving Average In Trading Indexes com a média de Hull Moving nessa edição, o autor Max Gardner explica como usar a média móvel de Hull para o tempo de mercado de longo prazo. Link para traders8217 dicas link para o arquivo tbx 8212 MISC 8212 8212 CSI Unfair Advantage API 8212 RetrieveBackAdjustedContract2 Documentação da função da API Guia de referência sobre esta função essencial tirada do documento da API CSI. Link para o link de publicação original para o documento RTF Recuperar o contrato de futuros ajustado de volta Alguns exemplos de código em C usando a API para acessar uma das funções mais importantes para recuperar qualquer contrato de futuros com qualquer tipo de ajuste de retorno oferecido pelo CSI. Link para o link de publicação original para o arquivo de origem CS CSI Individual Contracts Extractor Um utilitário para extrair contratos individuais do CSI8217s Unfair Advantage Database em arquivos de texto simples. Link para o link de publicação original para o arquivo zip que contém o EXE 8212 Variação de estoque do Trading Blox 8212 MMDI no clássico Filtro de portfólio MACD, usando o indicador Moving Median em vez da média móvel padrão para a média rápida. Link para link de publicação original para arquivo de bloco (tbx) Indicadores Vortex e AVX aprimorados e sistema AVX O indicador Vortex original teve uma falha (gerenciamento de lacunas para mercados não-Forex) e não usou uma média móvel exponencial para suavização. Esta é a minha versão melhorada com um sistema de reversão básico usando-o para entriesexits link para link de publicação original para arquivo zip (contendo: Vortex Indicator 038 Arquivo de bloco auxiliar AVX (tbx), AVX Entry Exit block (tbx), AVX System (tbs)) 8212 R Código 8212 Walk-Forward implementação de Vince8217s Leverage Space Model Utiliza o pacote LSPM R (por Josh Ulrich) em uma abordagem walk-forward para permitir uma metodologia de teste de teste adaptativo. Link para publicação original com explicações necessárias arquivo de código R 8212 cálculo da relação e-ratio AmiBroker 8212 O e-ratio é uma maneira prática de avaliar a borda de um componente específico de um sistema sem ter que testar o sistema como um todo (ou seja, a borda do Sinal de entrada apenas). Link para a publicação original (inclui todos os trechos de código e lógica necessários) 8212 Cálculo de razão eletrônica TradersStudio 8212 para o sistema Donchian Channel Breakout Este código contém o código genérico necessário para calcular o e-ratio, bem como uma implementação para aplicar o cálculo a um Donchian Sinal de entrada de canal de saída. Link para o link de publicação original para o arquivo zip (contendo o código TS do Indicador de Canal Donchian, o Código de TS do Relatório de comércio personalizado, o código do TS do Sistema de Compra, o Código do TS do Sistema de Venda, a macro do e-ratio do Excel (arquivo de texto), o livro do exemplo do Excel) Verifique a lista de Mercados globais de futuros A Wisdom Trading oferece acesso, desde o milho na África do Sul, ao Palm Oil na Malásia até o won coreano, o Real brasileiro ou o Kerosene japonês para citar alguns, é impressionante e excelente para se beneficiar da diversificação. Au. Tra. Sy blog, Systematic Trading, pesquisa e desenvolvimento, com um sabor de Trend Following. Descargo de responsabilidade: o desempenho passado não é necessariamente indicativo de resultados futuros. O comércio de futuros é complexo e apresenta o risco de perdas substanciais como tal, pode não ser adequado para todos os investidores. O conteúdo deste site é fornecido apenas como informação geral e não deve ser tomado como conselho de investimento. Todo o conteúdo do site, não deve ser interpretado como uma recomendação para comprar ou vender qualquer instrumento financeiro ou de segurança, ou para participar de qualquer estratégia de negociação ou de investimento específica. As idéias expressas neste site são apenas as opiniões do autor. O autor pode ou não ter uma posição em qualquer instrumento financeiro ou estratégia acima referida. Qualquer ação que você toma como resultado de informações ou análises neste site é, em última instância, sua única responsabilidade. RESULTADOS DE DESEMPENHO HIPOTÉTICOS TEM MUITAS LIMITAÇÕES INERENTES, ALGUNS DESCRITOS ABAIXO. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VÁ OU SEJA PROBABILITÁVEL PARA ALCANÇAR LUCROS OU PERDAS SIMILARES ÀQUELES MOSTRADOS EM FATO, HÁ DIFERENÇAS FREQUENTEMENTE SHARP ENTRE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E OS RESULTADOS REAIS ASSOCIADOS SUBSQUECIMENTAMENTE POR QUALQUER PROGRAMA PARTICULAR DE NEGOCIAÇÃO. UMA DAS LIMITAÇÕES DOS RESULTADOS DE DESEMPENHO HIPOTÉTICOS É QUE PREPARAM GERALMENTE COM O BENEFÍCIO DE HINDSIGHT. ADICIONALMENTE, O NEGOCIAÇÃO HIPOTÉTICA NÃO IMPORTA RISCOS FINANCEIROS, E NENHUM GRUPO DE NEGOCIAÇÃO HIPOTÉTICA PODE COMPLETAMENTE CONTA PARA O IMPACTO DO RISCO FINANCEIRO DE NEGOCIAÇÃO REAL. POR EXEMPLO, A CAPACIDADE DE PERDAS OU DE ADESIVO PARA UM PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO EM ESPIRRO DE PERDAS DE NEGOCIAÇÃO SÃO PONTOS MATERIAIS QUE PODEM IGUALMENTE AFETAR EFECTUAR RESULTADOS REAIS DE NEGOCIAÇÃO. HÁ NOMBROSOS OUTROS FATORES RELACIONADOS COM OS MERCADOS EM GERAL OU NA EXECUÇÃO DE QUALQUER PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO QUE NÃO PODE SER COMPLETAMENTE COMPTABILIZADO NA PREPARAÇÃO DE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E TODOS OS QUE PODEMOS ADVERSAMENTE EFECTUAR OS RESULTADOS DE NEGOCIAÇÃO. ESTES TABELOS DE DESEMPENHO E RESULTADOS SÃO HIPOTÉTICOS DE NATUREZA E NÃO REPRESENTAM NEGOCIAÇÃO EM CONTAS REAIS. Copiar 2009-2012 Au. Tra. Sy blog 8211 Automated trading System mdash Sitemap mdash Desenvolvido por WordpressDisclaimer RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INHERENTES. NÃO GOSTO DE UM REGISTO DE DESEMPENHO REAL, RESULTADOS SIMULADOS NÃO REPRESENTAM NEGÓCIO REAL. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO SEJAM REALMENTE EXECUTOS, OS RESULTADOS PODEM TENER SOB OU COMENTÁRIOS COMPLEMENTARES PARA O IMPACTO, SE HAVER, DE CERTOS FATORES DE MERCADO, TAL COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE NENHUMA CONTA VOCE OU POSSIBILIDADE DE ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS. EasyLanguage e TradeStation são marcas registradas da TradeStation Technologies, Inc. Introdução Uma das maiores tendências no comércio varejista na última década foi o aumento na popularidade do comércio automatizado. Neste tipo de negociação, também conhecido como a execução automatizada de ordens, os sinais de compra e venda gerados por um sistema de negociação são executados automaticamente por uma plataforma conectada à conta corretora de corretores. Isso permite o comércio livre de mãos, o que permite uma execução mais rápida, menos erros e a capacidade de trocar prazos mais curtos com estratégias de maior freqüência. À medida que mais e mais comerciantes se mudaram para negociação automatizada, o interesse em estratégias de negociação sistemática aumentou. Enquanto alguns comerciantes desenvolvem suas próprias estratégias de negociação, muitos comerciantes não possuem habilidades de programação necessárias para implementar suas idéias. Outros comerciantes não possuem o conhecimento específico dos métodos de negociação técnica ou a experiência necessária para projetar uma estratégia viável. Mesmo para os comerciantes com as habilidades necessárias para o desenvolvimento de sistemas comerciais, o tempo e o esforço consideráveis ​​necessários para desenvolver uma boa estratégia são muitas vezes um impedimento. Uma solução recentemente desenvolvida para esse problema é o uso de algoritmos de computador para gerar automaticamente o código do sistema comercial. O objetivo desta abordagem é automatizar muitas das etapas do processo tradicional de desenvolvimento de sistemas de negociação. Na abordagem tradicional e manual para o desenvolvimento de estratégias, o comerciante seleciona elementos da estratégia de negociação com base na experiência prévia e no conhecimento de indicadores técnicos, tipos de pedidos de entrada e saída e design estratégico. Comumente, uma estratégia é baseada em uma hipótese de mercado que é, uma idéia de como o mercado funciona. Uma estratégia de negociação viável geralmente é desenvolvida através de um longo processo de tentativa e erro que envolve inúmeras iterações, revisões e testes até que resultados aceitáveis ​​sejam alcançados. Este processo tradicional de desenvolvimento de sistemas comerciais é extremamente demorado e envolve a eliminação sistemática de muitas idéias que simplesmente não funcionam. Além disso, todos os comerciantes têm tendências sobre como os mercados funcionam, e esses distorses podem influenciar o processo de desenvolvimento do sistema. Em alguns casos, esses viés podem ser úteis, mas também podem limitar os possíveis sistemas que o comerciante pode considerar. Ao invés de começar com uma visão tendenciosa e um conjunto limitado de regras, um gerador de código automático começa com um grande conjunto de regras e pesquisas de forma imparcial para as combinações que funcionam enquanto eliminam rapidamente aqueles que não. Este artigo apresenta uma visão geral dos métodos de geração automática de código para construção de sistemas de negociação. São discutidos métodos simples e complexos. Um método ad hoc simples é apresentado que pode ser implementado na linguagem de script TradeStations EasyLanguage para encontrar estratégias básicas baseadas em padrões de preços. Uma abordagem mais complexa baseada na programação genética também é discutida. A geração automática de sistemas de negociação é uma ideia atrativa. No entanto, existem várias desvantagens também. Por um lado, abordagens rigorosas, como as baseadas na programação genética, são complexas e difíceis de implementar. Além disso, a geração automática de código geralmente depende da simulação histórica, o que significa que é um processo de otimização. Como tal, o risco de sobreposição deve ser abordado. Essas advertências também são discutidas. A Abordagem Básica O algoritmo básico para a construção de sistemas de negociação usando a geração automática de código é descrito abaixo na Fig. 1. Começa com um método para combinar diferentes elementos da estratégia de negociação. Esses elementos podem incluir vários indicadores técnicos, como médias móveis, estocásticos e assim por diante diferentes tipos de pedidos de entrada e saída e condições lógicas para entrar e sair do mercado. Figura 1. Algoritmo básico para a construção automatizada de estratégias. Depois que os diferentes elementos são combinados em uma estratégia coerente, ele pode ser avaliado no mercado ou mercados de interesse. Isso exige preços de dados de mercado, volume, interesse aberto, etc. para cada mercado. De um modo geral, você também terá um conjunto de objetivos de construção para ajudar a classificar ou marcar cada estratégia. Exemplos de objetivos de construção incluem várias medidas de desempenho, como o lucro líquido, redução, porcentagem de vencedores, fator de lucro e assim por diante. Estes podem ser declarados como requisitos mínimos, como um fator de lucro de pelo menos 2.0 ou como objetivos para maximizar, como maximizar o lucro líquido. As etapas de geração e avaliação da estratégia são repetidas até que os critérios de término sejam atendidos. Os critérios de término podem ser tão simples como criar um número predeterminado de estratégias diferentes, ou o processo pode ser interrompido depois que nenhuma melhoria adicional nas metas de construção é alcançada. Normalmente, um algoritmo de otimização é usado para orientar as estratégias para com os objetivos de construção. As estratégias finais são aquelas com maior classificação ou pontuação com base nos objetivos de construção. Você pode tomar a melhor estratégia ou salvar algum número (ou todas) das estratégias, classificadas por objetivos de construção. Se houver múltiplos objetivos de compilação, uma média ponderada pode ser usada para formar uma única métrica. Esta é a visão mais básica da construção automática de sistemas. Uma descrição mais detalhada será fornecida abaixo na seção sobre programação genética. Esta descrição também ignora o importante problema de sobreposição, em que a estratégia está em forma tão estreita quanto aos dados de mercado usados ​​durante o processo de construção, de modo que a estratégia não seja boa no futuro quando aplicada a novos dados. Esta questão também é abordada abaixo. Base teórica da geração automática de código Como descrito acima, construir um sistema comercial usando a geração automática de código é essencialmente um problema de otimização. A combinação de elementos estratégicos que maximizam os objetivos de construção é tomada como a estratégia final. Alguns comerciantes se opõem a que os sistemas de negociação devem ser construídos com base em uma hipótese de comportamento ou ação do mercado. Se você tem uma boa hipótese de como os mercados funcionam, uma estratégia pode ser construída em torno dessa hipótese e testada. Se isso funciona, ele apóia a hipótese e justifica a negociação da estratégia. De fato, a abordagem descrita aqui não é fundamentalmente diferente daquela. Cada estratégia candidata construída durante o processo de construção, conforme ilustrado na Fig. 1, é essencialmente uma hipótese que é apoiada ou refutada pela avaliação. Se o teste fora de amostra for usado, as estratégias finais podem ser mais suportadas ou refutadas pelos resultados fora da amostra. Outra maneira de ver a geração automática de código é como um problema de inferência estatística. Os dados de preços podem ser pensados ​​como uma combinação de sinal e ruído. O sinal é a parte negociável dos dados, e o ruído é tudo o mais. Neste contexto, o processo de construção da estratégia é um problema de ajuste de curva não linear onde o objetivo é encontrar estratégias que se encaixam no sinal, ignorando o ruído e evitando o excesso de ajuste. Ao mesmo tempo, os dados de mercado geralmente não são estacionários: as propriedades estatísticas mudam ao longo do tempo. Uma estratégia de sucesso é, portanto, uma que se adequa aos elementos estacionários do sinal do mercado com graus de liberdade adequados para evitar o excesso de ajuste. Embora discutido em mais detalhes abaixo, o teste fora da amostra geralmente é usado para verificar se as estratégias não são excessivas para o mercado. Gerador de código do sistema de padrões para TradeStation Esta seção descreve uma abordagem ad hoc para a geração automática de código em que um sistema comercial para a TradeStation gera automaticamente outros sistemas de negociação baseados em padrões para a TradeStation. O sistema AutoSystemGen procura um conjunto de regras de negociação, juntamente com os valores de parâmetros associados, que atendem a um conjunto específico de requisitos de desempenho. Dependendo dos requisitos de desempenho, pode encontrar várias ou mesmo dezenas de sistemas de negociação que atendam aos requisitos. Em seguida, ele escreve o código EasyLanguage para cada sistema em um arquivo. Para fins ilustrativos, as regras para os sistemas gerados são restritas aos padrões de preços. Em princípio, esta técnica poderia ser expandida para gerar automaticamente sistemas de desenho de uma ampla variedade de técnicas de entrada e saída aplicáveis ​​a praticamente qualquer mercado. Regras de padrões de preços Embora quase qualquer tipo de indicador ou lógica de negociação possa ser incluído no gerador do sistema comercial descrito aqui, para manter as coisas bastante simples, as regras dos sistemas gerados serão restritas aos padrões de preços. Cada regra de entrada de um sistema de negociação gerado terá a seguinte forma: onde P1 e P2 são preços (aberto, alto, baixo ou próximo), N1 e N2 são o número de barras para olhar para trás (por exemplo, Close2 é o fechar duas barras Ago), e Ineq é um operador de desigualdade, tanto lt como gt. Exemplos de regras incluem o seguinte: Fechar lt Close2 Low2 lt High10 High3 gt Close4 e assim por diante. P1, P2, N1, N2 e Ineq são todas as variáveis ​​a serem determinadas pelo processo de geração do sistema. N1 e N2 serão restritos ao intervalo de 0 20. Além disso, o número de regras, NRules, será uma variável com valores variando de um a 10. Uma entrada comercial será acionada se todas as regras forem verdadeiras. Nesse caso, a entrada será tomada no aberto da próxima barra. A direção do comércio será definida de antemão, de modo que o sistema gerará sistemas que sejam todos longos ou todos os negócios curtos. Para obter uma lógica de negociação para negociações longas e curtas, o sistema pode ser executado duas vezes, uma vez por muito tempo, e a segunda vez para negociações curtas. As negociações serão retiradas no mercado após um número fixo de barras, NX, que variará de um a 20. Encontrando as regras A chave para esse processo é encontrar sistemas de negociação de candidatos. Um sistema pode consistir de uma e dez regras do formulário mostrado acima. As negociações são introduzidas no mercado se todas as regras forem verdadeiras, e os negócios são encerrados um certo número de barras mais tarde. Se isso fosse codificado como um sistema TradeStation tradicional, com um máximo de 10 regras, haveria 52 entradas. Isso faria para uma estratégia pesada. Em vez disso, uma abordagem diferente será usada. Em cada etapa da otimização, os valores para cada variável (P1, P2, N1, N2, Ineq, NRules e NX) serão escolhidos aleatoriamente. Um conjunto diferente de valores de P1, P2, N1, N2 e Ineq serão selecionados para cada regra, para um total de conjuntos de valores NRules. Cada passo da otimização gerará um sistema comercial diferente, uma vez que as variáveis ​​são selecionadas aleatoriamente. Se os resultados de desempenho do sistema atenderem aos requisitos inseridos pelo usuário, o sistema gerado será gravado em um arquivo no código EasyLanguage. Colocando tudo em conjunto O código para o sistema AutoSystemGen e suas funções relacionadas está disponível no Breakout Futures (furos de fuga) na página Downloads Grátis. A primeira entrada para a estratégia é chamada OptStep. Para executar o sistema, o OptStep deve ser otimizado na TradeStation variando de 1 para algum número grande, como 10.000, em etapas de 1. Isso causará o AutoSystemGen gerar, por exemplo, 10.000 sistemas de negociação diferentes. Os que atendem aos critérios de desempenho especificados são escritos no arquivo mostrado como uma entrada para a função WriteSystem (por exemplo, C: AutoSysGen-Output1.txt). Os critérios de desempenho são especificados através das entradas do sistema (reqNetProfit, reqMaxDD, etc.). A maior parte do trabalho duro é executada pelas funções que o sistema chama. A função GetPatVars seleciona aleatoriamente os valores das variáveis ​​que determinam as regras de negociação. Para determinar se uma entrada comercial ou não ocorrerá na próxima barra, as regras do padrão de preços são avaliadas pela função EvalPattern. Finalmente, se o sistema atende aos critérios de desempenho, o código EasyLanguage correspondente é gerado e escrito para um arquivo de texto pela função WriteSystem. Exemplo Como exemplo, considere o mercado de futuros de títulos do tesouro a 30 anos (símbolo US. P na TradeStation 8). O AutoSystemGen foi otimizado ao longo dos últimos 20 anos de preços T-bond com a entrada OptStep aumentada de 1 para 10000. Isso significa que o sistema avaliou 10.000 sistemas de negociação diferentes. A otimização foi executada duas vezes, uma vez por trades longos e uma vez para negociações curtas. Os seguintes requisitos de desempenho foram utilizados: lucro líquido de pelo menos 30.000, o pior caso de retirada não superior a 7500, pelo menos 200 negócios, porcentagem rentável de pelo menos 50 e fator de lucro de pelo menos 1,2. Em um computador dual core que executa o Vista, levou aproximadamente 10 minutos para executar cada otimização (10.000 sistemas por otimização). Os sistemas gerados por este processo são mostrados abaixo. Estes são os sistemas escritos no arquivo AutoSysGen-Output1.txt pela função WriteSystem. Os primeiros são os sistemas de longo tempo, seguidos por um sistema de apenas curto-som (o único que atendia aos critérios de desempenho). Sistema 2332, US. P, 9172007 12:23:00, Long Profissionais Lucro Líquido 53562.50, Max DD -7381.25, Números Negociações 250, Percentagens Ganhe 56.80, Prof fator 1.631 Var: EntNext (falso) EntNext Open2 gt Low16 e Low9 gt Low3 E Close14 lt Low6 e If EntNext, em seguida, Compre a próxima barra no mercado Se BarsSinceEntry gt NBarExS, em seguida, compre para cobrir a próxima barra no mercado Se o STrailOn, em seguida, compre para cobrir a próxima barra no stop SStop Até recentemente, a maioria das aplicações de programação genética para geração de estratégia de negociação foram Estudos acadêmicos baseados em conjuntos de regras limitadas, lógica de entrada e saída excessivamente simples e código personalizado, tornando os resultados inadequados para a maioria dos comerciantes. Ao mesmo tempo, a maioria dos softwares disponíveis que implementa o GP para negociação no mercado tem sido direcionado para comerciantes profissionais e preços adequados ou é muito complicado de configurar e usar. O Adaptrade Builder foi projetado para tornar o GP simples de usar para qualquer comerciante, individual ou profissional, que tenha uma compreensão básica da estratégia de negociação e da plataforma TradeStation. Mais informações sobre o Builder podem ser encontradas no AdaptradeBuilder. Os sistemas de negociação de construção por montagem excessiva através da geração automática de código são um tipo de otimização. A maioria dos comerciantes sistemáticos provavelmente está familiarizado com a otimização de parâmetros, em que as entradas para uma estratégia são otimizadas. Ao contrário da otimização de parâmetros, a geração automática de código otimiza a lógica de negociação das estratégias. No entanto, o risco de sobre otimização, ou excesso de ajuste, também é uma preocupação para a geração automática de código, assim como é para a otimização de parâmetros. Normalmente, a otimização é realizada em um segmento de dados, chamado segmento de otimização ou na amostra, e testado em dados diferentes, denominados segmento de teste ou fora da amostra. O ajuste excessivo refere-se ao problema de otimização de uma estratégia para que ele se encaixa bem no segmento de amostra, mas não funciona bem em qualquer outro dado, incluindo os dados fora da amostra. O mau desempenho fora da amostra geralmente é causado por um dos vários fatores. Um fator importante é o chamado número de graus de liberdade no segmento de amostra. O número de graus de liberdade, que é igual ao número de negócios menos o número de regras e condições da estratégia, determina a forma como a estratégia se adapta aos dados. As entradas fornecidas são adicionadas para cada parâmetro na estratégia, o número de entradas estratégicas pode ser usado como um proxy para o número de regras e condições. Por exemplo, se uma estratégia tem 100 negócios e 10 insumos, ele tem 90 graus de liberdade. Quanto mais graus de liberdade, menos provável é que a estratégia seja superajuda no mercado e é mais provável que ele tenha um bom desempenho fora da amostra. O número de graus de liberdade pode ser aumentado durante o processo de construção, incluindo o número de negócios e o número de insumos de estratégia como objetivos de construção. Supondo que a métrica de fitness é uma média ponderada dos objetivos de construção, todas as outras coisas sendo iguais, o aumento da ponderação para o número de negócios resultará em estratégias com mais negócios e, portanto, mais graus de liberdade. Do mesmo modo, o aumento da ponderação para o número (negativo) de entradas resultará em estratégias com menos entradas, o que também aumentará o número de graus de liberdade. Outra opção é incluir a significância estatística como objetivo de construção. A significância estatística pode ser calculada aplicando o teste t de Student ao comércio médio. Isso irá medir a probabilidade de que o comércio médio seja maior que zero. O teste t é baseado no número de graus de liberdade, mas é uma medida mais completa de se uma estratégia está em excesso do que o número de graus de liberdade sozinho. De um jeito, então, melhorar o desempenho fora da amostra é incluir o significado na função de fitness, que tenderá a gerar estratégias que tenham uma significância estatística elevada. Outro fator importante que afeta o desempenho fora da amostra é a variedade de condições de mercado no segmento de amostra. De um modo geral, é melhor otimizar os dados que incluem uma ampla variedade de condições de mercado, como os mercados de tendências e tendências, os períodos de consolidação, alta e baixa volatilidade, etc. Quanto mais variedade no segmento de amostra, mais Provavelmente é que a estratégia funcionará bem em outros dados, incluindo dados fora da amostra e em negociação em tempo real. Enquanto o futuro nunca duplicar exatamente o passado, desde que o futuro (ou dados fora da amostra) seja semelhante o suficiente para pelo menos parte do segmento na amostra, a estratégia deve funcionar bem em novos dados. O valor de otimização em uma variedade de condições de mercado pressupõe que um bom desempenho seja alcançado em cada parte do segmento na amostra. Uma maneira de medir isso é com o coeficiente de correlação da curva de patrimônio, que mede o quanto a curva de equidade se aproxima de uma linha reta. Se a curva de equidade é uma linha reta, isso implica que o desempenho é uniforme em todos os segmentos dos dados. Obviamente, isso é desejável se o objetivo é alcançar um bom desempenho em todos os diferentes tipos de condições de mercado possível. O coeficiente de correlação para as estratégias geradas através da geração automática de código pode ser aumentado ao incluir o coeficiente de correlação como objetivo de construção e ponderá-lo como parte da função de fitness. Infelizmente, haverá casos em que mesmo com um alto significado, um coeficiente de correlação próximo de 1 e uma grande variedade de condições de mercado no segmento de amostra, o desempenho fora da amostra será fraco. Isso pode acontecer por vários motivos. Primeiro, mesmo uma estratégia simples com poucos parâmetros pode, em alguns casos, ajustar o ruído em vez do sinal. Por definição, o ruído é uma parte dos dados de mercado que não contribuem para sinais comerciais lucrativos. Em segundo lugar, a dinâmica do mercado em que a lógica da estratégia se baseia (ou seja, o sinal) pode ter mudado no segmento fora da amostra suficiente para impactar negativamente o desempenho. Isso às vezes é devido a uma mudança fundamental no mercado, como a mudança do piso para o comércio eletrônico. No entanto, mudanças mais sutis, muitas vezes relacionadas aos padrões de negociação dos participantes no mercado, também são possíveis, particularmente para operações de curto prazo. Se isso parece ser o problema, a solução pode ser tão simples como reconstruir a estratégia com a nova lógica de negociação. Usar uma ferramenta como o Adaptrade Builder torna isso muito mais fácil do que se uma abordagem manual para o desenvolvimento da estratégia comercial fosse usada. Outra solução possível é incluir os dados mais recentes no segmento de otimização e testá-lo fora de amostra rastreando o desempenho em tempo real. Na maioria dos casos, uma estratégia que tem um grande número de negócios, um alto valor de significância e um bom desempenho no segmento de amostra continuará a funcionar bem por algum período de pós-otimização. Para obter informações sobre software para estratégias de negociação de construção usando programação genética, clique aqui. Se você gostaria de ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, junte-se à nossa lista de e-mail. Obrigado.

No comments:

Post a Comment