Design Do Sistema De Negociacao Java




Design Do Sistema De Negociação JavaBem-vindo ao Home do Open Java Trading System O Open Trading System Java (OJTS) e uma infra-estrutura comum para desenvolver sistemas de negociacao de acoes. Consiste em quatro partes: a coleta de dados brutos atraves da internet, o reconhecimento de sinais de negociacao, um modulo de visualizacao e modulos para conectar-se as interfaces programaticas de plataformas de negociacao como bancos. O objetivo dos projetos e fornecer uma autonoma pura Java (plataforma independente) infra-estrutura comum para os desenvolvedores de sistemas de negociacao. Alguns dos aspectos que devem ser abordados sao fornecer um esquema de banco de dados comum compativel com SQL92 para armazenar dados financeiros, interfaces Java comuns para como intercambiar dados entre diferentes modulos, visualizacao de dados financeiros brutos e sinais de negociacao e varios outros aspectos comuns necessarios para criar Um sistema de negociacao final. Por causa do meu trabalho e familia eu nao encontrar o tempo para melhorar OJTS mais. Estou continuando a atualizar a secao de links abaixo que ira orienta-lo para projetos mais ativos java open source nessa area, no entanto. Na verdade, como consequencia do meu interesse na dinamica dos mercados de acoes, comecei uma viagem para os detalhes mais profundos da economia nacional, a fim de compreender as taxas de cambio. Este topico finalmente me leva a um estudo mais aprofundado do dinheiro em si como a unidade metrica que usamos na economia para medir o valor, o sucesso ou a utilidade. Este topico revelou-se extremamente interessante mas ao mesmo tempo era muito duro encontrar toda a informacao sobre como nosso sistema monetary trabalha. Va ao redor e pergunte a povos de onde o dinheiro vem, quem o cria eo que determina seu valor. Voce vai notar que mesmo as pessoas que tem um mestrado ou Phd. Na economia nao saberao estes detalhes. Oh, sim, eles vao responder em alguns termos cripticos tecnicos, mas eles nao serao capazes de desenhar um diagrama simples que descreve o processo. H. G. Wells e relatado para ter dito: Escrever da moeda e reconhecido geralmente como uma pratica objetable, de fato quase um indecente. Os editores irao implorar ao escritor, quase com lagrimas, que nao escreva sobre dinheiro, nao porque seja um assunto desinteressante, mas porque sempre foi profundamente perturbador. Sugiro a qualquer pessoa que viva em uma sociedade democratica para ler sobre este topico. Ela afeta nossas vidas todos os dias em uma extensao que nao pode ser exagerada Na minha opiniao, todo cidadao de um pais democratico nesse mundo deve saber de onde vem o nosso dinheiro. Provavelmente voce veio a este site para procurar ferramentas que o ajudam a aumentar sua riqueza monetaria. Para entender o dinheiro da unidade metrica (nao importa se o dolar ou o euro) sera um ingrediente importante em seu toolkit para fazer o dinheiro. Se voce tem pouco tempo e so pode dar ao luxo de ler um unico livro sobre esse assunto, entao eu sugiro que voce leia riqueza, riqueza virtual e divida por Frederick Soddy. Eu era capaz de comprar uma copia usada via Amazon para 23,48, mas existe tambem uma versao on-line. Voce precisara do plugin DjVu para le-lo. Este livro foi publicado originalmente em 1929, mas ainda descreve os fatos reais muito bem. Mesmo se eu nao concordo com todas as conclusoes de Frederick Soddy seu trabalho e agradavelmente pensado provocando e levara voce a fazer as perguntas certas. Anunciou a suspensao do desenvolvimento ativo e adicionou referencias a informacoes sobre nossos sistemas monetarios (Dolar / Euro). Adicionada uma secao de links para outros projetos interessantes do sistema de negociacao java. Estou investigando sobre como fazer OJTS mais compativel com outros esforcos do sistema de negociacao java. Projeto de Documentacao do Sistema de Investimento e Negociacao a ser encontrado no ITSdoc. org. Ha um novo wiki disponivel em ITSdoc. org que focaliza na distribuicao do conhecimento no dominio dos sistemas de investimento e de troca. A ideia por tras do ITSdoc. org e ter uma plataforma de colaboracao semelhante a wikipedia ajudando a comunidade a compartilhar conhecimento. OpenJavaTradingSystem v0.13 lancado. Ontem eu publiquei a versao 0.13 da biblioteca OpenJavaTradingSystem. Entre os novos recursos estao: Recuperacao de dados para acoes, fundos e moedas da OnVista. Implantacao de manipulacao de moeda e conversoes. Os portfolios sao implementados e voce pode trabalhar com portfolios da mesma maneira que com itens de papel de seguranca simples. Foi adicionado um quadro geral para a aplicacao de algoritmos as series temporais do mercado de acoes. Mudou do shell interativo SISC / Scheme para ABCL / CommonLisp mais seu editor chamado J. Adicionado um mecanismo de cache de dados geral para armazenar em cache dados que ja foram recuperados na web no sistema de arquivos. Alem de muitas melhorias menores Se voce esta interessado nesta nova versao, voce deve comecar na secao quickstart / screenshot. O manual ainda nao esta atualizado, mas pode fornecer algumas informacoes de fundo valiosas se voce quiser usar a biblioteca em seu projeto. A documentacao deve ser atualizada em breve. Atualmente nao ha 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 sao WEKA e BNJ. Logo vou continuar o desenvolvimento e vou comecar a integrar a primeira inteligencia no sistema. Hoje eu coloquei o primeiro lancamento na secao de arquivos da area de download sourceforge. Alem disso, eu atualizei o manual para documentar o uso interativo do projeto atraves da camada SISC Scheme. Para o impaciente aqui e um quickstart / screenshot secao para voce ir. Documentos que descrevem os aspectos internos do projeto. Documentacao de Java Data Objects e Interface gtgtHTML gtgtPDF Documentacao de Utilizacao gtgtHTML gtgtPDF Projecto de Documentacao do Sistema de Investimento e Negociacao gtgtITSdoc. org T echnology Blocos de Construcao de Terceiros utilizados neste projecto HSQL Database Engine (licenca: hsqldblic. txt) O HSQLDB e o motor de base de dados fornecido com o Para que voce possa comecar a usar o OJTS imediatamente sem instalar um banco de dados de terceiros. Mas se voce planeja usar outro banco de dados compativel com SQL92, entao esta e uma opcao de configuracao. Castor (licenca: The Exolab License) O Castor e um framework de vinculacao de dados Open Source para Javatm. E o caminho mais curto entre objetos Java, documentos XML e tabelas relacionais. O Castor fornece ligacao Java-para-XML, persistencia Java-para-SQL e muito mais. Castor Doclet (licenca: GNU LGPL v2.1) Doclet Java para gerar arquivos de mapeamento e DDL para Castor JDO e Castor XML. TestMaker (licenca: TestMaker Open-Source License) A partir do projeto TestMaker somente a implementacao de protocolos como HTTP ou HTTPS sao usados ??para coletar dados da web. JCookie (licenca: GNU LGPL v2.1) A biblioteca jCookie e necessaria para que as bibliotecas do TestMaker funcionem. Htmlparser (licenca: GNU LGPL v2.1) A biblioteca htmlparser e usada para extrair os dados dos recursos da web. ABCL / CommonLisp (licenca: GNU GPL v2) A ABCL (Armed Bear Common Lisp) e usada para implementar o coracao algoritmico do projeto na linguagem de programacao ANSI Common Lisp. JFreeChart (licenca: GNU LGPL v2.1) O JFreeChart e usado para a visualizacao de dados financeiros como graficos. JSci (licenca: GNU LGPL v2.1) JSci - Uma API cientifica para Java. Joda Time (licenca: Home-made OpenSource License) O Joda Time substitui as classes originais de Data e Hora do JDK. Links para outros projetos O grupo do Google para JavaTraders pode ser a melhor entrada para voce descobrir outros sistemas e ferramentas de negociacao baseados em Java. L icense Termos de uso O codigo do projeto e licenciado sob os termos da LGPL e toda a documentacao que voce encontrar neste projeto sao licenciados sob os termos do FDL. JAVA Trading System Developer SCT recursos tem uma ampla gama de habilidades em diferentes Tecnologias. O grande conjunto de habilidades foi possibilitado por um foco consciente no fortalecimento de nossa base de habilidades. Cada pessoa selecionada para nossa equipe traz algo novo, algo que acrescenta a nossas ofertas. Aprendemos continuamente, tanto no trabalho como atraves de programas formais de treinamento. Empresa: SystemCanada www. systemcanada Um dos maiores gigantes bancarios da Australia atualmente tem uma excelente oportunidade para um experiente desenvolvedor de sistemas de negociacao JAVA com uma paixao Para o desenvolvimento de ponta O foco deste papel sera construir um sistema de negociacao de derivados a partir do zero. Isso sera feito utilizando Java, unix e cache distribuido. O candidato ideal tera as seguintes habilidades: Core Java habilidades de desenvolvimento do lado do servidor em Mercados Financeiros solidas competencias Unix Competencia comprovada de cache distribuido e tecnologias de cache (Gemfire e / Ou Coherence preferido) Design de sistema comprovado e habilidades de arquitetura para sistemas de negociacao Fortes habilidades analiticas Sistemas de Negociacao Codificacao: Design do Sistema O primeiro passo para codificar qualquer aplicativo e a fase de projeto. Quer codificacao de um aplicativo de software ou um sistema de negociacao, cuidadosa concepcao e planeamento ira ajuda-lo a terminar em um curto periodo de tempo com menos erros. Estaremos usando um processo simples de tres etapas para projetar nosso sistema de negociacao. Etapa 1: Criar suas regras de sistema de negociacao O primeiro passo ao projetar um sistema de negociacao e simplesmente chegar com as regras pelas quais seu sistema ira operar. Deve haver quatro regras basicas para cada sistema de comercio: Comprar - Identificar quando voce quer comprar uma posicao. 13 Venda - Identifique quando voce quer vender uma posicao. 13 Parar - Identificar quando voce quer cortar suas perdas. 13 Alvo - Identifique quando voce deseja registrar um ganho. Assim, por exemplo: Compra - Quando a media movel de 30 dias (MA) cruza acima do MA de 60 dias Venda - Quando o MA de 30 dias cruza abaixo do MA 13 Stop de 60 dias - Perda maxima de 10 unidades 13 Alvo - Alvo de 10 unidades Este sistema de exemplo comprara e vendera com base nas medias moveis de 30 e 60 dias e registrara automaticamente ganhos apos um lucro de 10 unidades ou vendera com perda apos um movimento de 10 unidades na direcao oposta. Passo 2: Identificar os componentes de cada regra Agora que temos nossas regras para baixo, precisamos identificar os componentes envolvidos em cada regra. Cada componente deve conter dois elementos: O indicador ou estudo utilizado 13 As definicoes para o indicador ou estudo Estes componentes devem ser construidos escrevendo o nome abreviado para o estudo, seguido das definicoes entre parenteses. Essas configuracoes entre parenteses sao referidas como parametros do indicador ou estudo. Ocasionalmente, um estudo pode ter varios parametros, caso em que voce simplesmente separa-los com virgulas. Vamos dar uma olhada em alguns exemplos: MA (25) - media movel de 25 dias 13 RSI (25) - Indice de forca relativa de 25 dias 13 MACD (Close (0), 5,5) - Variacao de convergencia media movel definida com base no fechamento de hoje, com um comprimento rapido de cinco dias e um comprimento lento de cinco dias Se voce nao tiver certeza de quantos parametros um determinado componente requer, Voce pode simplesmente consultar a documentacao de seus programas de negociacao, que lista esses componentes juntamente com os valores que precisam ser preenchidos. Por exemplo, podemos ver que a Tradecision nos diz que precisamos de tres parametros com o MACD: Assim, para o exemplo mencionado na etapa Um, nos usaria: MA (30) - Significado 30 dias de media movel 13 MA (60) - Significado 60 dias de media movel Passo 3: Adicionando acao Agora vamos adicionar acoes para as nossas regras. Cada acao adere ao seguinte formato basico: IF Condicao WHILE Condicao THEN Acao Normalmente, a condicao sera composta pelos componentes e parametros criados acima, enquanto a acao consistira em comprar ou vender. As condicoes tambem podem consistir em ingles simples se nenhum componente estiver presente. Observe que o componente while e opcional. Aqui estao alguns exemplos para ajudar a ilustrar este ponto: IF MA (30) Cruza Acima de MA (60) THEN Compre 13 IF MA (30) Cruza Abaixo MA (60) WHILE Volume (20,000) THEN Vender 13 IF EMA Maior do que MA (5) THEN Vender 13 IF RSI (20) e igual a 50 THEN Comprar Entao, para o exemplo weve usando, wed simplesmente lista: IF MA (30) Cruza Acima MA (60) THEN Buy 13 IF MA 30) Cruzes Abaixo MA (60) THEN Vender 13 Se o nosso comercio tem 10 unidades de lucro, em seguida, vender 13 SE o nosso comercio tem 10 unidades de perda, em seguida, vender o que e o seguinte Em seguida, bem dar uma olhada na conversao dessas regras em um codigo que seu computador Pode compreender a codificacao de sistemas de negociacao: a fase de codificacao Subscrever noticias para usar para as ultimas ideias e analise Estou no processo de concepcao de um aplicativo de negociacao que usara uma API de mercados para fazer encomendas no mercado. Esta nao e uma aplicacao de negociacao algoritmica de alto desempenho complexo do tipo encontrado em bancos de investimento. Esta e apenas uma pequena aplicacao pessoal que ira comercio talvez duas ou tres vezes por dia, dependendo das condicoes de mercado / tendencias A aplicacao sera composto (aproximadamente) dos seguintes modulos / pacotes: Estrategias - Os algoritmos de negociacao real Analytics - As classes para analisar o Precos ao vivo ordens de amperes no mercado para produzir sinais de compra / venda Servicos - As classes usadas para manter uma conexao com o mercado, recuperar informacoes de mercado e colocar ordens de compra / venda. Ate agora, tudo o que e necessario para a aplicacao parece estar disponivel na internet: Apache CXF para gerar as classes Java usadas para acessar os servicos web de mercados. Apache Maths para a realizacao da analise de precos Wikipedia para os padroes de design diferentes, como Fabrica, Assunto / Observador, Estado, etc Onde estou realmente preso no entanto e com os algoritmos. Ive decidiu usar o padrao de Estado para particionar, em agrupamentos logicos, as varias pecas de logica que devem ser realizadas quando certas condicoes de mercado sao atendidas. O problema e que eu estou comecando a ver que e muito provavel que cada classe de estado ira conter uma explosao de instrucoes if else: Eu nao posso ajudar, mas sinto falta algo aqui e que deve existir alguma estrutura ou padrao de design Eu nao sei sobre qual Permite que o desenvolvedor encapsule todas as entradas e saidas de um dado contexto de negocios em um numero finito de acoes de negocios de entrada / saida nas quais regras de negocios podem ser construidas. I. e. Em vez de ter que hardcode algoritmos Im esperando que ele deve ser possivel fazer o aplicativo em um processador de regras de algum tipo. Infelizmente eu nao sei por onde comecar. Espero que eu tenha explicado o meu dilema com clareza suficiente, se voce gostaria de me esclarecer qualquer coisa, por favor me avise. Obrigado perguntou Oct 8 09 em 22: 48A Java Intra-dia Trading System Estas paginas web vem de algum trabalho que eu fiz em um sistema de comercio intra-dia, implementado em Java. Este software e executado sob o servidor de aplicativos Tomcat Java e suporta modelos de negociacao que leem 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 posicao no mercado. Por favor, nao me envie e-mail perguntando quais tecnicas de negociacao vai fazer voce rico. Eu sei muito sobre a implementacao de sistemas de software complexos e eu sei algo sobre a construcao de sistemas de negociacao do mercado. Estou, no entanto, ainda trabalhando para uma vida assim que parece que eu nao descobri o molho secreto mim. Eu nao tenho qualquer mercado notavel juju para transmitir a voce. Sob certas condicoes, considerarei projetos de consultoria externos. Um projeto de consultoria deve ser aprovado pelo meu empregador, por isso ha algumas despesas gerais no inicio (a ultima vez que fiz um desses projetos, levou um mes para obter aprovacao). So posso trabalhar com cidadaos americanos, cidadaos da Commonwealth britanica ou aliados da OTAN. A primeira regra para aqueles que trabalham para as taxas horarias e para ser pago, por isso nao me escreva sugerindo que eu trabalho gratuitamente para uma participacao no seu empreendimento. Eu sou um engenheiro de software muito experiente e cientista da computacao e minhas taxas horarias refletem isso. Tradeengine. tar. gz Este e o sistema comercial que desenvolvi. Eu possuo os direitos de autor deste software e voce nao pode usa-lo para qualquer finalidade comercial sem permissao. Alem disso, voce nao pode usar este software sem permissao para qualquer tipo de negociacao no mercado. Como voce nao tem permissao para usar este software para qualquer outra coisa que nao seja referencia, voce nao pode me responsabilizar por qualquer erro neste software ou problemas encontrados em seu uso. Este software esta ficando um pouco datado. Ha muitos mais recursos Java disponiveis agora. Embora isso mostre a arquitetura do nucleo, um sistema muito melhor poderia ser implementado usando recursos Java atuais. O sistema de negociacao foi projetado para trabalhar com o sistema de negociacao Interactive Brokers atraves da interface Java. Estas paginas web consistem em notas sobre o design do sistema de comercio que desenvolvi. Ha tambem notas sobre os experimentos com alguns modelos de analise tecnica estilo intra-day trading. Um sistema de negociacao Java e suportado por uma infra-estrutura de software complexa. Isso inclui o servidor web Apache Tomcat (servidor de aplicativos), feeds de dados em tempo real e software para suportar a interacao baseada no navegador da Web com o usuario. Ao pesquisar o software que eu precisaria para apoiar o sistema de comercio, eu criei essas notas. Ian Kaplan janeiro de 2009 Ultima atualizacao: novembro de 2011