Java Trading System Architecture


Bem-vindo ao Home do Sistema de Negociação Open Java O Open Trading System Java (OJTS) pretende ser uma infra-estrutura comum para desenvolver sistemas de negociação de ações. Consiste em quatro partes: a coleta de dados brutos através da internet, o reconhecimento de sinais de negociação, um módulo de visualização e módulos para conexão com as interfaces programáticas de plataformas de negociação como bancos. O objetivo dos projetos é fornecer uma autônoma pura Java (plataforma independente) infra-estrutura comum para os desenvolvedores de sistemas de negociação. Alguns dos aspectos que devem ser abordados são fornecer um esquema de banco de dados comum compatível com SQL92 para armazenar dados financeiros, interfaces Java comuns para como intercambiar dados entre diferentes módulos, visualização de dados financeiros brutos e sinais de negociação e vários outros aspectos comuns necessários para criar Um sistema de negociação final. Por causa do meu trabalho e família eu não encontrar o tempo para melhorar OJTS mais. Estou continuando a atualizar a seção de links abaixo que irá orientá-lo para projetos mais ativos java open source nessa área, no entanto. Na verdade, como consequência do meu interesse na dinâmica dos mercados de ações, comecei uma viagem para os detalhes mais profundos da economia nacional, a fim de compreender as taxas de câmbio. Este tópico finalmente me leva a um estudo mais aprofundado do dinheiro em si como a unidade métrica que usamos na economia para medir o valor, o sucesso ou a utilidade. Este tópico acabou por ser extremamente interessante, mas ao mesmo tempo, foi muito difícil encontrar qualquer informação sobre como funciona o nosso sistema monetário. Dê a volta e pergunte às pessoas de onde vem o dinheiro, quem o cria eo que determina seu valor. Você vai notar que mesmo as pessoas que têm um mestrado ou Phd. Em economia não conhecerão esses detalhes. Oh, sim, eles vão responder em alguns termos crípticos técnicos, mas eles não serão capazes de desenhar um diagrama simples que descreve o processo. H. G. Wells é relatado para ter dito: Escrever da moeda é reconhecido geralmente como uma prática objetable, de fato quase um indecente. Os editores irão implorar ao escritor quase com lágrimas que não escrevam sobre dinheiro, não porque seja um assunto desinteressante, mas porque sempre foi profundamente perturbador. Sugiro a qualquer pessoa que viva em uma sociedade democrática para ler sobre este tópico. Ela afeta nossas vidas todos os dias em uma extensão que não pode ser exagerada Na minha opinião, cada cidadão de um país democrático nesse mundo deve saber de onde está vindo o nosso dinheiro. Muito provável você veio a este Web site a fim procurar ferramentas que o ajudam em aumentar sua riqueza monetary. Para entender o dinheiro da unidade métrica (não importa se o dólar ou o euro) será um ingrediente importante em seu toolkit para fazer o dinheiro. Se você tem pouco tempo e só pode dar ao luxo de ler um único livro sobre esse assunto, então eu sugiro que você leia riqueza, riqueza virtual e dívida por Frederick Soddy. Eu era capaz de comprar uma cópia usada via Amazon para 23.48, mas existe também uma versão on-line. Você precisará do plugin DjVu para lê-lo. Este livro foi publicado originalmente em 1929, mas ainda descreve os fatos reais muito bem. Mesmo se eu não concordo com todas as conclusões de Frederick Soddy seu trabalho é agradavelmente pensado provocando e levará você a fazer as perguntas certas. Anunciou a suspensão do desenvolvimento ativo e acrescentou referências a informações sobre nossos sistemas monetários (DollarEuro). Adicionado uma seção de links para outros projetos interessantes do sistema de negociação java. Estou investigando sobre como fazer OJTS mais compatível com outros esforços do sistema de negociação java. Projeto de Documentação do Sistema de Investimento e Negociação a ser encontrado em ITSdoc. org. Há um novo wiki disponível em ITSdoc. org focalizando na distribuição do conhecimento no domínio de sistemas de investimento e de troca. A idéia por trás do ITSdoc. org é ter uma plataforma de colaboração semelhante à wikipedia ajudando a comunidade a compartilhar conhecimento. OpenJavaTradingSystem v0.13 lançado. Ontem eu publiquei a versão 0.13 da biblioteca OpenJavaTradingSystem. Entre os novos recursos estão: Recuperação de dados para ações, fundos e moedas da OnVista. Implementação do tratamento de moeda e conversões. Os portfólios são implementados e você pode trabalhar com portfólios da mesma forma que com itens de papel de segurança simples. Foi adicionado um quadro geral para aplicação de algoritmos às séries temporais do mercado de ações. Mudou do shell interativo SISCScheme para ABCLCommonLisp mais seu editor chamado J. Adicionado um mecanismo de cache de dados gerais para armazenar em cache dados que já foram recuperados na web no sistema de arquivos. Além de muitas melhorias menores Se você está interessado nesta nova versão você deve começar na seção quickstartscreenshot. O manual ainda não está atualizado, mas pode fornecer algumas informações de fundo valiosas se você quiser usar a biblioteca em seu projeto. A documentação deve ser atualizada em breve. Atualmente não há muito desenvolvimento feito, porque estou atualizando meu conhecimento sobre as redes bayesianas. Veja, por exemplo, a lista de livros no meu site. Dois projetos muito interessantes a esse respeito são WEKA e BNJ. Logo vou continuar o desenvolvimento e vou começar a integrar a primeira inteligência no sistema. Hoje eu coloquei o primeiro lançamento na seção de arquivos da área de download sourceforge. Além disso atualizei o manual para documentar o uso interativo do projeto através da camada SISC Scheme. Para o impaciente aqui é uma seção quickstartscreenshot para você ir. Documentos que descrevem os aspectos internos do projeto. Documentação de Java Data Objects e Interface gtgtHTML gtgtPDF Documentação de Utilização gtgtHTML gtgtPDF Projecto de Documentação do Sistema de Investimento e Negociação gtgtITSdoc. org T echnology Blocos de Construção de Terceiros utilizados neste projecto HSQL Database Engine (licença: hsqldblic. txt) O HSQLDB é o motor de base de dados fornecido com o De modo que você pode começar imediatamente a usar o OJTS sem instalar um banco de dados de terceiros. Mas se você planeja usar outro banco de dados compatível com SQL92, então esta é uma opção de configuração. Castor (licença: A Licença Exolab) O Castor é uma estrutura de vinculação de dados Open Source para Javatm. É o caminho mais curto entre objetos Java, documentos XML e tabelas relacionais. O Castor fornece ligação Java-para-XML, persistência Java-to-SQL e muito mais. Castor Doclet (licença: GNU LGPL v2.1) Doclet Java para gerar arquivos de mapeamento e DDL para Castor JDO e Castor XML. TestMaker (licença: TestMaker Open-Source License) A partir do projeto TestMaker somente a implementação de protocolos como HTTP ou HTTPS são usados ​​para coletar dados da web. JCookie (licença: GNU LGPL v2.1) A biblioteca jCookie é necessária para que as bibliotecas do TestMaker funcionem. Htmlparser (licença: GNU LGPL v2.1) A biblioteca htmlparser é usada para extrair os dados dos recursos da web. ABCCLommonLisp (licença: GNU GPL v2) O ABCL (Armed Bear Common Lisp) é usado para implementar o coração algorítmico do projeto na linguagem de programação ANSI Common Lisp. JFreeChart (licença: GNU LGPL v2.1) O JFreeChart é usado para a visualização de dados financeiros como gráficos. JSci (licença: GNU LGPL v2.1) JSci - Uma API científica para Java. Joda Time (licença: Home-made OpenSource License) O Joda Time substitui as classes originais de Data e Hora do JDK. Links para outros projetos O grupo do JavaTraders do Google pode ser a melhor entrada para você saber mais sobre outros sistemas e ferramentas de negociação baseados em Java. L icense Termos de uso O código do projeto é licenciado sob os termos da LGPL e toda a documentação que você encontrar neste projeto são licenciados sob os termos da FDL. A Java Intra-dia Trading System Estas páginas web vêm de algum trabalho Eu fiz em um intra-day trading system, implementado em Java. Este software é executado sob o servidor de aplicativos Tomcat Java e suporta modelos de negociação que lêem um fluxo de dados de mercado em tempo real. Com base nesse fluxo de dados, o software gera ordens de compra e venda e rastreia sua posição no mercado. Por favor, não me envie e-mail perguntando quais técnicas de negociação vai fazer você rico. Eu sei muito sobre a implementação de sistemas de software complexos e eu sei algo sobre a construção de sistemas de negociação do mercado. Estou, no entanto, ainda trabalhando para uma vida assim que parece que eu não descobri o molho secreto mim. Eu não tenho qualquer mercado notável juju para transmitir a você. Sob certas condições, considerarei projetos de consultoria externos. Um projeto de consultoria deve ser aprovado pelo meu empregador, por isso há algumas despesas gerais no início (a última vez que fiz um desses projetos, levou um mês para obter aprovação). Só posso trabalhar com cidadãos americanos, cidadãos da Commonwealth britânica ou aliados da OTAN. A primeira regra para aqueles que trabalham para as taxas horárias é para ser pago, por isso não me escreva sugerindo que eu trabalho gratuitamente para uma participação no seu empreendimento. Eu sou um engenheiro de software muito experiente e cientista de computador e minhas taxas horárias refletem isso. Tradeengine. tar. gz Este é o sistema comercial que desenvolvi. Eu possuo os direitos de autor deste software e você não pode usá-lo para qualquer finalidade comercial sem permissão. Além disso, você não pode usar este software sem permissão para qualquer tipo de negociação no mercado. Uma vez que você não tem permissão para usar este software para qualquer outra coisa que não seja referência, você não pode me responsabilizar por qualquer erro neste software ou problemas encontrados em seu uso. Este software está ficando um pouco datado. Existem muitos recursos Java mais disponíveis agora. Embora isso mostre a arquitetura do núcleo, um sistema muito melhor poderia ser implementado usando recursos Java atuais. O sistema de negociação é projetado para trabalhar com o sistema Interactive Brokers trading através da interface Java. Estas páginas web consistem em notas sobre o design do sistema de comércio que desenvolvi. Há também notas sobre os experimentos com alguns estilos de análise técnica estilo intra-day trading. Um sistema de negociação Java é suportado por uma infra-estrutura de software complexa. Isso inclui o servidor web Apache Tomcat (separador de aplicativo), feeds de dados em tempo real e software para suportar a interação baseada no navegador da Web com o usuário. Ao pesquisar o software que eu precisaria para apoiar o sistema de comércio, eu criei essas notas. Ian Kaplan janeiro de 2009 Última atualização: novembro de 2011Arquitetura de um sistema interativo de negociação baseado em corretores Esta página discute a API Java Interactive Brokers para negociação orientada a modelos de software. Interactive Brokers (IB) parece atraente porque eles parecem ter suporte robusto para Java. Desde o início IB desenvolveu sua interface comercial para suportar plataformas de negociação de software personalizado. Eles cresceram em um corretor considerável, apoiando um volume de negociação significativo. Para contas suficientemente financiadas também suportam alavancagem de 4 a 1. Brokers Interativos Serviços Profissionais Suporte Os seus serviços profissionais linha gratuita de suporte é: 866-694-2757 Interactive Brokers API Guia do Usuário Tamanho mínimo da conta As bolsas (NASDAQ e NYSE) exigem um saldo mínimo de 25.000 (EUA) para uma conta que pode suportar computador Negociação e múltiplas transações por dia. Se esse saldo não for mantido, as trocas exigem que a negociação seja encerrada. Na prática, isso significa que a negociação de computadores requer pelo menos 35K (EUA) e, provavelmente, algo mais próximo de 50K como mínimo. A conectividade com IB IB suporta a negociação na Internet. Isso significa que as transações comerciais podem ser vítimas da conectividade e roteamento da Internet. Através Speakeasy (IANS ISP) uma transação de pacote de ida e volta para IB leva cerca de 93 msec. Note que esta é a latência do pacote. Várias transações de pacotes podem estar pendentes. Mas a latência de base sobre a minha conexão ADSL significa que uma plataforma de negociação em execução no meu sistema Linux pode maximizar cerca de 50 transações de ordem por segundo, que é o máximo IB para a API Java. Eu só tenho uma linha de 1,2 Mbit ADSL para que a limitação poderia ser no meu fim. Não é claro qual é a limitação no IB se houvesse um grande tubo no lado do sistema de negociação. No entanto, independentemente de quão grande o pipe, encaminhamento através da Internet é, por design, não-determinística. O IB também suporta suporte de linhas dedicadas T1, seja através de Radianz ou Savvis. A BT Radianz é a fornecedora líder de conectividade segura, confiável e escalável para a comunidade financeira global. A infra-estrutura de mercado compartilhada da empresa é uma plataforma neutra que fornece acesso turnkey a uma ampla gama de aplicativos de pré-negociação, comércio e pós-negociação dos principais fornecedores de conteúdo e serviços através da cadeia de processamento direto (STP). SAVVIS, Inc. (NASDAQ: SVVS) é um fornecedor global de serviços de utilidade de TI que lidera a indústria na prestação de serviços de hospedagem, rede e aplicativos seguros, confiáveis ​​e escaláveis. A abordagem estratégica da SAVVIS combina o uso da tecnologia de virtualização, um modelo de serviços públicos e sistemas automatizados de gerenciamento e provisionamento de software. As soluções SAVVIS permitem que os clientes se concentrem no seu core business enquanto a SAVVIS garante a qualidade da sua infra-estrutura de TI. Com uma plataforma de serviços de TI que se estende a 45 países, SAVVIS é um dos maiores provedores mundiais de serviços de computação IP. O IB também apoiará uma linha T1 arrendada diretamente no data center do IB. As possibilidades de conectividade do IB são mostradas a seguir: Transações A transação IB passa pelo TWS (software comercial), a API (neste caso Java) ou através do CTCI FIX. Uma única conta (nome de utilizador e palavra-passe) está limitada a 50 mensagens por segundo (consulte esta página). A relação entre mensagens e transações de ordens não está clara. O cliente IBGateway permite conexões FIX CTCI para IB através da Internet. É um software que funciona como uma ponte entre o seu motor FIX eo IB. Usando a interface CTCI FIX o limite é de 150 mensagens por segundo. Isso requer um mecanismo FIX (normalmente chamado de cliente) para fornecer a API para o protocolo FIX. O protocolo FIX parece ser extremamente complexo e, aparentemente, nem todos os sistemas de corretagem ou troca o suportam exatamente da mesma maneira. A implementação de uma API cliente para este protocolo seria demorada e dispendiosa. Felizmente, os motores Java FIX podem ser adquiridos a partir de várias fontes, incluindo: Aplicações IB API Para se conectar ao IB, o aplicativo TWS (Trading Work Station) deve ser executado primeiro. Um aplicativo Java API pode se conectar a um processo TWS. A conexão ocorre através de uma conexão de rede. Se o TWS eo aplicativo API forem executados no mesmo sistema, esta conexão de rede será feita através de localhost. Isso é bastante estranho, uma vez que a execução do programa de negociação exige que o TWS seja executado primeiro para estabelecer uma sessão (via nome de usuário e senha). Os Conselhos de Discussão do IB Os Corretores Independentes hospedaram o quadro de discussão. Esta placa é notavelmente honesta (por exemplo, IB não parece editar as verrugas relatadas pelos usuários). O quadro de mensagens do IB pode ser avaliado usando o ID do usuário ea senha. Tabuleiro de mensagens do IB do IB IB Tick Alimentação de dados A API IB suporta um feed de dados de carrapatos. Cada ação deve ser solicitada e há uma única interface na API que recebe os dados do tick. Este fluxo de dados deve ser demultiplexado em um fluxo para cada estoque. O IB não fornece um feed de dados de mercado verdadeiro, mas sim um feed de dados consolidado com cerca de um valor por 250 ms. Para muitos aplicativos comerciais isso é suficiente. Melhores feeds de dados estão disponíveis. Mas eles são caros, pelo menos para uma alimentação de qualidade profissional.

Comments

Popular Posts