Tuesday 3 April 2018

Sistema de negociação de ações java


Sistema de negociação de ações java
Bem-vindo ao Home of the Open Java Trading System.
O Open Java Trading System (OJTS) é uma infra-estrutura comum para desenvolver sistemas de negociação de ações. Consiste em quatro partes: a coleta de dados brutos pela internet, o reconhecimento da negociação marca um módulo de visualização e módulos para se conectar às interfaces programáticas das plataformas de negociação, como os bancos. O objetivo do projeto é fornecer uma infra-estrutura comum independente (independente de plataforma) autônoma para desenvolvedores de sistemas de negociação. Alguns dos aspectos que devem ser abordados são fornecer um esquema comum de banco de dados compatível com SQL92 para armazenar dados financeiros, interfaces Java comuns para como trocar dados entre diferentes módulos, visualização de dados financeiros brutos e sinais comerciais e vários outros aspectos comuns necessários para criar um sistema comercial final.
Por causa do meu trabalho e da minha família, não consigo mais tempo para melhorar o OJTS. Estou continuando a atualizar a seção de links abaixo que irá orientá-lo para projetos mais ativos de código aberto java nessa área, no entanto.
Na verdade, como consequência do meu interesse pela dinâmica dos mercados de ações, comecei uma jornada nos detalhes mais profundos da economia nacional para entender as taxas de câmbio. Este tópico finalmente me leva a um estudo mais profundo do dinheiro em si como a unidade métrica que usamos em economia para medir "valor", "sucesso" ou "utilidade". Este tópico revelou-se extremamente interessante, mas ao mesmo tempo era muito difícil encontrar informações sobre o funcionamento do nosso sistema monetário. Vá ao redor e pergunte às pessoas de onde vem o dinheiro, quem o cria e o que determina seu valor. Você notará que mesmo as pessoas que têm um mestrado ou um doutorado. na economia não conhecerá esses detalhes. Oh, sim, eles responderão em termos técnicos crípticos, mas não poderão desenhar um diagrama simples que descreva o processo.
H. G. Wells disse ter dito:
"Escrever a moeda é geralmente reconhecido como uma prática censurável, de fato quase indecente. Os editores imploram ao escritor quase lágrima não escrever sobre dinheiro, não porque seja um assunto desinteressante, mas porque sempre foi profundamente perturbador ".
Eu sugiro a qualquer pessoa que viva em uma sociedade democrática para ler sobre este assunto. Isso afeta nossas vidas todos os dias até certo ponto que não pode ser exagerado! Na minha opinião, todos os cidadãos de um país democrático nesse mundo devem saber de onde o nosso dinheiro vem. Provavelmente você veio a este site para procurar ferramentas que o ajudem a aumentar sua riqueza monetária. Para entender a unidade métrica "dinheiro" (não importa se Dollar ou Euro) será um ingrediente importante no seu toolkit para ganhar dinheiro.
Se você tem pouco tempo e só pode dar ao luxo de ler um único livro sobre esse assunto, então sugiro que você leia Riqueza, Riqueza Virtual e Dívida por Frederick Soddy. Eu consegui comprar uma cópia usada via Amazon por US $ 23,48, mas existe também uma versão online. Você precisará do plugin DjVu para lê-lo. Este livro foi publicado originalmente em 1929, mas ainda descreve os fatos reais muito bem. Mesmo que eu não concorde com todas as conclusões de Frederick Soddy, seu trabalho é provável e provoca que você faça as perguntas corretas.
Lançamentos, Bugfixes e Documentação atualizada.
Estou investigando como tornar a OJTS mais compatível com outros esforços do sistema de comércio java.
Existe um novo wiki disponível no ITSdoc com foco na distribuição de conhecimento no domínio dos sistemas de investimento e comercialização. A idéia por trás do ITSdoc é ter uma plataforma de colaboração semelhante à wikipedia, ajudando a comunidade a compartilhar conhecimento.
Ontem eu publiquei a Versão 0.13 da biblioteca do OpenJavaTradingSystem. Entre os novos recursos estão: Recuperação de dados para ações, fundos e moedas da OnVista. Implementação de movimentação de moeda e conversões. As carteiras são implementadas e você pode trabalhar com Portfolios da mesma forma que com itens de papel de segurança simples. Adicionado uma estrutura geral para a aplicação de algoritmos para as séries temporárias do mercado de ações. Alternou do shell interativo SISC / Scheme para ABCL / CommonLisp plus seu editor chamado "J". Adicionado um mecanismo geral de cache de dados para armazenar dados que já foram recuperados na web no sistema de arquivos. Além de mais algumas melhorias menores Se você estiver interessado nesta nova versão, você deve começar na seção quickstart / screenshot. O manual ainda não está atualizado, mas pode dar-lhe, no entanto, algumas informações de fundo valiosas se você deseja usar a biblioteca em seu projeto. A documentação deve ser atualizada em breve.
D o c u m e n t a t i o n.
Documentos que descrevem os internos do projeto. Java Data Objects e documentação da interface.
& gt; & gt; HTML & gt; & gt; PDF Investment and Trading System Documentation Project.
T e c h n o l o g y.
Blocos de construção de terceiros utilizados neste projeto.
O HSQLDB é o mecanismo de banco de dados fornecido com o projeto para que você possa 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)
Castor é uma estrutura de ligação de dados de código aberto para Java [tm]. É o caminho mais curto entre objetos Java, documentos XML e tabelas relacionais. A Castor fornece ligação Java-to-XML, a persistência Java-to-SQL e muito mais. Castor Doclet (licença: GNU LGPL v2.1)
Doclet de Java para gerar mapeamento e arquivos DDL para Castor JDO e Castor XML. TestMaker (licença: TestMaker Open-Source License)
Do projeto TestMaker, apenas a implementação dos protocolos como HTTP ou HTTPS é usada 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. ABCL / CommonLisp (licença: GNU GPL v2)
ABCL (Armed Bear Common Lisp) é usado para implementar o coração algorítmico do projeto na linguagem de programação comum 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)
O Joda Time substitui as classes JDK Data e Time originais.
Links para outros projetos.
O grupo Google JavaTraders pode ser a melhor entrada para você descobrir mais sobre outros sistemas e ferramentas comerciais com base em Java.
O código do projeto está licenciado nos termos da LGPL e toda a documentação que você encontra neste projeto está licenciada nos termos da FDL.

