Eu recebi recentemente a atribuição de modelagem de um ajuste de banco de dados para armazenar preços de ações para mais de 140 empresas Os dados serão coletados a cada 15 min por 8 5 h cada dia de todas essas empresas O problema que estou enfrentando agora é como configurar o Banco de dados para alcançar pesquisa rápida buscar dado este data. One solução seria armazenar tudo em uma tabela com o seguinte columns. Or eu poderia criar uma tabela para cada empresa e apenas armazenar o preço ea data para quando os dados foram coletados e outros Parâmetros não conhecidos atm. What é o seu pensamento sobre este tipo de soluções Espero que o problema foi explicado em pormenor suficiente, senão deixe-me know. Any outra solução seria muito appreciated. I levá-lo você está preocupado com o desempenho dado o grande número De registros seu provável gerar - 140 empresas 4 pontos de dados hora 8 5 horas 250 dias de negociação ano significa que você está olhando em torno de 1 2 milhões de pontos de dados por ano. Modern sistemas de banco de dados relacional pode facilmente lidar Esse número de registros - sujeito a algumas considerações importantes - em uma única tabela - Eu não vejo um problema com o armazenamento de 100 anos de pontos de dados. Assim, sim, o seu projeto inicial é provavelmente o nome bestpany Preço Date Etc. Create índices sobre a empresa Nome e data que lhe permitirá responder a perguntas como. qual foi o maior preço da ação para a empresa x. que era o preço da ação da empresa x na data y. on data y, qual era o maior preço da ação. Para ajudar a evitar problemas de desempenho , Eu construir um banco de dados de teste e preenchê-lo com ferramentas de dados de exemplo como dbMonster tornar isso fácil e, em seguida, construir as consultas que você acha que vai correr contra o sistema real usar as ferramentas de ajuste para o seu sistema de banco de dados para otimizar essas consultas e ou índices. resposta Mar 23 13 at 15 08.Put-los em uma única tabela Modern DB motores podem facilmente lidar com os volumes que você especificou. Widd StockCode priceTimeInUTC PriceCode AskPrice BidPrice Volume. rowid Identidade UniqueIdentifier. StockCode em vez de Company Companie S tem vários tipos de socks. PriceTimeInUTC é padronizar qualquer datetime em um fuso horário específico. Também datetime2 mais precisas. PriceCode é usado para identificar o que de preço é Opções Futures CommonStock, PreferredStock, etc. AskPrice é o Price. BidPrice de compra é o Vender preço. Volume para venda de compra pode ser útil para você. Separately, tem uma tabela StockCode e um PriceCode table. answered Mar 23 13 em 15 19.A primeira pergunta, mais importante é quais são os tipos e padrões de uso das consultas que Será executado contra esta tabela É este um aplicativo online OLTP Transactional Processing, onde a grande maioria das consultas são contra um único registro, ou no máximo um pequeno conjunto de registros ou é para um aplicativo Online Analytical Processing, onde a maioria das consultas terá de Ler e processar, significativamente grandes conjuntos de dados para gerar agregações e fazer análise Estes dois tipos muito diferentes de sistemas devem ser modelados de maneiras diferentes. Se é o primeiro tipo de app, O LTP, a sua primeira opção é melhor, mas os padrões de uso e tipos de consultas ainda seria importante para determinar os tipos de índices para colocar na tabela. Se for um aplicativo OLAP e um sistema de armazenamento de bilhões de preços de ações soa Mais como um aplicativo OLAP, em seguida, a estrutura de dados que você configurar pode ser melhor organizado para armazenar valores de dados pré-agregados, ou até mesmo ir todo o caminho um uso de um banco de dados multidimensional como um cubo OLAP baseado em um esquema em estrela. 13 a 15 01. Em cima do que já foi dito, eu gostaria de dizer o seguinte Não use o nome da empresa ou algo parecido com o símbolo Ticker como sua chave primária Como você provavelmente vai descobrir, os preços das ações têm duas características importantes Que muitas vezes são ignoradas. Algumas empresas podem ser cotadas em múltiplas bolsas de valores e, portanto, têm preços de cotação diferentes em cada bolsa. Algumas empresas são cotadas em múltiplas vezes na mesma bolsa, mas em diferentes moedas. Generi C deve usar o ISIN, moeda, trio de ações como identificador para uma cotação. 6 de janeiro 14 em 13 56. Isso é uma abordagem de força bruta A segunda você adiciona fatores pesquisáveis pode mudar tudo Uma opção mais flexível e elegante é um Star schema, que pode escalar para qualquer quantidade de dados Eu sou um partido privado trabalhando neste myself. answered 12 de junho 13 em 20 26. Sua resposta.2017 Stack Exchange, Inc. Trading Systems Coding. Trading sistemas 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 ao limitar o risco Em uma situação ideal, os comerciantes devem se sentir como robôs, executando comércios sistematicamente e sem emoção Então, S para parar um robô de negociação meu sistema A resposta Nada Este tutorial irá apresentá-lo para as ferramentas e técnicas que você pode usar para criar seu próprio sistema automatizado de negociação. Como são automatizadas Trading Sistemas criados Os sistemas automatizados de negociação são criados convertendo as regras do seu sistema de negociação em código que seu computador pode entender Seu computador então executa essas regras através de seu software de negociação, que procura negócios que aderem às suas regras Finalmente, os negócios são automaticamente colocados com o seu Broker. This tutorial incidirá sobre a segunda e terceira partes deste processo, onde suas regras são convertidas em um código que o seu software de negociação pode entender e use. What Trading Software Suporta Automated Trading Systems Existem muitos programas comerciais que suportam sistemas de negociação automatizados Alguns irão automaticamente gerar e colocar negócios com o seu corretor Outros encontrarão automaticamente negócios que se encaixam em seus critérios, mas exigem que você coloque as ordens com seu corretor manualmente Além disso, os programas de negociação totalmente automáticos freqüentemente exigem que você use corretoras específicas que suportam esses recursos que você pode Devem também preencher um formulário de autorização adicional. Desvantagens Sistemas de negociação automatizados têm vários benefícios, mas eles também têm suas desvantagens Afinal, se alguém tivesse um sistema de negociação que automaticamente faziam dinheiro o tempo todo, ele ou ela literalmente possuir um dinheiro fazendo máquina. Um sistema automatizado leva a emoção e ocupado - trabalhar fora de negociação, o que lhe permite concentrar-se em melhorar a sua estratégia e regras de gestão de dinheiro. Uma vez que um sistema rentável é desenvolvido, ele não exige nenhum trabalho de sua parte até que ele quebre, ou as condições de mercado exigem uma mudança. Se o sistema não é Corretamente codificado e testado, grandes perdas podem ocorrer muito rapidamente. Às vezes é impossível colocar certas regras em código, o que torna difícil desenvolver um sistema automatizado de negociação. Neste tutorial você aprenderá a planejar e projetar um sistema de negociação automatizado, Como traduzir este design em código que o seu computador vai entender, como testar o seu plano para garantir o melhor desempenho e, finalmente, como colocar seu sistema para use. Find out se tomar o pat H menos viajado trabalhará em seu favor - ou de encontro a ele. Um sistema negociando pode conservar o tempo e fazer exame da emoção fora de negociar, mas adotar um toma a habilidade e os recursos - aprenda mais here. Most os corretores fornecer-lhe-ão registros de comércio, mas ele S também importante para manter o controle em seu próprio. Estes passos farão de você um mais disciplinado, mais inteligente e, em última análise, mais rico trader. Frequently Asked Questions. When você faz um pagamento de hipoteca, o montante pago é uma combinação de uma taxa de juros e principal Reembolso Sobre o. Learn para diferenciar entre bens de capital e bens de consumo, e ver por que os bens de capital exigem poupança e investimento. Um derivado é um contrato entre duas ou mais partes cujo valor é baseado em um instrumento financeiro subjacente acordado. Moat, cunhado e popularizado por Warren Buffett, refere-se a uma capacidade de negócios para manter vantagens competitivas. Perguntas mais freqüentes. Quando você faz um pagamento de hipoteca, o montante pago é uma combinação de um inter Se e diferenciar entre bens de capital e bens de consumo e ver por que os bens de capital exigem poupança e investimento. Um derivado é um contrato entre duas ou mais partes cujo valor é baseado em um ativo financeiro subjacente acordado . O termo fosso económico, cunhado e popularizado por Warren Buffett, refere-se a uma capacidade de negócios para manter vantagens competitivas. Algorithmic Trading System Architecture. Previamente, neste blog eu escrevi sobre a arquitetura conceitual de um sistema de negociação algorítmica inteligente, bem como o funcional E requisitos não funcionais de um sistema de negociação algorítmica de produção Desde então, eu 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 descrição Padrão De acordo com esta norma, uma arquitetura descr Iption must. Contain múltiplas vistas padronizadas arquitetônicas, por exemplo, UML e. Maintain rastreabilidade entre as decisões de design e exigências arquitetônicas. Definição de arquitetura de software. Não há ainda consenso sobre o que é arquitetura de um sistema. No contexto deste artigo, é definido como o Infra-estrutura dentro da qual componentes de aplicação que satisfazem requisitos funcionais podem ser especificados, implantados 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. Satisfaz seus requisitos funcionais podem ainda não conseguir cumprir as 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 inoperante com as organizações de gestão de risco e acc Sistemas de montagem Este sistema atenderia às suas expectativas. Conceptual Architecture. A vista conceitual 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 quebrado em quatro Camadas e dois aspectos arquitetônicos Para cada camada e arquiteturas de referência de aspecto e padrões são usados Padrões arquitetônicos são comprovadas, estruturas genéricas para a realização de requisitos específicos Os aspectos arquitetônicos são preocupações transversais que abrangem vários componentes. Arquitetura conduzida por evento - uma arquitetura que produz, detecta , Consome e reage a eventos. Os eventos incluem movimentos de mercado em tempo real, eventos ou tendências complexas e eventos de negociação, por exemplo, apresentação de uma ordem. Este diagrama ilustra a arquitetura conceitual do sistema de negociação algorítmica. Referência Architectures. To usar uma analogia, É semelhante aos planos para uma carga Este modelo de impressão azul pode ser reutilizado para vários projetos de construção, independentemente do edifício que está sendo construído, pois satisfaz um conjunto de requisitos comuns. De modo semelhante, uma arquitetura de referência define um modelo contendo estruturas e mecanismos genéricos que podem ser usados para Construir uma arquitetura de software concreta que satisfaça requisitos específicos A arquitetura para o sistema de negociação algorítmica usa uma arquitetura baseada em espaço SBA e um modelo de visão MVC controlador como referências Boas práticas, como o armazenamento de dados operacionais ODS, extrair transformar e carregar ETL padrão e um Data warehouse DW também são usados. Controlador de visualização de modelo - um padrão que separa a representação de informações da interação do usuário com ela. Arquitetura baseada em espaço - especifica uma infra-estrutura onde unidades de processamento acopladas de forma frouxa interagem entre si através de uma memória associativa compartilhada chamada espaço Mostrado abaixo. Visão conceitual arquitetônica baseada no espaço Modelo V A visão estrutural de uma arquitetura mostra os componentes e subcomponentes 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 Abaixo está a galeria dos diagramas de implantação do sistema de negociação algorítmica global e as unidades de processamento na arquitetura de referência SBA, bem como diagramas de componentes relacionados para cada um as camadas. Sistema de negociação de alto nível diagrama de distribuição de alto nível Diagrama de componente Diagrama de componente de processamento de evento de comerciante automatizado Fonte de dados e diagrama de componente de camada de pré-processamento 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 um requisito de qualidade manipulando algum aspecto de um qualidade Modelo de atributos através de decisões de projeto arquitetônico Um exemplo simples usado na arquitetura do sistema de negociação algorítmica é manipular um armazenamento de dados operacional ODS com um componente de consulta contínua Este componente analisaria continuamente o ODS para identificar e extrair eventos complexos As táticas a seguir são usadas na arquitetura. O padrão de disruptor no evento e filas de ordem. Memória compartilhada para o evento e filas de ordem. Linguagem de consulta contínua CQL na filtragem de ODS. Data com o padrão de design de filtro em dados de entrada. Algoritmos de evitação de choque em todas as conexões de entrada e saída. Gerenciamento AQM e congestionamento explícito notificationmodity recursos de computação com capacidade para atualizar scalable. Active redundância para todos os únicos pontos de falha. Indexação e estruturas de persistência otimizada no ODS. Schedule backup de dados regulares e scripts de limpeza para ODS. Transaction histórias em todos os bancos de dados. Checksums para todas as ordens para detectar falhas. Nnotate eventos com carimbos de data / hora 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. Autenticação de dois estágios para interfaces de usuário conectando a 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 projeto 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 do filtro eo componente de consulta contínua. Consulta Contínua Diagrama de componentes Padrão de design de disruptor fonte de diagrama de classe Padrão de filtro padrão diagrama de classe. De uma arquitetura mostra como os componentes e camadas devem interagir com um e Ela É útil na criação de cenários para testar projetos de arquitetura e para entender o sistema de ponta a ponta Esta visão consiste em diagramas de seqüência e diagramas de atividade Diagramas de atividades mostrando o processo interno do sistema de negociação algorítmica e como os comerciantes devem interagir com o Algorítmico sistema de negociação são mostrados abaixo. Algorithmic trader interação End-to-end processo de negociação algorítmica. 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 os requisitos funcionais e não funcionais. Um framework é uma arquitetura de referência realizada, por exemplo, o JBoss é um framework que realiza a arquitetura de referência do JEE As seguintes tecnologias e frameworks são interessantes e devem ser considerados quando Implementando um algori Thmic trading system. CUDA - NVidia tem uma série de produtos que suportam alto desempenho computação financeira modelagem Pode-se atingir até 50x melhorias de desempenho na execução de simulações de Monte Carlo na GPU em vez da CPU. Apache River - River é um kit de ferramentas usado Para desenvolver sistemas distribuídos Ele tem sido usado como uma estrutura para a construção de aplicações com base no padrão SBA. Apache Hadoop - no caso de que o log penetrante é um requisito, 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 lugar dos componentes automatizados comerciante. FIX Engine - um aplicativo autônomo que suporta o Financial Information Exchange protocolos FIX incluindo FIX, FAST , E FIXatdl. Whilst não uma tecnologia ou uma estrutura, os componentes devem ser construídos com uma programação de aplicações Interface API 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 de acordo com cada implementação. Dependências sobre a empresa externa e intercâmbio . A exigência de requisitos não funcionais e de restrições arquitectónicas. A arquitectura de software proposta deverá, por conseguinte, ser adaptada numa base casuística, a fim de satisfazer requisitos organizativos e regulamentares específicos, bem como superar restrições regionais. O sistema de negociação algorítmica Arquitetura deve ser visto 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.
No comments:
Post a Comment