Thursday 10 August 2017

Trading System Domain Model


Arquitetura do sistema A arquitetura do AlgoTrader é composta pelos seguintes componentes. O AlgoTrader Server fornece a infra-estrutura para todas as estratégias que estão sendo executadas em cima dela. O servidor AlgoTrader possui o principal mecanismo de Processamento de Evento Complexo Esper (CEP). É responsável por todos os objetos do modelo de domínio e sua persistência no banco de dados. Diferentes adaptadores de dados de mercado estão disponíveis para processar dados de mercado atuais e históricos. Na outra extremidade estão disponíveis adaptadores para diferentes corretores de execução e trocas, que são responsáveis ​​por fazer pedidos e receber execuções. O AlgoTrader Server também fornece componentes de negócios para gerenciamento de portfólio, medição de desempenho, gerenciamento de riscos, gerenciamento de dinheiro, preço de opções, reconciliação, hedge Forex e otimização de parâmetros. Em cima do AlgoTrader Server, qualquer número de estratégias pode ser implantado. O AlgoTrader possui uma arquitetura baseada em eventos, utilizando um motor dedicado Esper CEP por estratégia. Uma estratégia pode implantar qualquer número de declarações Esper-like do SQL para análise de dados de mercado baseada em tempo e geração de sinais. Declarações Esper podem invocar qualquer número de ações processuais, como fazer um pedido ou fechar uma posição, que são codificadas em Java. A combinação de declarações Esper e Java Code fornece uma abordagem do melhor dos dois mundos. Para gerenciamento e monitoramento do sistema, existem quatro clientes GUI diferentes. O novo AlgoTrader HTML5 Frontend fornece funcionalidades relacionadas à negociação, como gráficos, pedidos, posições de dados de mercado de amplificadores. O cliente AlgoTrader Eclipse é o ambiente de desenvolvimento de estratégia padrão. O cliente EsperHQ gerencia o motor esper CEP. O cliente Grails é um cliente genérico para gerenciamento de dados de referência. Para instalações produtivas e implantação, o AlgoTrader usa o Docker. Apresentando o AlgoTrader 3.0 8211 O AlgoTrader mais poderoso ainda Apr-07-2016 O AlgoTrader 3.0 foi lançado. Esta versão inclui o novo HTML5 Frontend, implantação de um clique com o Docker, três novos algoritmos de execução e um relatório de teste de retorno baseado no Excel. Introduzindo o AlgoTrader One-Click Installation pelo Docker Mar-15-2016 O AlgoTrader 3.0 apresenta instalações de estratégia de negociação com um clique alimentadas por Docker BILANZ Artikel zum Thema Hochfrequenzhandel Feb-02-2016 AlgoTrader GmbH CEO Andy Flury im Entrevista com o BILANZ zum Thema Hochfrequenzhandel Termo de Licença da AlgoTrader TERMOS E CONDIÇÕES DO CONTRATO DE LICENÇA DO USUÁRIO FINAL (8220AGREIMENTO8221) GOVERNECE O USO DO SOFTWARE A MENOS QUE VOCÊ E O O LICENCIANTE EXECUTOU UM ACORDO DE LICENÇA ESCRITO SEPARADO QUE REGULA O USO DO SOFTWARE. O Licenciador está disposto a conceder a licença do Software apenas sob a condição de você aceitar todos os termos contidos neste Contrato. Ao assinar este Contrato ou ao fazer o download, instalar ou usar o Software, você indicou que entendeu este Contrato e aceita todos os seus termos. Se você não aceitar todos os termos deste Contrato, então o Licenciador não está disposto a licenciar o Software para você, e você não pode baixar, instalar ou usar o Software. 1. CONCESSÃO DE LICENÇA a. Licença de Uso de Avaliação e Uso de Avaliação. Sujeito à sua conformidade com os termos e condições deste Contrato, o Licenciante concede a você uma licença pessoal, não exclusiva e intransferível, sem o direito de sublicenciar, durante o termo deste Contrato, usar internamente o Software exclusivamente para Uso de avaliação e uso de desenvolvimento. Os produtos ou módulos de software de terceiros fornecidos pelo Licenciador, se houver, podem ser usados ​​exclusivamente com o Software e podem estar sujeitos à aceitação dos termos e condições fornecidos por esses terceiros. Quando a licença terminar, você deve parar de usar o Software e desinstalar todas as instâncias. Todos os direitos não especificamente concedidos aqui são conservados pelo Licenciador. O desenvolvedor não deve fazer nenhum uso comercial do Software, ou qualquer trabalho derivado dele (incluindo os próprios fins de negócios internos do Developer8217s). Copiando e redistribuindo, de qualquer forma, o Software ou o Aplicativo de desenvolvedor para seus clientes diretos ou indiretos é proibido. B. Licença de uso de produção. Sujeito à sua conformidade com os termos e condições deste Contrato, incluindo o pagamento da taxa de licença aplicável, o Licenciante concede a você uma licença não exclusiva e não transferível, sem o direito de sublicenciar, para o termo deste Contrato, : (A) usar e reproduzir o Software exclusivamente para seus próprios fins de negócios internos (8220Produção Use8221) e (b) fazer um número razoável de cópias do Software apenas para fins de backup. Essa licença é limitada ao número específico de CPUs (se licenciado pela CPU) ou instâncias de Java Virtual Machines (se licenças por máquina virtual) para as quais você pagou uma taxa de licença. O uso do Software em uma maior quantidade de CPUs ou instâncias de Java Virtual Machines exigirá o pagamento de uma taxa de licença adicional. Os produtos ou módulos de software de terceiros fornecidos pelo Licenciador, se houver, podem ser usados ​​exclusivamente com o Software. C. Não existem outros direitos. Os seus direitos e o uso do Software são limitados aos expressamente concedidos nesta Seção 1. Você não fará nenhum outro uso do Software. Exceto quando expressamente licenciado nesta Seção, o Licenciante não lhe concede outros direitos ou licenças, por implicação, impedimento ou de outra forma. TODOS OS DIREITOS NÃO CONCEDIDOS EXPRESSAMENTE AQUI SÃO RESERVADOS PELO LICENCIANTE OU SEUS FORNECEDORES. 2. RESTRIÇÕES Salvo o disposto expressamente na Seção 1, você não: (a) modificará, traduzirá, desmontará, criará obras derivadas do Software ou copiará o Software (b) alugará, emprestará, transferirá, distribuirá ou concederá quaisquer direitos no Software de qualquer forma para qualquer pessoa (c) fornecer, divulgar, divulgar ou disponibilizar, ou permitir o uso do Software, por qualquer terceiro (d) publicar qualquer benchmark ou teste de desempenho executado no Software ou qualquer parte dele ou ( E) remover quaisquer avisos de propriedade, rótulos ou marcações no Software. Você não distribuirá o Software a qualquer pessoa em uma base autônoma ou em um fabricante de equipamento original (OEM). 3. PROPRIEDADE Entre as partes, o Software é e permanecerá propriedade única e exclusiva do Licenciador, incluindo todos os direitos de propriedade intelectual nele contidos. uma. No caso de você usar o Software sob a licença estabelecida na Seção 1 (a), este Contrato permanecerá em vigor durante o período de avaliação ou desenvolvimento. B. No caso de você usar o Software sob a licença estabelecida na Seção 1 (b), este Contrato permanecerá em vigor, seja (a) por um período de um ano, se adquirido como uma licença de assinatura anual ou (b) perpétuamente se comprado como um licença perpétua. Uma licença de assinatura anual será renovada automaticamente por um ano, a menos que seja encerrado com aviso prévio de um mês. Este Contrato encerrará automaticamente sem aviso prévio se você violar qualquer termo deste Contrato. Após a rescisão, você deve imediatamente deixar de usar o Software e destruir todas as cópias do Software em sua posse ou controle. 5. SERVIÇOS DE APOIO Se você comprou esta licença, incluindo serviços de suporte, incluem lançamentos de manutenção (atualizações e atualizações), suporte por telefone e suporte por e-mail ou baseados na web. uma. O Licenciador fará esforços comercialmente razoáveis ​​para fornecer uma atualização projetada para resolver ou ignorar um erro relatado. Se tal erro tiver sido corrigido em uma versão de manutenção, o Licenciado deve instalar e implementar a versão de manutenção aplicável de outra forma, a Atualização pode ser fornecida sob a forma de uma correção, procedimento ou rotina temporária, a ser usada até uma versão de manutenção contendo a Atualização permanente está disponível. B. Durante o Termo do Contrato de Licença, o Licenciador deverá disponibilizar os Lançamentos de Manutenção para o Licenciado se, à medida que o Licenciador disponibilizar as Lançamentos de Manutenção, geralmente disponíveis para seus clientes. Se surgir uma questão sobre se uma oferta de produto é uma Atualização ou um novo produto ou recurso, a opinião do Licensor8217s prevalecerá, desde que o Licenciador considere a oferta do produto como um novo produto ou recurso para seus clientes finais em geral. C. A obrigação do Licensor8217 de fornecer os Serviços de Suporte está condicionada ao seguinte: (a) O Licenciado faz esforços razoáveis ​​para corrigir o Erro depois de consultar o Licenciador (b) O Licenciado fornece ao Licenciante informações e recursos suficientes para corrigir o erro no site do Licensor8217s Ou via acesso remoto ao site do Licenciado do Licenciado, bem como acesso ao pessoal, hardware e qualquer software adicional envolvido na descoberta do erro (c) O Licenciado instala prontamente todas as versões de manutenção e (d) O Licenciado procura, instala e mantém todo o equipamento, comunicação Interfaces e outros equipamentos necessários para operar o Produto. D. O Licenciador não é obrigado a fornecer serviços de suporte nas seguintes situações: (a) o Produto foi alterado, modificado ou danificado (exceto se sob supervisão direta do Licenciador) (b) o erro é causado pela negligência do Licenciado8217s, mau funcionamento do hardware Ou outras causas além do controle razoável do Licenciador (c) o erro é causado por software de terceiros não licenciado através do Licenciador (d) O Licenciado não instalou e implementou a (s) Versão (ões) de Manutenção para que o Produto seja uma versão suportada pelo Licenciador ou (e) O Licenciado não pagou as taxas de Licença ou de Serviços de Atendimento quando vencidos. Além disso, o Licenciador não é obrigado a fornecer serviços de suporte para código de software escrito pelo próprio cliente com base no Produto. E. O Licenciador reserva-se o direito de interromper os Serviços de Suporte se o Licenciante, a seu exclusivo critério, determinar que o suporte contínuo para qualquer Produto não é mais economicamente praticável. O Licenciador dará ao Licenciado, pelo menos, três (3) meses de antecedência prévia por escrito de qualquer descontinuação de Serviços de Apoio e reembolsará quaisquer taxas de Serviços de Suporte não acumuladas que o Licenciado pode ter pago antecipadamente em relação ao Produto afetado. O Licenciador não tem obrigação de suportar ou manter qualquer versão do Produto ou plataformas de terceiros subjacentes (incluindo, mas não limitado a, software, JVM, sistema operacional ou hardware) para o qual o Produto é suportado, exceto (i) a versão atual do Produto e plataforma de terceiros subjacente, e (ii) as duas versões imediatamente anteriores do Produto e sistema operacional por um período de seis (6) meses após a sua primeira substituição. O Licenciador reserva-se o direito de suspender o desempenho dos Serviços de Suporte se o Licenciado não pagar qualquer montante que seja pagável ao Licenciador sob o Contrato no prazo de trinta (30) dias após esse valor ser devido. 6. GARANTIA a. O Licenciador garante que o Software será capaz de realizar em todos os aspectos relevantes de acordo com as especificações funcionais estabelecidas na documentação aplicável por um período de 90 dias após a data em que você instalou o Software. Em caso de incumprimento de tal garantia, o Licenciante deverá, a seu critério, corrigir o Software ou substituir esse Software gratuitamente. O que precede são os seus únicos e exclusivos remédios e a responsabilidade exclusiva do Licensor8217 por violação dessas garantias. As garantias estabelecidas acima são feitas e para o benefício de você apenas. As garantias serão aplicadas somente se (a) o Software tiver sido devidamente instalado e usado em todos os momentos e de acordo com as instruções de uso (c) as atualizações mais recentes foram aplicadas ao software e (c) nenhuma modificação, alteração ou adição Foi feito ao Software por pessoas que não sejam o Licenciador ou o representante autorizado do Licensor8217s. 7. RENÚNCIA, EXCETO, COMO SEJA FORNECIDO NA ARTIGO 6 (a), O LICENCIANTE EXCLUIRÁ EXPRESSAMENTE TODAS AS GARANTIAS, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, APTIDÃO PARA UM PROPÓSITO ESPECÍFICO E NÃO INFRACÇÃO, E QUAISQUER GARANTIAS DECORRENTES DO CURSO DE NEGOCIAÇÃO OU USO DO COMÉRCIO. NENHUM AVISO OU INFORMAÇÃO, SEJA ORAL OU ESCRITO, OBTIDO DO LICENCIANTE OU DE OUTRA VEZ CRIÁ QUALQUER GARANTIA NÃO EXPRESSAMENTE INDICADA NESTE ACORDO. O Licenciante não garante que o Produto de Software atenda aos seus requisitos ou opere sob suas condições específicas de uso. O Licenciante não garante que a operação do Produto de Software seja segura, sem erros ou sem interrupção. VOCÊ DEVE DETERMINAR SE O PRODUTO DE SOFTWARE SUFICIENTEMENTE CARREGA SEUS REQUISITOS DE SEGURANÇA E ININTERRUPTABILIDADE. VOCÊ TENHA ÚNICA RESPONSABILIDADE E TODA A RESPONSABILIDADE POR QUALQUER PERDA INCURRIDA POR FALHA DO PRODUTO DO SOFTWARE PARA CUMPRIR OS SEUS REQUISITOS. O LICENCIANTE NÃO SERÁ RESPONSÁVEL PELA PERDA DE DADOS POR QUALQUER COMPUTADOR OU DISPOSITIVO DE ARMAZENAMENTO DE INFORMAÇÕES, SOB QUALQUER CIRCUNSTÂNCIA. 8. LIMITAÇÃO DE RESPONSABILIDADE A RESPONSABILIDADE TOTAL DE LICENCIADORA 8217S DE TODAS AS CAUSAS DE AÇÃO E SOB TODAS AS TEORIAS DE RESPONSABILIDADE SERÃO LIMITADAS E NÃO EXCEDERÃO A TAXA DE LICENÇA PAGADA POR VOCÊ PARA O LICENCIANTE PARA O SOFTWARE. EM NENHUM CASO, O LICENCIANTE SERÁ RESPONSÁVEL POR QUAISQUER DANOS ESPECIAIS, INCIDENTAIS, EXEMPLARES, PUNITIVOS OU CONSEQÜENCIAIS (INCLUINDO PERDA DE USO, DADOS, NEGÓCIOS OU LUCROS) OU PARA O CUSTO DOS PRODUTOS DE SUBSTITUIÇÃO DE PROCURAR QUE SÃO FORA DE OU EM CONEXÃO CONTRATO OU O USO OU O DESEMPENHO DO SOFTWARE, SEJA TAL RESPONSABILIDADE SENDO DE QUALQUER RECLAMAÇÃO COM BASE NO CONTRATO, GARANTIA, DELITO (INCLUINDO NEGLIGÊNCIA), RESPONSABILIDADE ESTRITA OU DE OUTRA FORMA, E SEJA O LICENCIANTE SIDO AVISADO DA POSSIBILIDADE DE TAL PERDA OU DANIFICAR. AS LIMITAÇÕES ANTERIORES SOBREVIVARÃO E APLICAREM MESMO SE QUALQUER REMÉDIO LIMITADO ESPECIFICADO NESTE ACORDO ENCONTRAR-SE QUE FALOU DE SEU PROPÓSITO ESSÊNICO. NA EXTENSÃO DE QUE A LEGISLAÇÃO APLICÁVEL LIMITA A CAPACITAÇÃO DO LICENCIANTE8217 NENHUMA RESPONSABILIDADE DE QUALQUER GARANTIA IMPLÍCITA, ESTA ISENÇÃO DE RESPONSABILIDADE SERÁ EFICAZ NA MÁXIMA EXTENSÃO PERMITIDA. 9. GERAL Se qualquer disposição deste Contrato for considerada inválida ou inexequível, o restante deste Contrato permanecerá em pleno vigor e efeito. Na medida em que quaisquer restrições expressas ou implícitas não sejam permitidas pelas leis aplicáveis, essas restrições expressas ou implícitas permanecerão em vigor e aplicadas na extensão máxima permitida por tais leis aplicáveis. Este Contrato é o acordo completo e exclusivo entre as partes em relação ao assunto em questão, substituindo e substituindo todos e quaisquer acordos anteriores, comunicações e entendimentos (tanto escritos quanto orais) em relação a esse assunto. As partes neste Contrato são empreiteiras independentes, e tampouco tem o poder de vincular a outra ou incorrer em obrigações no outro. Nenhuma falha de qualquer das partes para exercer ou fazer valer qualquer dos seus direitos ao abrigo do presente acordo constituirá uma renúncia a tais direitos. Quaisquer termos ou condições contidos em qualquer pedido de compra ou outro documento de pedido que sejam inconsistentes ou adicionais aos termos e condições deste Contrato são rejeitados pelo Licenciador e serão considerados nulos e sem efeito. Este Acordo será interpretado e interpretado de acordo com as leis da Suíça, sem levar em conta os princípios do conflito de leis. As partes concordam com a jurisdição exclusiva e o local dos tribunais localizados em Zurique, Suíça, para resolução de eventuais litígios decorrentes ou relacionados a este Contrato. 10. DEFINIÇÕES 8220 O uso de avaliação8221 significa o uso do software exclusivamente para avaliação e avaliação para novas aplicações destinadas ao seu uso de produção. 8220Produção Use8221 significa usar o Software apenas para fins comerciais internos. O Uso da Produção não inclui o direito de reproduzir o Software para sublicenciar, revender ou distribuir, incluindo, sem limitação, operação em um compartilhamento de tempo ou distribuição do Software como parte de um arranjo ASP, VAR, OEM, distribuidor ou revendedor. 8220Software8221 significa o software Licensor8217s e todos os seus componentes, documentação e exemplos incluídos pelo Licenciador. 8220Error8221 significa (a) uma falha no Produto de acordo com as especificações estabelecidas na documentação, resultando na incapacidade de usar ou restrição no uso do Produto, ou (b) um problema que requer novos procedimentos, esclarecimentos , Informações adicionais e pedidos de melhorias de produtos. 8220Maintenance Release8221 significa atualizações e atualizações para o Produto que estão disponíveis para os licenciados de acordo com os Serviços de Suporte padrão definidos na seção 5. 8220Update8221 significa uma modificação ou adição de software que, quando feita ou adicionada ao Produto, corrige o erro ou um Procedimento ou rotina que, quando observado na operação regular do Produto, elimina o efeito adverso prático do Erro no Licenciado. 8220Upgrade8221 significa uma revisão do Produto lançado pelo Licenciador para seus clientes finais em geral, durante o Termo de Serviços de Suporte, para adicionar funções novas e diferentes ou para aumentar a capacidade do Produto. A atualização não inclui a liberação de um novo produto ou recursos adicionais para os quais pode haver uma cobrança separada. Minha empresa está pensando em implementar um novo aplicativo de negociação de conformidade financeira, que é uma aplicação que verificaria todas as negociações que seriam executadas pela empresa . Um cheque muito simples pode não ser Investir em estoques que vendam álcool, por exemplo. Precisamos definir um modelo de objeto de negócios financeiros e, em seguida, projetar o mecanismo de regras reais. Alguns modelos de dados potenciais seriam Segurança, Comércio, Derivados, etc. Minha pergunta é que alguém sabe onde eu poderia olhar para algum Modelo de Domínio Financeiro já escrito que seria um bom ponto de partida para começar nossa análise. Não queremos re - Inventar a roda e inventar um modelo de objeto financeiro existente seria muito útil. Obrigado, todos perguntaram em 15 de fevereiro às 16:56. Eu usei Drools em outro projeto que realizou a verificação de regras pós-comercial e nunca mais usaria este pacote novamente. Não vi o valor acrescentado deste produto. Começamos a usar Drools logo quando JBoss comprou o projeto e sentiu como se eles abandonassem isso, então onde foi pouco apoio e ajuda para esse esforço. Eu não usaria Drools novamente, mas consideraria usar outro mecanismo de regras. Ndash Peter Delaney 15 de fevereiro às 17:42 Construindo seu próprio modelo de domínio financeiro é difícil se você não tiver experiência. Você está completamente certo em procurar exemplos. Se a sua empresa, se for sério, construir um produto adequado que seja bem sucedido, deve contratar alguém com essa experiência. Além disso, espera que seu modelo mude muito à medida que o produto é desenvolvido. Uma lista completa de todas as Entidades do sistema será discutida nas próximas seções. As entidades do sistema podem ser categorizadas nas seguintes três áreas: Estratégia. Segurança. SecurityFamily. Referência de segurança. Conta. Alocação. BrokerParameter. Propriedade. OrderPreference e Entidades Relacionadas Essas Entidades são tipicamente imutáveis ​​e representam a base para cada estratégia de negociação. A Seção 13.5, Reference Data Manager fornece uma GUI para gerenciar dados de referência. MarketDataEvent e suas subclasses Tick e Bar, bem como qualquer tipo de GenericEvent These Entiments representam eventos externos (Tick e Bar) provenientes de provedores de dados de mercado ou eventos internos (Eventos genéricos) provenientes de outra estratégia de negociação e fornecem a base para a lógica de sinal dentro Estratégias de negociação. Os dados do mercado são tipicamente imutáveis ​​e de interesse momentâneo apenas para as estratégias de negociação. Ordem. Transação. Posição. Saldo de caixa. Medição. PortfolioValue e Entidades Relacionadas Essas Entidades representam ou influenciam o estado financeiro das estratégias de negociação. Alguns deles (por exemplo, Transações e Medidas) são imutáveis, enquanto outros (por exemplo, Posições e Saldos) são mutables e alteram seus valores enquanto as Ordens estão sendo executadas. Além de fornecer Getters e Setters, todas as Entidades fornecem os seguintes recursos comuns: a classe conversor interna estática pode ser usada para converter automaticamente a Entidade em seu Objeto de Valor correspondente, veja a Seção 8.4, Objeto de Valor. A classe de fábrica estática interna pode ser usada para criar novas instâncias De uma Entidade Para atualizar Securities and SecurityFamilies, pode-se usar a Seção 13.5, Gerenciador de Dados de Referência ou adicionar informações necessárias diretamente no banco de dados. A definição dos atributos das classes Security and SecurityFamily está documentada no AlgoTrader JavaDoc A classe EasyToBorrow Contém informações sobre quantos contratos de um estoque específico podem ser em curto-circuito através de um corretor específico. SecurityReference É um link genérico entre uma segurança o proprietário e outro o alvo. Usando esta classe, é possível que um Security tenha links para vários outros Valores Mobiliários. 8.1.2.1. Visitantes de segurança O Padrão de visitante é uma maneira de separar um algoritmo de uma estrutura de objeto na qual ele opera. Usando este padrão, é possível implementar Logic por Entidade personalizada sem poluir o próprio código de Entidade. O AlgoTrader fornece a interface ch. algotrader. visitor. SecurityVisitor que deve ser implementada por todos os Visitantes de Segurança. Cada visitante de segurança possui dois parâmetros de tipo genérico R e P. R é o tipo de retorno (ou java. lang. Void) retornado por todos os métodos de visita e P é um objeto de parâmetro arbitrário que pode ser adicionado aos métodos de visita. Além disso, há o ch. algotrader. visitor. PolymorphicSecurityVisitor que reflete toda a árvore de herança de todos os Valores Mobiliários. Por exemplo, se não houver nenhum método VisitFuture, o PolymorphicEntityVisitor invocará automaticamente o método visitSecurity. O método de aceitação de cada Entidade pode ser usado para processar um visitante arbitrário como este: No AlgoTrader, há dois Visitantes disponíveis que são utilizados pelo Servidor AlgoTrader é usado para garantir que determinadas Referências de Entidade Hibernação sejam inicializadas carregadas. Usado para validar um Tick por regras definidas por Segurança Figura 8.7. Conta Uma Conta representa uma conta real, um grupo de contas (IB específico) ou um perfil de alocação (IB específico). Uma conta é atribuída a um determinado OrderServiceType (por exemplo, IBNATIVE ou FXCMFIX). Além disso, o SessionQualifier de campo que é necessário para definir a sessão real no lugar (principalmente para Conexões FIX). Com esta configuração, é possível ter várias Sessões (SessionQualifiers) por OrderServiceType e ter várias Contas por Sessão. As encomendas enviadas para o mercado sempre contêm informações relacionadas à conta de forma adequada (por exemplo, como uma FIX Tag 1). Também as transações baseadas em uma ordem real terão uma associação com uma Conta particular. No entanto, as posições não possuem nenhuma informação sobre contas. Assim, é possível que uma Posição contenha Quantidades agregadas de várias Contas externas. Também é possível abrir uma posição por conta, mas depois fechá-la através de outra. Com esta configuração, as estratégias não precisam se preocupar com as contas reais nas quais os fundos estão localizados. Desta forma, uma estratégia sempre verá apenas uma Posição por Segurança. 8.1.6. Transação Figura 8.9. Posição Para qualquer Estratégia que possua uma segurança particular, uma Posição é criada no banco de dados. Mesmo que essa posição seja mais tarde fechada (ou seja, a quantidade 0), a posição ainda permanecerá no banco de dados, porque as Transações associadas ainda possuem referências a ela. Em geral, os valores de posição (por exemplo, marketPrice. MarketValue. AveragePrice. Cost. UnrealizedPL amp detectedPL) são calculados por posição real relacionada à estratégia e mostram o preço que precisaria pagar se o cargo fosse fechado neste momento. Como alguns valores (por exemplo, marketValue) Depende se a posição é longa ou curta, os valores de posição agregados para a mesma segurança (de diferentes estratégias) não podem ser recuperados apenas adicionando valores de posição das estratégias correspondentes. Exemplo: Segurança: VIX Dec 2012 Oferta atual: 16.50 Pergunta atual: 16.60 Estratégia A: quantidade 10 - gt marketValue: 10 1000 16.50 165000 Estratégia B: quantidade -10 - gt marketValue: 10 1000 16.60 -166000 A soma dos valores acima do mercado seria -1000, o que está obviamente errado. Como conseqüência, o Portfolio fornece métodos de pesquisa que agregam posições da mesma segurança (de diferentes estratégias) da maneira correta (por exemplo, findOpenPositionsAggregated). 8.1.8. Assinatura A estrutura DAO do AlgoTrader consiste em vários componentes principais BaseEntityI representa uma entidade persistente serializável abstrata com um identificador sintético de tipo longo. ReadOnlyDao representa uma interface para operações comuns de recuperação para classes de entidades. ReadWriteDao amplia ReadOnlyDao e representa uma interface para operações comuns de recuperação e mutação. AbstractDao classe abstrata serve como uma classe base genérica para classes de acesso a dados. Ele fornece as operações mais comuns para recuperar, atualizar e excluir entidades, bem como para criar consultas HQL e SQL nativas. É possível adicionar DAOs personalizados da plataforma. Para realizar isso, é necessário criar uma interface DAO que seja ReadOnlyDao ou ReadWriteDao. Adicione operações personalizadas, como finders específicos da entidade e, em seguida, crie uma classe DAO personalizada que expande o AbstractDao e implemente a interface DAO personalizada. As consultas HL e SQL usadas pelos componentes do Alogtrader DAO são externalizadas e armazenadas no arquivo Hibernate. hbm. xml. Isso permite um melhor gerenciamento e uma reutilização mais fácil das consultas. As consultas podem ser acessadas a partir de classes DAO ou componentes personalizados por seus nomes 8.3. Serviços O sistema é baseado em uma arquitetura orientada a serviços (SOA). Todas as operações do sistema são fornecidas como Spring Services Beans. Existem os seguintes grupos de serviços: Serviços Privados, que são usados ​​apenas pelo AlgoTrader Server Client Services, que serão instanciados por cada Estratégia (e o próprio AlgoTrader Server)

No comments:

Post a Comment