Sistema de negociação de ações java
Uma plataforma de negociação quantitativa intra-dia implementada em Java precisa dos seguintes componentes:
Um fluxo de dados de "tick" comercial com a menor latência possível que suporte a assinatura por ação. A capacidade de fazer pedidos, cancelar a ordem e consultar o status do pedido.
A plataforma deve ser capaz de ser executada no Windows e no Linux (ou mesmo no Solaris).
A plataforma Interactive Brokers é discutida na página Architecture of a Interactive Brokers Based Trading System. Esta página destina-se a fornecer uma lista de outros corretores que suportam uma API Java.
Interactive Brokers parece ter um bloqueio neste mercado. Talvez o motivo para isso é que eles fornecem que se senta no topo do FIX, o que facilita a criação de um sistema.
Para a nossa base de clientes de programação, a Lime Brokerage reduz os custos de inicialização ao fornecer uma API fácil de usar. Disponível para C / C ++ e JAVA, esta API oferece uma interface comercial limpa. Ao garantir toda a conectividade e a funcionalidade de nível de protocolo, a Lime API permite que os clientes se concentrem em seus algoritmos ao invés de se preocupar com detalhes de baixo nível. Também apoiamos o protocolo FIX 4.2 padrão da indústria.
Recursos FlexTrader: negociação algorítmica totalmente personalizada. Processar mais de mil transações por segundo, enquanto analisa os dados do mercado em uma base tick-by-tick dentro dos limites de uma estratégia automatizada. Os cálculos personalizados estão disponíveis com o toque de um botão. As estratégias de negociação automatizadas e personalizáveis ​​incluem: VWAP, impulso, reversão média, preços adaptativos e melhores esforços. As estratégias personalizáveis ​​de arbitragem incluem: arbitragem conversível, arbitragem de índice, arbitragem ETF, arbitragem transfronteiriça (com a capacidade de proteger a exposição FX automaticamente) e arbitragem de risco (como parte do nosso módulo de negociação de pares). Análise abrangente de gráficos de desempenho de carteira, setor e negociação de ações simples. Modelos de substituição de roteadores e pedidos inteligentes compatíveis com RegNMS customizáveis, bem como um conjunto completo de recursos de escrita de regras para garantir que seu sistema atenda às demandas crescentes colocadas em profissionais de negociação. Integração completa de OMS através de APIs C # /, JAVA e C ++. Solução ASP global com centros de dados totalmente vinculados em NY, Reino Unido, Genebra, Paris e Cingapura. Portware.
O Portware tem algo que eles chamam de StrategyServer, que aparentemente podem ser conectados através de uma API de soquete. Eles não fornecem muito além dos detalhes de marketing no StrategyServer no site. O Portware segmenta seus negócios em fundos.

