Friday 24 November 2017

Design do sistema de negociação java


Bem-vindo ao Home do Open Java Trading System O Open Trading System Java (OJTS) é 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 conectar-se às 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 revelou-se extremamente interessante mas ao mesmo tempo era muito duro encontrar toda a informação sobre como nosso sistema monetary trabalha. Vá ao redor e pergunte a povos de onde o dinheiro vem, quem o cria eo que determina seu valor. Você vai notar que mesmo as pessoas que têm um mestrado ou Phd. Na economia não saberão estes 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 escreva 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, todo cidadão de um país democrático nesse mundo deve saber de onde vem o nosso dinheiro. Provavelmente você veio a este site para procurar ferramentas que o ajudam a aumentar sua riqueza monetária. 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 adicionou referências a informações sobre nossos sistemas monetários (Dólar / Euro). Adicionada 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 no ITSdoc. org. Há um novo wiki disponível em ITSdoc. org que focaliza na distribuição do conhecimento no domínio dos 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. Implantação de manipulação de moeda e conversões. Os portfólios são implementados e você pode trabalhar com portfólios da mesma maneira que com itens de papel de segurança simples. Foi adicionado um quadro geral para a aplicação de algoritmos às séries temporais do mercado de ações. 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 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 quickstart / screenshot. 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, eu atualizei o manual para documentar o uso interativo do projeto através da camada SISC Scheme. Para o impaciente aqui é um quickstart / screenshot seção 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 Para que você possa começar a usar o OJTS imediatamente 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: The Exolab License) O Castor é um framework 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-para-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. ABCL / CommonLisp (licença: GNU GPL v2) A ABCL (Armed Bear Common Lisp) é usada 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 Google para JavaTraders pode ser a melhor entrada para você descobrir 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 do FDL. JAVA Trading System Developer SCT recursos têm 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 através de programas formais de treinamento. Empresa: SystemCanada systemcanada Um dos maiores gigantes bancários da Austrália atualmente tem uma excelente oportunidade para um experiente desenvolvedor de sistemas de negociação JAVA com uma paixão Para o desenvolvimento de ponta O foco deste papel será construir um sistema de negociação de derivados a partir do zero. Isso será feito utilizando Java, unix e cache distribuído. O candidato ideal terá as seguintes habilidades: Core Java habilidades de desenvolvimento do lado do servidor em Mercados Financeiros sólidas competências Unix Competência comprovada de cache distribuído e tecnologias de cache (Gemfire e / Ou Coherence preferido) Design de sistema comprovado e habilidades de arquitetura para sistemas de negociação Fortes habilidades analíticas Sistemas de Negociação Codificação: Design do Sistema O primeiro passo para codificar qualquer aplicativo é a fase de projeto. Quer codificação de um aplicativo de software ou um sistema de negociação, cuidadosa concepção e planeamento irá ajudá-lo a terminar em um curto período de tempo com menos erros. Estaremos usando um processo simples de três etapas para projetar nosso sistema de negociação. Etapa 1: Criar suas regras de sistema de negociação O primeiro passo ao projetar um sistema de negociação é simplesmente chegar com as regras pelas quais seu sistema irá operar. Deve haver quatro regras básicas para cada sistema de comércio: Comprar - Identificar quando você quer comprar uma posição. 13 Venda - Identifique quando você quer vender uma posição. 13 Parar - Identificar quando você quer cortar suas perdas. 13 Alvo - Identifique quando você deseja registrar um ganho. Assim, por exemplo: Compra - Quando a média móvel 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 máxima de 10 unidades 13 Alvo - Alvo de 10 unidades Este sistema de exemplo comprará e venderá com base nas médias móveis de 30 e 60 dias e registrará automaticamente ganhos após um lucro de 10 unidades ou venderá com perda após um movimento de 10 unidades na direção 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 definições para o indicador ou estudo Estes componentes devem ser construídos escrevendo o nome abreviado para o estudo, seguido das definições entre parênteses. Essas configurações entre parênteses são referidas como parâmetros do indicador ou estudo. Ocasionalmente, um estudo pode ter vários parâmetros, caso em que você simplesmente separá-los com vírgulas. Vamos dar uma olhada em alguns exemplos: MA (25) - média móvel de 25 dias 13 RSI (25) - Índice de força relativa de 25 dias 13 MACD (Close (0), 5,5) - Variação de convergência média móvel definida com base no fechamento de hoje, com um comprimento rápido de cinco dias e um comprimento lento de cinco dias Se você não tiver certeza de quantos parâmetros um determinado componente requer, Você pode simplesmente consultar a documentação de seus programas de negociação, que lista esses componentes juntamente com os valores que precisam ser preenchidos. Por exemplo, podemos ver que a Tradecision nos diz que precisamos de três parâmetros com o MACD: Assim, para o exemplo mencionado na etapa Um, nós usaria: MA (30) - Significado 30 dias de média móvel 13 MA (60) - Significado 60 dias de média móvel Passo 3: Adicionando ação Agora vamos adicionar ações para as nossas regras. Cada ação adere ao seguinte formato básico: IF Condição WHILE Condição THEN Ação Normalmente, a condição será composta pelos componentes e parâmetros criados acima, enquanto a ação consistirá em comprar ou vender. As condições também podem consistir em inglês simples se nenhum componente estiver presente. Observe que o componente while é opcional. Aqui estão 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) é igual a 50 THEN Comprar Então, 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 comércio tem 10 unidades de lucro, em seguida, vender 13 SE o nosso comércio tem 10 unidades de perda, em seguida, vender o que é o seguinte Em seguida, bem dar uma olhada na conversão dessas regras em um código que seu computador Pode compreender a codificação de sistemas de negociação: a fase de codificação Subscrever notícias para usar para as últimas idéias e análise Estou no processo de concepção de um aplicativo de negociação que usará uma API de mercados para fazer encomendas no mercado. Esta não é uma aplicação de negociação algorítmica de alto desempenho complexo do tipo encontrado em bancos de investimento. Esta é apenas uma pequena aplicação pessoal que irá comércio talvez duas ou três vezes por dia, dependendo das condições de mercado / tendências A aplicação será composto (aproximadamente) dos seguintes módulos / pacotes: Estratégias - Os algoritmos de negociação real Analytics - As classes para analisar o Preços ao vivo ordens de ampères no mercado para produzir sinais de compra / venda Serviços - As classes usadas para manter uma conexão com o mercado, recuperar informações de mercado e colocar ordens de compra / venda. Até agora, tudo o que é necessário para a aplicação parece estar disponível na internet: Apache CXF para gerar as classes Java usadas para acessar os serviços web de mercados. Apache Maths para a realização da análise de preços Wikipedia para os padrões de design diferentes, como Fábrica, Assunto / Observador, Estado, etc Onde estou realmente preso no entanto é com os algoritmos. Ive decidiu usar o padrão de Estado para particionar, em agrupamentos lógicos, as várias peças de lógica que devem ser realizadas quando certas condições de mercado são atendidas. O problema é que eu estou começando a ver que é muito provável que cada classe de estado irá conter uma explosão de instruções if else: Eu não posso ajudar, mas sinto falta algo aqui e que deve existir alguma estrutura ou padrão de design Eu não sei sobre qual Permite que o desenvolvedor encapsule todas as entradas e saídas de um dado contexto de negócios em um número finito de ações de negócios de entrada / saída nas quais regras de negócios podem ser construídas. I. e. Em vez de ter que hardcode algoritmos Im esperando que ele deve ser possível fazer o aplicativo em um processador de regras de algum tipo. Infelizmente eu não sei por onde começar. Espero que eu tenha explicado o meu dilema com clareza suficiente, se você gostaria de me esclarecer qualquer coisa, por favor me avise. Obrigado perguntou Oct 8 09 em 22: 48A Java Intra-dia Trading System Estas páginas web vêm de algum trabalho que eu fiz em um sistema de comércio intra-dia, 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 da computação 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. Como 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. Há muitos mais recursos Java 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 foi projetado para trabalhar com o sistema de negociação Interactive Brokers 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 modelos 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 (servidor de aplicativos), 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 2017

No comments:

Post a Comment