Skip to main content

Trading System Design Patterns


Estou no processo de concepção de um aplicativo de negociação que usará um Market s API para colocar encomendas no mercado Esta isn ta complexo de alto desempenho algorítmico aplicação de negociação do tipo encontrado em bancos de investimento Esta é apenas uma pequena aplicação pessoal que irá comércio talvez Duas ou três vezes por dia, dependendo das condições do mercado tendências A aplicação será composto em torno dos seguintes módulos pacotes Estratégias - Os algoritmos de negociação reais Analytics - As classes para analisar as ordens de preços ao vivo no mercado para produzir comprar vender sinais Serviços - As classes usadas Para manter uma conexão com o mercado, recuperar informações de mercado e colocar as ordens de compra de compra Até agora, tudo o necessário para a aplicação parece estar disponível na internet Apache CXF para gerar as classes de Java usadas para acessar os serviços web do mercado Apache Maths para o Realizando a análise de preços Wikipedia para os padrões de design diferentes, ou seja, Fábrica, Observador Assunto, Estado, et C. Onde estou realmente preso, no entanto, é com os algoritmos que eu decidi usar o padrão de Estado para particionar, em agrupamentos lógicos, as várias peças de lógica que devem ser executadas quando certas condições de mercado são satisfeitas. O problema é que eu estou começando a Ver que é muito provável que cada classe de estado irá conter uma explosão de instruções if else. Eu não posso ajudar, mas sinto que estou faltando alguma coisa aqui e que deve existir algum padrão de estrutura ou design que eu não sei sobre o que permite que o desenvolvedor Encapsular todas as entradas e saídas de um determinado contexto de negócios em um número finito de ações de negócios de entrada de saída em que algoritmos de regras de negócios podem ser construídos I e Em vez de ter que codificar os algoritmos Eu estou esperando que ele deve ser possível fazer a aplicação em Um processador de regras de algum tipo Infelizmente eu não sei por onde começar neste eu espero que eu expliquei o meu dilema claramente o suficiente, se você gostaria de me esclarecer qualquer coisa, por favor me avise Obrigado 2.A seção anterior sobre a concepção de um sistema de comércio examina os diferentes tipos de mercados em que o comércio, e dá uma olhada nos dois gêneros básicos de sistemas de negociação Sistemas de tendência e sistemas de contra-tendência Estas duas estratégias formam a base sobre a qual todos os sistemas de negociação são construídos, e os mercados fornecem o meio Nesta segunda seção sobre a concepção de um sistema de comércio, dividir os dois gêneros em componentes individuais, examinar a decisão empírica Como mencionado na introdução, os sistemas de negociação são construídos usando parâmetros - os grupos de regras específicas que geram pontos de entrada e saída para qualquer equidade dada Tanto a tendência de acompanhamento e sistemas de negociação de contra-tendência aderir a quatro princípios básicos que regem a construção de qualquer sistema de comércio Estes princípios também são As características essenciais de um sistema eficaz. O sistema deve ganhar dinheiro - Isso é fácil de dizer, mas difícil de fazer Maximizar o retorno por cento deve ser o seu objetivo principal ao projetar um sistema de comércio. O sistema deve ser capaz de limitar os riscos - É Difícil de usar um sistema que oscila entre extremos altos e baixos não só inibe a sua capacidade de liquidar, mas também pode ser psicologicamente taxing Além disso, limitando os riscos, você é capaz de diminuir o efeito de uma entrada ruim, por exemplo, indo muito Durante uma flutuação para baixo. Os parâmetros do sistema devem ser estáveis ​​e viáveis ​​- Os sistemas negociando não podem confiar na coincidência ou na sorte O desenhista do sistema pode cumprir este princípio da estabilidade alargando os parâmetros e não optimizing demasiado em um esforço para aumentar suas possibilidades De sucesso A viabilidade de parâmetros, incluindo a derrapagem, é discutida na segunda seção deste tutorial Novamente, é muito importante tomar a derrapagem em conta T ao projetar um sistema. O cronograma do sistema deve ser estável e viável - Para que o cronograma de um sistema seja bem-sucedido, coincidência e sorte não devem ter um fator A viabilidade também deve ser considerada nesta instância Se os cronogramas forem muito próximos, A quantidade resultante de freqüência de negociação pode não ser possível devido a limitações de software e / ou limitações do lado do mercado. Processo de tomada de decisão emocional Um sistema de negociação exige que o designer tome algumas decisões empíricas que afetam diretamente o desempenho do sistema - se não houver necessidade dessa decisão Todos serão ricos Aqui estão alguns fatores básicos que os designers de sistemas devem decidir e algumas diretrizes. Qual o período de tempo que devo usar Todas as ações podem ser analisadas a partir de múltiplas perspectivas de períodos de tempo, que vão de um minuto a uma década ou mais Decidir qual O período de tempo para testar pode afetar drasticamente o desempenho do sistema. Os resultados mais confiáveis ​​vêm geralmente de períodos de tempo mais longos, No entanto, isso não significa que apenas períodos de preços extremamente longos devem ser usados. É importante ter em mente que quanto mais tempo o período de tempo, mais tempo pode demorar para que o lucro seja realizado Observe o Exemplo a seguir da Microsoft longo prazo um período de mais de 20 anos, em comparação com o seu curto prazo um período de algumas semanas. Podemos ver claramente que o curto prazo não é uma representação precisa do longo prazo, e vice-versa. A regra geral, de cinco a 10 anos é um bom alvo para os comerciantes do sistema de médio a longo prazo, e seis meses a cinco anos é um intervalo razoável para os comerciantes de curto prazo Novamente, depende de quando você pretende liquidar. A série de preços deve usar a maioria das ações são mapeadas em uma série de preços ininterruptos - ou seja, os gráficos são contínuos Ao negociar futuros e algumas outras ações, no entanto, existe uma opção de usar dados de contrato real em vez de continuidade O sistema de backtesting muitas vezes exige um ano ou mais de dados, portanto, os comerciantes do sistema muitas vezes utilizam futuros contínuos, que são uma série de contratos combinados para criar um fluxo contínuo de dados Como regra geral, a longo prazo Os comerciantes devem furar a futuros contínuos, quando os comerciantes a curto prazo deverem usar dados reais do contrato. Que parâmetros e ajustes devo eu usar Nós exploramos isto mais adiante em seções subseqüentes que endereçam a construção de um sistema de troca Basicamente, os parâmetros são selecionados adivinhando - Verificar, produzir simulações cegas, ou predefinir um grupo de parâmetros e, em seguida, usando a média para determinar performance. Again, muitos desses fatores podem ser influenciados pelo tempo de liquidez desejada até liquidação, risco e uma multiplicidade de outros fatores, por isso é Importante para tomar o momento de decidir que trabalha melhor para you. Software e sistema de negociação A evolução do computador é talvez a maior força motriz por trás do sistema tradi Originalmente, os computadores eram usados ​​apenas para esmagar os números, eventualmente, eles adquiriram a capacidade de realizar simulações, gerar sinais em tempo real e até mesmo colocar negociações para o comerciante. Alguns softwares são projetados simplesmente como uma plataforma a partir da qual um desenvolvedor de sistemas pode construir um Sistema outro software usa redes neurais para aprender com os mercados e aperfeiçoar-se Alguns softwares são instalados no disco rígido do usuário outro software é fornecido apenas on-line Aqui estão alguns dos programas básicos usados ​​pelos desenvolvedores do sistema. Client-Side Software lado do cliente O software deve ser instalado no computador do usuário É muitas vezes conectado à internet e é capaz de obter dados em tempo real, incluindo preços, notícias, etc Nota algumas empresas cobrar não só para o software, mas também para os dados Esses aplicativos tipicamente Permitem que o usuário especifique o período de tempo, tipos de parâmetros e mais Um dos recursos mais importantes, no entanto, dá ao usuário a capacidade de programar um sistema Isso é feito usando Uma linguagem de programação simples, muitas vezes específica para o aplicativo usado com o qual você pode configurar regras para gerar comprar e vender sinais - estes aparecem diretamente no gráfico Aqui está um exemplo de um aplicativo do lado do cliente chamado MetaTrader. Server-Side Software Server - Side software é instalado em um servidor remoto Muitas vezes, esses aplicativos retornam sinais que são exibidos ao público por meio de uma página da Web ou uma base de assinante Isso elimina a necessidade de qualquer software do lado do cliente que não seja um navegador da web Além disso, o usuário paga um Pequena taxa de assinatura em vez de comprar um programa e pagar por uma assinatura de dados Finalmente, o usuário não tem que desenvolver o sistema, só receber sinais gerados Mas você deve se lembrar que este tipo de software é muitas vezes suscetível a golpes, Lado software não é Para mais sobre isso, consulte Trading Systems Coding. Conclusion Agora você tem uma compreensão básica de sistemas de negociação você sabe o que eles são, os diferentes tipos de sistemas Que existem, os fatores a ter em mente ao projetá-los, eo software usado para tornar o sistema de negociação mais fácil em você Em seguida, vamos examinar como realmente construir um sistema de comércio e colocá-lo em use. Trading Systems Designing Your System - Parte 1.A seção anterior deste tutorial olhou para os elementos que compõem um sistema de comércio e discutiu as vantagens e desvantagens de usar esse sistema em um ambiente de negociação ao vivo Nesta seção, vamos construir sobre esse conhecimento, examinando quais os mercados são especialmente bem - Adequado ao sistema de negociação Vamos então ter um olhar mais aprofundado sobre os diferentes gêneros de trading systems. Trading em Mercados Diferentes. Mercado de ações O mercado de ações é provavelmente o mercado mais comum para o comércio, especialmente entre os novatos Nesta arena, grande Jogadores como Warren Buffett e Merrill Lynch dominam, e as estratégias tradicionais de investimento em valor e crescimento são, de longe, as mais comuns. No entanto, muitas instituições investiram significativamente em A concepção, desenvolvimento e implementação de sistemas de negociação investidores individuais estão se juntando a esta tendência, embora lentamente. Aqui estão alguns fatores-chave para se manter em mente quando se utilizam sistemas de negociação em equity markets. The grande quantidade de ações disponíveis permite que os comerciantes para testar sistemas em muitos diferentes A eficácia dos sistemas de negociação pode ser limitada pela baixa liquidez de algumas ações, especialmente OTC e folhas-de-rosa emissões podem comer em lucros gerados por Com êxito, e pode aumentar as perdas OTC e pink sheet equities muitas vezes incorrer em taxas de comissão adicionais. Os principais sistemas de negociação utilizados são aqueles que procuram valor - isto é, sistemas que usam parâmetros diferentes para determinar se uma segurança é subvalorizada em comparação com o seu desempenho passado , Seus pares, ou o mercado em geral. Mercados de câmbio estrangeiros O mercado de câmbio, ou forex é o maior e mais Mercado líquido no mundo Os governos do mundo, os bancos e outras grandes instituições comércio trilhões de dólares no mercado cambial todos os dias A maioria dos comerciantes institucionais no forex dependem de sistemas de negociação O mesmo se aplica para os indivíduos no forex, Em relatórios econômicos ou payouts. Here de interesse são alguns fatores chaves a manter-se na mente ao usar sistemas negociando no mercado do forex. A liquidez neste mercado - devido ao volume enorme - faz sistemas negociando mais exatos e eficazes. Portanto, é muito mais fácil fazer muitas transações sem aumentar os custospared à quantidade de ações ou commodities disponíveis, o número de moedas para o comércio é limitado Mas por causa da disponibilidade de pares de moedas exóticas - isto é, as moedas de Os países menores - a gama em termos de volatilidade não é necessariamente limitada. Os principais sistemas de negociação utilizados no forex são aqueles que seguem as tendências um sayi popular Ng no mercado é a tendência é seu amigo, ou sistemas que compram ou vendem em fugas Isto é porque os indicadores econômicos causam frequentemente movimentos grandes do preço em um time. Futures Equidade, forex, e mercados de mercadoria toda a oferta negociação de futuros Este é um veículo popular Para o sistema de negociação por causa da maior quantidade de alavancagem disponível eo aumento da liquidez e volatilidade No entanto, esses fatores podem cortar ambas as maneiras que podem ou amplificar seus ganhos ou amplificar suas perdas Por esta razão, o uso de futuros é normalmente reservado para avançado individual e Comerciantes do sistema institucional Isso ocorre porque os sistemas de negociação capaz de capitalizar o mercado de futuros exigem personalização muito maior, usar indicadores mais avançados e demorar muito mais para desenvolver Então, o que é melhor É até o investidor individual para decidir qual mercado é mais adequado para Sistema de negociação - cada um tem suas próprias vantagens e desvantagens A maioria das pessoas estão mais familiarizados com os mercados de ações, e esta familiaridade Torna o desenvolvimento de um sistema de negociação mais fácil No entanto, forex é comumente pensado para ser a plataforma superior para executar sistemas de negociação - especialmente entre os comerciantes mais experientes Além disso, se um comerciante decide capitalizar sobre o aumento da alavancagem e volatilidade, a alternativa de futuros é sempre aberto. Escolha está nas mãos do desenvolvedor do sistema. Tipos de Sistemas de Negociação. Sistemas de Trend-Seguimento O método mais comum de negociação de sistema é o sistema de tendência-seguindo Em sua forma mais fundamental, este sistema simplesmente espera por um movimento de preço significativo, então compra Ou vende naquela direção Este tipo de bancos de sistema na esperança de que esses movimentos de preços vai manter a tendência. Moving Média Sistemas Freqüentemente utilizado na análise técnica de uma média móvel é um indicador que simplesmente mostra o preço médio de um estoque ao longo de um período de tempo A essência das tendências é derivada desta medida A maneira mais comum de determinar entrada e saída é um crossover A lógica por trás disso é Simples uma nova tendência é estabelecida quando o preço cai acima ou abaixo de sua tendência média de preço histórico Aqui está um gráfico que traça tanto a linha de preço azul ea linha vermelha MA de 20 dias de IBM. Breakout Systems O conceito fundamental por trás deste tipo de sistema é Semelhante à de um sistema de média móvel A idéia é que quando um novo alto ou baixo é estabelecido, o movimento de preços é mais provável que continue na direção da fuga Um indicador que pode ser usado na determinação breakouts é um simples Bollinger Band overlay Bandas de Bollinger mostram médias de preços altos e baixos, e fugas ocorrem quando o preço atende as bordas das bandas Aqui está um gráfico que traça preço linha azul e Bollinger Bands linhas cinza de Microsoft. Disadvantages de Trend-Seguindo Systems. Empirical tomada de decisão necessária - Ao determinar as tendências, há sempre um elemento empírico para considerar a duração da tendência histórica. Por exemplo, a média móvel pode ser nos últimos 20 dias ou nos últimos cinco anos Rs, de modo que o desenvolvedor deve determinar qual é o melhor para o sistema Outros fatores a serem determinados são os altos e baixos médios em breakout systems. Lagging Nature - médias móveis e sistemas breakout será sempre atrasado Em outras palavras, eles nunca podem bater o Exato topo ou parte inferior de uma tendência Isso inevitavelmente resulta em uma perda de lucros potenciais, que às vezes pode ser significativo. Efeito da malha - Entre as forças de mercado que são prejudiciais ao sucesso dos sistemas de tendência seguinte, este é um dos mais comuns Whipsaw efeito ocorre quando a média móvel gera um sinal falso - ou seja, quando a média cai apenas no intervalo, em seguida, repentinamente inverte direção Isso pode levar a perdas maciças, a menos eficaz parar-perdas e técnicas de gestão de risco são used. Sideways Markets - Os seguintes sistemas são, por natureza, capazes de ganhar dinheiro apenas em mercados que realmente fazem tendência. No entanto, os mercados também se movem de lado permanecendo dentro de um certo intervalo para um período prolongado Ocasionalmente, os sistemas que seguem tendências podem experimentar alguma volatilidade extrema, mas o comerciante deve ficar com seu sistema. A incapacidade de fazê-lo resultará em uma falha garantida. Sistemas de Telecontroles Basicamente, o objetivo com a O sistema de contra-tendência é comprar no ponto mais baixo e vender no ponto mais alto A principal diferença entre este e o sistema de tendências é que o sistema de contra-tendência não é autocorrectivo Em outras palavras, não há tempo definido para sair das posições e Isso resulta em um potencial de downside ilimitado Tipos de sistemas de contra-tendência Muitos tipos diferentes de sistemas são considerados sistemas de contra-tendência A idéia aqui é comprar quando momentum em uma direção começa desvanecendo Isso é mais freqüentemente calculado usando osciladores Por exemplo, um sinal pode ser gerado quando stochastics Ou outros indicadores de força relativa caem abaixo de certos pontos Existem outros tipos de sistemas de negociação de contra-tendência, mas todos eles compartilham o mesmo fu Por exemplo, um dos fatores que o desenvolvedor do sistema deve decidir sobre os pontos em que os indicadores de força relativa fade. Extreme Volatilidade maio Occur - estes sistemas podem também experimentar alguma volatilidade extrema, e uma inabilidade manter-se com o sistema apesar desta volatilidade resultará na falha garantida. Downside ilimitado - como mencionado previamente, há um potencial downside ilimitado porque o sistema não é auto-corrigindo lá é Nenhum tempo definido para sair de posições. Conclusão Os principais mercados para os quais os sistemas de negociação são adequados são os mercados de ações, forex e futuros Cada um desses mercados tem suas vantagens e desvantagens Os dois principais gêneros de sistemas de negociação são os sistemas de tendência e contra - Apesar de suas diferenças, ambos os tipos de sistemas, em seus estágios de desenvolvimento, requerem tomada de decisão empírica por parte de t Além disso, esses sistemas estão sujeitos a extrema volatilidade e isso pode exigir alguma resistência - é essencial que o comerciante do sistema furar com o seu sistema durante estes tempos Na próxima parcela, vamos dar uma olhada em como projetar um Sistema de comércio e discutir alguns dos softwares que os comerciantes do sistema usam para tornar suas vidas mais fáceis.

Comments