Sistemas comerciais: projetando seu sistema - Parte 1.
A seção anterior deste tutorial analisou os elementos que compõem um sistema comercial e discutiu as vantagens e desvantagens de usar esse sistema em um ambiente comercial real. Nesta seção, construímos esse conhecimento examinando quais mercados são especialmente adequados ao comércio de sistemas. Em seguida, analisaremos mais detalhadamente os diferentes gêneros dos sistemas de negociação.
O mercado de ações é provavelmente o mercado mais comum para o comércio, especialmente entre novatos. Nesta arena, dominam grandes players, como Warren Buffett e Merrill Lynch, e as estratégias tradicionais de investimento em crescimento e valor são, de longe, as mais comuns. No entanto, muitas instituições investiram significativamente na concepção, desenvolvimento e implementação de sistemas de negociação. Investidores individuais estão se juntando a essa tendência, embora lentamente.
A grande quantidade de ações disponíveis permite que os comerciantes testem sistemas em muitos tipos diferentes de ações - tudo, desde estoques extraterrestre extremamente voláteis (OTC) até chips azuis não voláteis.
A eficácia dos sistemas de negociação pode ser limitada pela baixa liquidez de algumas ações, especialmente os problemas de OTC e rosa.
As comissões podem comer em lucros gerados por negócios bem-sucedidos e podem aumentar as perdas. OTC e ações de folhas cor-de-rosa geralmente incorrem 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 desempenho passado, seus pares ou o mercado em geral.
O mercado de câmbio, ou forex, é o maior e mais líquido mercado do mundo. Os governos, bancos e outras grandes instituições do mundo trocam trilhões de dólares no mercado cambial todos os dias. A maioria dos comerciantes institucionais no forex conta com sistemas de negociação. O mesmo vale para os indivíduos no forex, mas alguns comerciais com base em relatórios econômicos ou pagamentos de juros.
A liquidez neste mercado - devido ao enorme volume - torna os sistemas de negociação mais precisos e eficazes.
Não há comissões neste mercado, apenas se espalha. Portanto, é muito mais fácil fazer muitas transações sem aumentar os custos.
Em comparação com o valor das ações ou commodities disponíveis, o número de moedas para o comércio é limitado. Mas, devido à disponibilidade de "pares de moedas exóticas" - ou seja, moedas de países menores - o alcance em termos de volatilidade não é necessariamente limitado.
Os principais sistemas de negociação utilizados no forex são aqueles que seguem as tendências (um ditado popular no mercado é "a tendência é seu amigo"), ou sistemas que compram ou vendem em breakouts. Isso ocorre porque os indicadores econômicos geralmente causam grandes movimentos de preços ao mesmo tempo.
Os mercados de ações, divisas e commodities oferecem negociação de futuros. Este é um veículo popular para o comércio de sistemas devido ao maior valor de alavancagem disponível e ao aumento da liquidez e da volatilidade. No entanto, esses fatores podem cortar as duas formas: podem amplificar seus ganhos ou amplificar suas perdas. Por esse motivo, o uso de futuros é geralmente reservado para comerciantes avançados de sistemas individuais e institucionais. Isso ocorre porque os sistemas de negociação capazes de capitalizar o mercado de futuros exigem uma personalização muito maior, usam indicadores mais avançados e levam muito mais tempo para desenvolver.
Cabe ao investidor individual decidir qual mercado é mais adequado ao comércio de sistemas - cada um tem suas próprias vantagens e desvantagens. A maioria das pessoas está mais familiarizada com os mercados de ações, e essa familiaridade facilita o desenvolvimento de um sistema de negociação. No entanto, forex é normalmente pensado para ser a plataforma superior para operar sistemas de negociação - especialmente entre os comerciantes mais experientes. Além disso, se um comerciante decide capitalizar o aumento de alavancagem e volatilidade, a alternativa de futuros está sempre aberta. Em última análise, a escolha está nas mãos do desenvolvedor do sistema.
O método mais comum de negociação de sistema é o sistema de tendências. Na sua forma mais fundamental, este sistema simplesmente espera um movimento de preço significativo, depois compra ou vende nessa direção. Este tipo de bancos de sistemas na esperança de que esses movimentos de preços mantenham a tendência.
Sistemas médios móveis.
Freqüentemente usado na análise técnica, uma média móvel é um indicador que mostra simplesmente o preço médio de uma ação ao longo de um período de tempo. A essência das tendências é derivada dessa medida. A maneira mais comum de determinar a entrada e a saída é um cruzamento. A lógica por trás disso é simples: uma nova tendência é estabelecida quando o preço cai acima ou abaixo da média do preço histórico (tendência). Aqui está um gráfico que traça tanto o preço (linha azul) quanto o Mestre de 20 dias (linha vermelha) da IBM:
O conceito fundamental por trás deste tipo de sistema é semelhante ao de um sistema de média móvel. A idéia é que quando um novo alto ou baixo é estabelecido, o movimento do preço provavelmente continuará na direção do breakout. Um indicador que pode ser usado na determinação de breakouts é um simples Bollinger Band & reg; sobreposição. Bollinger Bands & reg; mostram médias de preços altos e baixos, e ocorrem breakouts quando o preço atende às bordas das bandas. Aqui está um gráfico que traça o preço (linha azul) e Bollinger Bands & reg; (linhas de cinza) da Microsoft:
Desvantagens de Trend-Following Systems:
Requisição de decisão empírica necessária - Ao determinar tendências, sempre há um elemento empírico a 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, então 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 de breakout.
Lagging Nature - As médias móveis e os sistemas de breakout estarão sempre atrasados. Em outras palavras, eles nunca podem atingir o topo ou a parte inferior de uma tendência. Isso inevitavelmente resulta em uma perda de lucros potenciais, o que às vezes pode ser significativo.
Efeito Whipsaw - Entre as forças de mercado que são prejudiciais ao sucesso dos sistemas de tendência, este é um dos mais comuns. O efeito whipsaw ocorre quando a média móvel gera um sinal falso - isto é, quando a média cai apenas para o alcance, de repente, inverte a direção. Isso pode levar a perdas maciças, a menos que sejam utilizadas efetivas perdas de parada e técnicas de gerenciamento de risco.
Sideways Markets - Os sistemas de tendência seguinte são, por natureza, capazes de ganhar dinheiro somente em mercados que realmente fazem tendências. No entanto, os mercados também se movem de lado, ficando dentro de um certo intervalo por um longo período de tempo.
Pode ocorrer volatilidade extrema - Ocasionalmente, os sistemas que seguem a tendência podem experimentar alguma volatilidade extrema, mas o comerciante deve manter seu sistema. A incapacidade de fazê-lo resultará em falhas garantidas.
Basicamente, o objetivo com o sistema contra-tendência é comprar no menor baixo e vender no mais alto. A principal diferença entre este e o sistema de tendência seguinte é que o sistema contra-tendência não é auto-corretivo. Em outras palavras, não há tempo definido para sair de 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 o impulso em uma direção começa a desaparecer. Isso geralmente é calculado usando osciladores. Por exemplo, um sinal pode ser gerado quando os estocásticos ou outros indicadores de força relativa caem abaixo de certos pontos. Existem outros tipos de sistemas de negociação contra tendência, mas todos compartilham o mesmo objetivo fundamental: comprar baixo e vender alto.
Requisição de decisões e requisitos mecânicos - Por exemplo, um dos fatores que o desenvolvedor do sistema deve decidir é os pontos nos quais os indicadores de força relativa se desvanecem.
Pode ocorrer volatilidade extrema - esses sistemas também podem experimentar alguma volatilidade extrema e uma incapacidade de manter o sistema apesar dessa volatilidade resultará em falhas garantidas.
Desvantagem ilimitada - Como mencionado anteriormente, existe um potencial de downside ilimitado porque o sistema não é auto-corrigido (não há tempo definido para sair de posições).
Os principais mercados para os quais os sistemas de negociação são adequados são os mercados de ações, divisas 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 de contra-tendência. Apesar de suas diferenças, ambos os tipos de sistemas, em seus estágios de desenvolvimento, requerem uma tomada de decisão empírica por parte do desenvolvedor. Além disso, esses sistemas estão sujeitos a extrema volatilidade e isso pode exigir algum vigor - é essencial que o comerciante do sistema fique com seu sistema durante esses tempos. Na próxima parcela, examinaremos mais de perto como projetar um sistema de negociação e discutir alguns dos softwares que os comerciantes do sistema usam para facilitar sua vida.

