Algorithmic Trading System Architecture. Previamente neste blog eu escrevi sobre a arquitetura conceitual de um sistema de negociação algorítmica inteligente, bem como os requisitos funcionais e não funcionais de uma produção de sistema de negociação algorítmica Desde então, tenho projetado uma arquitetura de sistema que eu acredito que poderia Satisfazer os requisitos arquitetônicos Neste post vou descrever a arquitetura seguindo as diretrizes da ISO IEC IEEE 42010 sistemas e arquitetura de engenharia de software padrão de descrição De acordo com este padrão uma descrição de arquitetura deve. Conter múltiplas visões arquitetônicas padronizadas, por exemplo, UML and. Maintain rastreabilidade entre Decisões de projeto e requisitos arquitetônicos. Definição de arquitetura de software. Ainda não há consenso sobre o que é a arquitetura de um sistema. No contexto deste artigo, ele é definido como a infra-estrutura dentro da qual componentes de aplicativo que satisfazem requisitos funcionais podem ser especificados, Implementados e executados Os requisitos funcionais são as funções esperadas do sistema e seus componentes Os requisitos não funcionais são medidas através das quais a qualidade do sistema pode ser medida. Um sistema que satisfaz plenamente os seus requisitos funcionais pode ainda não atender às expectativas se os requisitos não funcionais São deixados insatisfeito Para ilustrar este conceito considere o seguinte cenário um sistema de negociação algorítmica que você acabou de comprar construído faz excelentes decisões comerciais, mas é completamente inoperável com as organizações de gestão de riscos e sistemas de contabilidade Este sistema atender às suas expectativas. Conceptual Architecture. A conceitual View descreve conceitos de alto nível e mecanismos que existem no sistema no nível mais alto de granularidade. Neste nível, o sistema de negociação algorítmica segue uma arquitetura orientada a eventos EDA quebrada em quatro camadas e dois aspectos arquitetônicos Para cada camada e arquiteturas de referência de aspecto e Padrões ar E usados Padrões arquitetônicos são comprovadas, estruturas genéricas para a obtenção de requisitos específicos Os aspectos arquitetônicos são preocupações transversais que abrangem vários componentes. A arquitetura orientada a eventos - uma arquitetura que produz, detecta, consome e reage a eventos Os eventos incluem movimentos de mercado em tempo real, Eventos ou tendências e eventos comerciais, por exemplo, apresentação de uma ordem. Este diagrama ilustra a arquitetura conceitual do sistema de negociação algorítmica. Referência arquiteturas. Para usar uma analogia, uma arquitetura de referência é semelhante aos planos para uma parede de suporte de carga Este blueprint Pode ser reutilizada para projetos de edifícios múltiplos, independentemente do edifício que está sendo construído, uma vez que satisfaz um conjunto de requisitos que ocorrem com freqüência. De modo semelhante, uma arquitetura de referência define um modelo contendo estruturas genéricas e mecanismos que podem ser usados para construir uma arquitetura de software concreto que satisfaça Requisitos específicos A arquitetura para o algoritmo tr O sistema ading utiliza uma arquitetura baseada em espaço SBA e um controlador de exibição de modelo MVC como referências. As boas práticas como o ODS operacional, o extrato de transformação e carga ETL padrão, e um data warehouse DW também são usados. Separa a representação da informação da interação do usuário com ela. Arquitetura baseada em espaço - especifica uma infra-estrutura onde unidades de processamento acopladas frouxamente interagem uns com os outros através de uma memória associativa compartilhada chamada espaço mostrado abaixo. A visão estrutural de uma arquitetura mostra os componentes e sub-componentes do sistema de negociação algorítmica. Ele também mostra como esses componentes são implantados na infra-estrutura física. Os diagramas UML usados nesta visão incluem diagramas de componentes e diagramas de implantação. Os diagramas de implantação do sistema global de negociação algorítmica e os p Unidades de rocessing na arquitetura de referência SBA, bem como diagramas de componentes relacionados para cada um as camadas. Algorithmic diagrama de distribuição de alto nível do sistema de negociação Diagrama de implantação de unidades de processamento SBA Diagrama de componente de camada de processamento de pedidos Diagrama de componente de processamento de eventos automatizado do comerciante Fonte de dados e camada de pré - Diagrama de componente diagrama de componente de interface de usuário baseado em MVC. Tá ticas arquitetônicas. De acordo com o instituto de engenharia de software uma tática arquitetônica é um meio de satisfazer uma exigência de qualidade, manipulando algum aspecto de um modelo de atributo de qualidade através de decisões de design arquitetônico Um exemplo simples usado na negociação algorítmica A arquitetura do sistema está manipulando um armazenamento de dados operacional ODS com um componente de consulta contínua Este componente iria analisar continuamente o ODS para identificar e extrair eventos complexos As táticas a seguir são usadas na arquitetura. O padrão de disruptor nas filas de evento e ordem. As filas de evento e ordem. Continua consulta CQL sobre a ODS. Data filtragem com o padrão de design de filtro em dados de entrada. Congestion evitação algoritmos em todas as conexões de entrada e saída. Active gestão de filas AQM e congestionamento explícito notificationmodity recursos de computação com capacidade de atualização escalável . Redundância ativa para todos os únicos pontos de falha. Indexação e estruturas de persistência otimizadas no ODS. Schedule regular backup de dados e scripts de limpeza para ODS. Transaction históricos em todos os bancos de dados. Checksums para todas as ordens para detectar falhas. Anotar eventos com timestamps para Ignorar eventos viciados. Order regras de validação, por exemplo, as quantidades máximas trade. Automated comerciante componentes usam um banco de dados na memória para a análise. Dois estágio de autenticação para interfaces de usuário conectando-se ao ATs. Encryption em interfaces de usuário e conexões para o ATs. Observer padrão de design para o MVC para gerenciar views. The lista acima são apenas algumas decisões de design que eu identifiquei durante o Design da arquitetura Não é uma lista completa de táticas Como o sistema está sendo desenvolvido táticas adicionais devem ser empregados em vários níveis de granularidade para atender aos requisitos funcionais e não funcionais Abaixo estão três diagramas descrevendo o padrão de design disruptor, padrão de design de filtro, E o componente de consulta contínua. Continuous Querying Diagrama de componentes Disruptor padrão de design padrão fonte de diagrama de classe Padrão de filtro diagrama de classe de padrão. Behavioural View. This vista de uma arquitetura mostra como os componentes e camadas devem interagir uns com os outros Isso é útil ao criar cenários para testar a arquitetura Desenhos e para a compreensão do sistema de ponta a ponta Esta visão consiste em diagramas de seqüência e diagramas de atividade Diagramas de atividade mostrando o processo interno do sistema de negociação algorítmica e como os comerciantes são supostos interagir com o sistema de negociação algorítmica são mostrados abaixo. Interação comerciante algorítmica Negociação algorítmica de ponta a ponta Processo. Tecnologias e frameworks. The passo final na concepção de uma arquitetura de software é identificar potenciais tecnologias e estruturas que poderiam ser utilizados para realizar a arquitetura Como um princípio geral é melhor aproveitar as tecnologias existentes, desde que satisfaçam adequadamente tanto funcional E requisitos não funcionais Uma estrutura é uma arquitetura de referência realizada, por exemplo, JBoss é uma estrutura que realiza a arquitetura de referência JEE As seguintes tecnologias e estruturas são interessantes e devem ser considerados ao implementar um sistema de negociação algorítmica. CUDA - NVidia tem um número de produtos que suportam alta Desempenho de modelagem de finanças computacionais Pode-se conseguir até 50x melhorias de desempenho na execução de simulações de Monte Carlo na GPU em vez da CPU. River River é um kit de ferramentas usado para desenvolver sistemas distribuídos Foi usado como um framework para construir aplicações baseadas No padrão SBA. Apache Hadoop - no e Então o uso de Hadoop oferece uma solução interessante para o problema de grandes dados Hadoop pode ser implantado em um ambiente em cluster suportando tecnologias CUDA. AlgoTrader - uma plataforma de negociação algorítmica de código aberto AlgoTrader poderia potencialmente ser implantado no FIX, FAST e FIXatd. Apesar de não ser uma tecnologia ou uma estrutura, os componentes devem ser construídos com uma API de interface de programação de aplicativo para melhorar a interoperabilidade Do sistema e seus componentes. A arquitetura proposta foi projetada para satisfazer requisitos muito genéricos identificados para sistemas de negociação algorítmica Geralmente falando sistemas de negociação algorítmica são complicados por três fatores que variam com cada implementação. Dependências em sistemas de empresa externa e troca. Desafiando requisitos não funcionais E. Ev Portanto, a arquitetura de software proposta precisaria ser adaptada caso a caso, a fim de satisfazer requisitos organizacionais e regulatórios específicos, bem como superar restrições regionais. A arquitetura do sistema de negociação algorítmica deve ser vista como apenas um Ponto de referência para indivíduos e organizações que desejam projetar seus próprios sistemas de negociação algorítmicos. Para obter uma cópia completa e fontes usadas, faça o download de uma cópia do meu relatório Obrigado. Trading Systems Projetando Seu Sistema - Parte 1.A seção anterior deste tutorial olhou Os elementos que compõem um sistema de negociação e discutiu as vantagens e desvantagens de usar esse sistema em um ambiente de negociação ao vivo. Nesta seção, construímos esse conhecimento examinando quais mercados são especialmente adequados para o sistema de negociação. Mais em profundidade olhar para os diferentes gêneros de trading systems. Trading em Markets. Equity mercados diferentes O mercado de ações É provavelmente o mercado mais comum para o comércio, especialmente entre os novatos Nesta arena, grandes jogadores como Warren Buffett e Merrill Lynch dominar, e valor tradicional e estratégias de investimento de crescimento são de longe o mais comum No entanto, muitas instituições têm investido significativamente no Design, 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 a ter em mente quando se utiliza sistemas de negociação em mercados de ações. A grande quantidade de ações disponíveis permite que os comerciantes para testar sistemas em muitos tipos diferentes De ações - tudo, desde ações voltadas de balcão não-voláteis até balanços azuis não-voláteis. A eficácia dos sistemas de negociação pode ser limitada pela baixa liquidez de algumas ações, especialmente as emissões de folhas OTC e cor-de-rosa. Comércios e pode aumentar as perdas OTC e rosa folha equities freqüentemente incorrer taxas de comissão adicionais. As hastes utilizadas são aquelas que procuram valor - isto é, sistemas que usam parâmetros diferentes para determinar se uma segurança é subvalorizada em comparação com 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 líquido mercado do 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, Mas alguns com base em relatórios econômicos ou payouts. Here são alguns fatores-chave para se manter em mente quando se utilizam sistemas de negociação no mercado forex. A liquidez neste mercado - devido ao enorme volume - torna os sistemas de negociação mais preciso e eficaz. Portanto, é muito mais fácil fazer muitas transações sem aumentar os custospared à quantidade de ações ou commodities availabl E, o número de moedas para o comércio é limitado Mas por causa da disponibilidade de pares de moedas exóticas - ou seja, as moedas de países menores - a gama em termos de volatilidade não é necessariamente limitado. Os principais sistemas de negociação utilizados no forex são aqueles que se seguem Tendências um ditado popular no mercado é a tendência é o seu amigo, ou sistemas que compram ou vendem em breakouts Isto é porque os indicadores econômicos muitas vezes causam grandes movimentos de preços de uma só vez. Futuros Equity, forex e mercados de commodities todos oferecem negociação de futuros Um veículo popular para o sistema de negociação por causa da maior quantidade de alavancagem disponível e maior 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 reservada para Avançados comerciantes de sistemas individuais e institucionais Isso ocorre porque os sistemas de negociação capazes 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 o 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, Em última análise, a 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-seguinte Na sua forma mais fundamental, este sistema simplesmente espera por um movimento significativo de preços , Então compra ou vende naquela direção Este tipo de bancos de sistema na esperança de que esses movimentos de preços irá manter a tendência. Moving Averag E Sistemas Frequentemente utilizados na análise técnica uma média móvel é um indicador que simplesmente mostra o preço médio de um estoque durante um período de tempo A essência das tendências é derivado desta medida A maneira mais comum de determinar a entrada ea 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 Do 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 de fugas é um simples Bandas de Bollinger Band Bollinger Bandas mostram médias de preços altos e baixos, e breakouts ocorrem quando o preço encontra as bordas das bandas Aqui está um gráfico que traça preço linha azul e Bollinger Bands gra A determinação de tendências, sempre há um elemento empírico para considerar a duração da tendência histórica Por exemplo, a média móvel pode ser para os últimos 20 dias ou Para os últimos cinco anos, 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 sistemas breakout. Lagging Nature - médias móveis e sistemas breakout será sempre atrasado Em outras palavras, eles Nunca pode atingir o topo exato ou inferior de uma tendência Isso inevitavelmente resulta em uma perda de lucros potenciais, o que às vezes pode ser significativo. Whipsaw Efeito - Entre as forças de mercado que são prejudiciais para o sucesso dos sistemas de tendência seguinte, este é um dos O mais comum O efeito Whipsaw ocorre quando a média móvel gera um sinal falso - ou seja, quando a média cai apenas no intervalo, então, de repente inverte a direção Isso pode levar a mas Os sistemas de seguimento de tendências são, por natureza, capazes de ganhar dinheiro apenas em mercados que realmente fazem tendência. No entanto, os mercados também se movem lateralmente permanecendo dentro de um certo intervalo para um Ocasionalmente, os sistemas que seguem tendências podem experimentar alguma volatilidade extrema, mas o comerciante deve ficar com o seu sistema. A incapacidade de fazê-lo resultará em uma falha garantida. Sistemas de Telecontroles Basicamente, a meta com O sistema de contra-tendência é comprar no mais baixo baixo e vender no mais alto de alta A principal diferença entre este eo sistema de tendência seguinte é que o sistema de contra-tendência não é auto-corrigir Em outras palavras, não há tempo definido para sair 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 mo Mentum em uma direção começa a desvanecer-se Isto é 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 countertrend, mas todos eles compartilham o mesmo objetivo fundamental 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 pode ocorrer - Estes sistemas também podem experimentar alguma volatilidade extrema, e uma incapacidade de ficar com o sistema, apesar desta volatilidade resultará em falha garantida. Downside ilimitado - Como mencionado anteriormente, há um potencial downside ilimitado, porque o sistema não é auto-corrigir não há conjunto Tempo de saída de posições. Conclusão Os principais mercados para os quais os sistemas de negociação são adequados são o equity, forex e futu Os dois principais tipos de sistemas de negociação são os sistemas de tendência e de contra-tendência. Apesar de suas diferenças, ambos os tipos de sistemas, em seus estádios de desenvolvimento, exigem uma tomada de decisão empírica por parte dos Desenvolvedor Além disso, esses sistemas estão sujeitos a extrema volatilidade e isso pode exigir alguma resistência - é essencial que o comerciante do sistema ficar com o seu sistema durante estes tempos Na próxima parcela, vamos dar uma olhada em como criar um comércio E discutir alguns dos softwares que os comerciantes do sistema usam para tornar suas vidas mais fáceis. Sistemas de software de distribuição ainda é uma atividade em grande parte indisciplinada, apesar dos muitos avanços na notação e metodologia feita nos últimos 10-15 anos. De uma organização grande vai algo como isto. Padrões normais ou mesmo recomendações não existem, levando a diagramas ad-hoc com Um nível limitado de consistência no nível da equipe e nenhuma consistência no nível da empresa. Os formatos de diagrama variam de caixas e linhas a paredes flamejantes, estações de trabalho em miniatura e um conjunto ilimitado de ícones do Microsoft Visio. A maioria dos diagramas está sobrecarregada com qualquer informação que possa caber E, em seguida, um pouco mais. Multiple fornecedores envolvem em projetos, trazendo seus próprios formatos de diagrama, ou ainda mais provável, vários indivíduos de vendedores sortidos, cada um trazendo suas próprias preferências diagramming. Systems Flow tem sido um advogado de longa data da UML para Arquiteturas de sistemas de diagramação Todos os nossos consultores são treinados no básico da notação e em nossas extensões estilísticas e formais únicas Acreditamos que uma abordagem rigorosa mas simples para diagramação é o ingrediente mais crítico para as comunicações formais em um ambiente de TI de negócios misto. Alguns exemplos de nossa abordagem, juntamente com um pouco de explicação. Logical Deployment Diagram. Notation UML Deployment Diagram. Conventions M Odels sistemas lógicos como nós, incluem componentes de arquitetura significativa, mostram provedores de interface com pirulitos e consumidores de interface com uma linha de conexão Veja Diagrama Lógico de Arquitetura Investigative para mais detalhes. Audiência Para audiências técnicas principalmente. Data Context Diagram. Notation UML Communication Diagram. Conventions Show real Tempo e lote entre sistemas, bem como a natureza dos dados que estão sendo transferidos Veja Diagrama de Contexto de Dados de Arquitetura Investigative para mais detalhes. Audiência Bom para empresas e partes interessadas técnicas. Visão Geral da Visão Diagram. Notation Não-padrão. Convenções Exatidão e completude do comércio para Simplicidade e comerciabilidade Use um conjunto limitado de ícones reconhecíveis Consulte Diagrama Conceitual de Arquitetura Investigative para obter mais informações. Audiência Principalmente para as partes interessadas de negócios, mas também um bom diagrama de roteiro geral para todo um sistema. Aprenda mais sobre diagramação e UML para Arquitetura de Soluções e Empresa aqui em nosso site. Blog ou Consulte algumas de nossas publicações Aproveitando a UML como uma notação padrão para a arquitetura corporativa é um bom ponto de partida, pois apresenta uma visão geral um pouco mais detalhada desse tópico. Convidamos você a se juntar a nós para defender o valor de um conjunto claro de padrões de diagramação Para sua organização Por favor, entre em contato conosco, teremos prazer em ajudar. Ben Sommer é um Consultor Principal com Systems Flow, Inc Ele atualmente consulta em arquitetura de soluções empresariais para grandes clientes Ele também lidera programas de treinamento para Sistemas Flow Sua carreira tem abrangido rede, sistemas , E engenharia de software de código aberto com foco em gerenciamento de identidade Ben é um músico treinado e compositor.
No comments:
Post a Comment