Codificação de sistemas de negociação.
Por Justin Kuepper.
Como são criados sistemas de negociação automatizados?
Este tutorial se concentrará nas segunda e terceira partes deste processo, onde suas regras são convertidas em um código que seu software comercial pode entender e usar.
Vantagens e desvantagens.
Um sistema automatizado leva a emoção e ocupado - trabalhe fora da negociação, o que permite que você se concentre em melhorar sua estratégia e regras de gerenciamento de dinheiro. Uma vez que um sistema lucrativo é desenvolvido, não requer nenhum trabalho de sua parte até que ele quebre, ou as condições do mercado exigem uma mudança. Desvantagens:
Se o sistema não estiver corretamente codificado e testado, grandes perdas podem ocorrer muito rapidamente. Às vezes, é impossível colocar certas regras em código, o que dificulta o desenvolvimento de um sistema de negociação automatizado. Neste tutorial, você aprenderá como planejar e projetar um sistema de negociação automatizado, como traduzir esse design para o código que seu computador irá entender, como testar seu plano para garantir um desempenho ótimo e, finalmente, como colocar seu sistema em uso.

Sistema de negociação de ações java
Obter através da App Store Leia esta publicação em nosso aplicativo!
Construindo um aplicativo de negociação de ações baseado em Java, precisa de ponteiros para tecnologias para usar.
Estou construindo um aplicativo em Java (com um frontend jQuery) que precisa conversar com um aplicativo de terceiros. ele precisa atualizar a interface a cada dois segundos no máximo.
Seria uma boa idéia usar cometas? Em caso afirmativo, como eles se encaixam na imagem?
Que outros meios / tecnologias posso usar para tornar o aplicativo melhor?
O aplicativo avaliará os preços das ações de um aplicativo de terceiros, escrevê-lo em um banco de dados e, em seguida, empurrá-lo para o front-end a cada segundo, para a votação, eu tenho um temporizador que é executado a cada segundo para chamar o aplicativo de terceiros para dados, eu então tem que exibi-lo para o front-end usando JSP ou algo assim,
Bem, neste momento, não tenho certeza se eu deveria usar um servlet para escrever isso para o front-end, o que você recomendaria? Como devo fazer isso?
Existe alguma tecnologia nova que eu possa usar em vez de servlets?
Também uso Berkeley db para armazenar os dados, você acha que é uma boa opção? quais seriam as desvantagens, se houver para usar Berkeley ...
Tenho absolutamente nenhuma ideia, então qualquer conselho será muito apreciado.
Editar: Estou planejando fazer isso para que um aplicativo deskop seja constantemente pesquisado a partir da terceira parte e grava no banco de dados e um aplicativo da Web somente lê e exibe a partir do banco de dados, isso reduzirá a carga no aplicativo da Web e tudo o que tem para é lido a partir de db.
Dê uma olhada em usar uma estrutura de aplicativos da Web em vez de Servlets - a menos que seja um projeto realmente básico com uma tela. Há muito no mundo de Java, infelizmente, e pode ser um pouco de um campo minado. Pegue com talvez SpringMVC ou Struts 2, a pior parte é configurá-los, mas dê uma olhada em um aplicativo de exemplo mais um tutorial ou dois e trabalhe a partir daí.
Outra opção a ser usada é o uso de uma estrutura de modelo, como o Appfuse para se instalar e executar sem ter que integrar muito o framework juntos, veja:
Ele fornece um modelo para configurar o SpringMVC com o MySQL como banco de dados mais Spring como uma estrutura POJO. Pode ser uma maneira rápida de começar e criar e construir um protótipo.
A julgar pelo seu requisito de latência de 2 segundos seria sábio olhar para algum tipo de framework AJAX - JQuery ou Prototype / Scriptaculous são ambos bons lugares para começar.
Em termos de outras tecnologias para melhorar as coisas, você quer considerar um sistema de compilação, a Ant / Maven está bem com o Maven o pouco mais complexo dos dois.
Além disso, considere JUnit para testar a aplicação. Você pode querer considerar Selenium para testes funcionais do front-end.
Isso é realmente uma aplicação comercial? Ou apenas um aplicativo de exibição de preço de ações? Estou perguntando porque, da sua descrição, parece ser o último.
Quão crítico é que os dados sejam consultados a cada segundo? Especificamente, isso importaria se algumas pesquisas forem um segundo ou dois tarde?
Se você está construindo um aplicativo de estoque comercial (onde o tempo é absolutamente crítico), ou se você não pode se atrasar em sua votação, eu recomendaria que você olhasse para uma das soluções Java Real Time:
Além disso, meu único conselho é que você fique com boas práticas de design da OO. Por exemplo, use um DAO para escrever em seu banco de dados, desta forma, se você achar que o Berkeley DB não é bastante para você, você pode mudar para um sistema de banco de dados relacional com relativa facilidade. Também torna mais fácil para você avançar para algumas soluções de particionamento de banco de dados (por exemplo, Hibernate Shards) se você decidir que você precisa.
Embora eu possa ter minhas próprias preferências de tecnologia (por exemplo, eu escolheria Spring MVC para o front-end como outros já mencionaram, eu tentaria usar Hibernate para persistance), eu realmente não posso afirmar que isso seria melhor do que outras tecnologias lá fora. Vá com algo que você conheça, se ele se encaixa na conta.
Eu acho que você deve se concentrar em seu projeto arquitetônico antes de escolher tecnologias com foco em escalabilidade e extensibilidade. Uma vez que um design arquitetônico está no lugar, você pode olhar para ver o que está disponível e o que você precisa construir, o que deve ser bastante óbvio.
Embora não seja diretamente comparável, veja como o Google, o eBay e o YouTube lidam com os problemas de escalabilidade que enfrentam. Enquanto um sistema de negociação não terá os problemas que essas pessoas têm com um grande número de usuários, você terá problemas semelhantes com os volumes de dados e poderá processar ticks de preço em tempo hábil.
A LSE está indo para 3000 nomes, multiplique isso pelas dez ou mais trocas populares no mundo e você tem muitos dados atualizados continuamente ao longo do período em que cada mercado está aberto. Para lhe dar uma ideia do envolvimento na captura de dados de uma única troca, veja o kx /.
Do ponto de vista do banco de dados, você precisará de alguma força industrial que permita o agrupamento e tenha uma replicação confiável - para mim isso significa Oracle. Você também quer olhar para um projeto de banco de dados da série temporal, que na minha experiência é a melhor maneira de construir esse tipo de sistema.
Os mesmos requisitos de escalabilidade e confiabilidade serão aplicados aos seus servidores de aplicativos, sendo o JBoss a escolha lógica, embora eu também considere o OSGi Spring Server (springsource / products / dmserver), pois sua natureza leve pode torná-lo mais rápido.
Você também vai querer servidores Apache para balanceamento de carga e para servir conteúdo estático - um Google rápido irá aparecer pilhas de informações sobre isso, então não vou repeti-lo aqui.
Também esquece a votação, não escala. Consulte o uso de mensagens e processos de consumidor para a comunicação entre processos, eventos e threads de trabalho para a comunicação em processo. Ambas as técnicas conseguem um efeito de balanceamento de carga natural que pode ser ajustado aumentando o número de processos de consumidor ou threads de trabalho conforme necessário.
Também um front-end estático não vai cortar a mostarda, a IMHO. Dê uma olhada no mercado do mercado já - mercados CNC, IG Index, etc, todos têm aplicativos comerciais bastante impressionantes em tempo real.
Como um lado, assumindo que este é um projeto comercial e não significa colocar um downer sobre o todo, empresas como CNC Markets, IG Index, etc, fazem seu dinheiro com taxas de negociação, sendo o software um meio para um fim, o que você obtém Acesse gratuitamente, simplesmente, tendo uma conta. O outro alvo para o software de negociação é instituições comerciais, como bancos, gerentes de investimento, etc. Eu gostaria de um plano bastante estancado sobre como eu iria entrar em qualquer um desses mercados antes de gastar muito tempo e esforço.
O PostgreSQL é provavelmente o banco de dados certo. É um pouco mais empreendedor do que o MySQL. Quanto ao front-end, há muitas coisas que podem ir "no topo" de servlets, SpringMVC, Tapestry, e assim por diante. A implementação do servlet real será escondida de você.
Muitos sugerem, e provavelmente não é uma má sugestão usar Spring para configurar o aplicativo e fazer qualquer injeção de dependência.
Se você está procurando um pouco mais leve, você pode considerar grails. É rápido desenvolver e tornar-se maduro.
No entanto, é meio difícil recomendar coisas sem saber que tipo de ambiente de "produção" isso seria. Estamos falando muitas transações? (Claro, é um programa de negociação de ações, mas é uma simulação com um pequeno número de usuários, etc.) É divertido sugerir coisas, mas se você for sério, não tenho certeza de que eu iniciaria um grande projeto como esse. Há muitas maneiras de fazer isso, e muitas maneiras de fazer isso errado.

No comments:

Post a Comment