Conteúdo[Esconder][Mostrar]
Um setor que interessa muito a quem procura trabalho é o de câmbio. As empresas de software recebem solicitações de traders de todo o mundo para fornecer uma plataforma de negociação que possa avaliar de forma rápida e eficiente os dados sobre pares de moedas.
Uma plataforma de negociação é um programa de software fornecido a traders e investidores por certas organizações financeiras, como bancos e corretoras.
As plataformas de negociação permitem essencialmente que investidores e revendedores façam negócios e fiquem de olho em suas contas. Outras funções que auxiliam os investidores na tomada de decisões de investimento são frequentemente incluídas nos sistemas de negociação.
Cotações em tempo real, gráficos interativos, uma variedade de ferramentas gráficas, feeds de notícias ao vivo e pesquisas premium são alguns exemplos desses recursos.
As plataformas também podem ser projetadas para determinados mercados, como ações, moedas, opções ou futuros.
Por mais de uma década, os sistemas de negociação automatizados, também conhecidos como negociação algorítmica, ocuparam o palco central da indústria comercial.
Um “sistema de negociação”, às vezes conhecido como “estratégia de negociação”, nada mais é do que uma coleção de regras que são aplicadas aos dados de entrada para fornecer sinais de entrada e saída de compra/venda. Apesar do fato de que criar uma estratégia de negociação possa parecer simples, não é!
As mentes por trás de uma estratégia de negociação quantitativa são chamadas de “Quants” na área de negociação algorítmica, pois o desenvolvimento de uma boa estratégia de negociação requer um extenso estudo quantitativo.
O design fundamental dos sistemas de negociação automatizados sofreu modificações substanciais nos últimos dez anos e ainda está mudando.
A indústria de negociação algorítmica tornou-se um foco para desenvolvimentos em tecnologias de computadores e redes porque tornou-se necessário para as empresas, particularmente aquelas que utilizam sistemas de negociação de alta frequência, inovar na tecnologia para competir no mundo da negociação algorítmica.
Vamos discutir a plataforma de negociação projeto de sistema neste artigo. As especificações fundamentais para uma plataforma de negociação incluem sua arquitetura, protocolos e instruções para criar seu próprio sistema de negociação automatizado.
Requisitos de software de negociação automatizada em um nível básico
A melhor solução é aquela que satisfaz completamente os requisitos de software. As principais especificações desse software de negociação automatizada são:
- Escalabilidade (a capacidade do sistema de lidar com um volume crescente de solicitações e carga de trabalho);
- Multiprocessamento e excelente desempenho;
- Segurança e proteção (como reage a violações ou assaltos que surgem repentinamente e protege contra a entrada ilegal);
- Interoperabilidade (a capacidade de um sistema interagir com outros sistemas);
- Confiabilidade (como resolve falhas e funciona apesar dos problemas).
Os sistemas de negociação algorítmicos exigem mão de obra extremamente qualificada e atenção cuidadosa. É mais fácil compreender os requisitos funcionais do sistema quando há requisitos não funcionais claros. Eles servem como padrões para as equipes de desenvolvimento de software estabelecerem e definirem a qualidade de um produto.
As características funcionais da plataforma de negociação incluem
O suporte bem-sucedido de vários métodos de pagamento, serviços seguros de hospedagem em nuvem, ferramentas poderosas de análise de dados, gerenciamento de risco, cotações precisas e tipos de gráficos apropriados são necessidades funcionais importantes.
A seguir estão alguns atributos fundamentais das plataformas de negociação automatizadas aos quais todos os traders prestam muita atenção:
Painel exibindo dados de estatísticas
Com o objetivo de realizar um exame simultâneo em tempo real das taxas de câmbio em vários fusos horários, a plataforma deve executar atualizações contínuas, operar dados de muitos gráficos e operar planilhas de preços.
Autenticação
O método de verificação rápido, mas confiável, primeiro cria a imagem de uma plataforma segura e um esforço de engenharia de elite.
O software de negociação pode suportar o acesso de várias contas, semelhante a plataformas de negociação de código aberto com autenticação de dois fatores (usando SMS ou Google Authenticator, por exemplo), mas você também pode ter um sistema com acesso habilitado por e-mail, número de telefone ou outro maneiras para apenas um pequeno grupo de comerciantes.
Fonte de Notícias
Antes de tomar qualquer decisão financeira, é fundamental fazer sua pesquisa. Para evitar erros causados pela ignorância, os traders podem se beneficiar de notícias convenientes, visões gerais pertinentes e insights sobre os mercados de câmbio do mundo, todos disponíveis imediatamente em suas plataformas de negociação.
Funcionalidade para administradores e usuários que é conveniente
Em tal sistema, a capacidade de gerenciar tudo rapidamente com um único clique é essencial. Isso inclui o gerenciamento de transações, pedidos pendentes e enviados, contas pessoais, indicações de andamento do pedido e solicitações de clientes.
Isso permite a tomada de decisões no menor tempo possível e garante o acesso contínuo a informações vitais.
Usando notificações push
Os usuários antecipam que as plataformas de negociação estarão acessíveis XNUMX horas por dia e serão informadas sobre quaisquer problemas de segurança ou sobre as alterações mais recentes.
Você pode se manter informado com notificações personalizáveis, pois a plataforma de negociação rastreia eventos econômicos, flutuações de preços, desenvolvimento de mercado, indicadores técnicos, etc., e envia atualizações sobre sua posição de estoque.
Saques e pagamentos
Esta função é necessária para realizar atividades de negociação, rastrear o movimento de dinheiro e retirar dinheiro de sua conta pessoal de forma rápida e segura usando um cartão de crédito, PayPal ou uma transferência bancária simples.
Quando sua solicitação de retirada terminar de ser processada, você será notificado.
A arquitetura do Automated Trading System
O mecanismo que executa a lógica de tomada de decisão na plataforma de negociação automatizada, também conhecido como mecanismo 'Complex Event Processing', ou CEP, estará dentro do aplicativo para o servidor.
A camada de Aplicação é essencialmente uma interface com o usuário para observar e fornecer parâmetros ao CEP. Embora a camada de aplicação seja principalmente uma visão, algumas verificações de risco (que agora se tornaram operações que consomem muitos recursos devido ao problema de escala) podem ser transferidas para a camada de aplicação, particularmente aquelas que envolvem a sanidade das entradas do usuário, como erros de dedos gordos.
Uma situação intrigante resulta do problema de escalabilidade em um sistema de negociação automatizado.
Vamos imaginar que um único evento de dados de mercado está sendo processado por 100 lógicas separadas (conforme discutido no exemplo anterior). Para a maioria das 100 unidades lógicas, digamos o cálculo de opções gregas, pode haver componentes comuns de cálculos complexos que devem ser executados.
A computação exata idêntica seria realizada por cada unidade se cada lógica operasse independentemente, o que desperdiçaria recursos de processamento.
Cálculos redundantes complexos são frequentemente divididos em diferentes mecanismos de cálculo que fornecem os gregos como uma entrada para o CEP no sistema de negociação automatizado para maximizar a redundância de computação.
Atualmente, um Sistema de Gerenciamento de Risco (RMS) separado dentro do Order Manager (OM) realiza as avaliações de risco restantes em um sistema de negociação automatizado pouco antes de liberar um pedido.
Como existe apenas um sistema RMS para gerenciar o risco em todas as unidades/estratégias lógicas, anteriormente, 100 traders separados controlavam seu risco. Isto é devido ao problema de escala.
No entanto, certas avaliações de risco podem ser exclusivas de estratégias específicas, enquanto outras podem precisar ser realizadas em todos os métodos.
Consequentemente, o próprio RMS consiste em RMS global (GRMS) e RMS de nível de estratégia (SLRMS). O SLRMS e o GRMS também podem ser vistos por meio de uma interface de usuário (UI).
Vamos agora aprofundar os componentes do servidor.
Adaptador de mercado
Exchange ou qualquer outro provedor de dados de mercado transmite dados em seu formato. Essa linguagem pode ou não ser compreendida pelo seu sistema de negociação algorítmico.
O Exchange oferece acesso a uma API (Application Design Interface) que você pode usar para programar e construir seu próprio adaptador para transformar o formato de dados em um formato que seu sistema possa compreender.
Mecanismo de processamento de eventos complexos
O cérebro de sua abordagem está nesta seção. Uma vez que você tenha os dados, você deve usá-los de acordo com seu plano, o que exige fazer diferentes cálculos estatísticos, fazer comparações com dados anteriores e tomar decisões que levarão à criação de pedidos.
Este bloco é construído usando o tipo de pedido e o valor do pedido. Simplificando, um evento complexo é uma coleção de eventos de entrada. Estes consistem em notícias, movimentos do mercado, tendências do mercado de ações, etc.
A conclusão rápida de operações de computação em eventos complicados é conhecida como processamento de eventos complexos. As operações de um sistema de negociação automatizado podem envolver identificar padrões intrincados, criar correlações e estabelecer conexões como causa e tempo entre qualquer informação recebida.
Sistema de roteamento de pedidos
Usando as APIs fornecidas pela exchange, o pedido é criptografado em um idioma que a exchange possa compreender. A troca oferece APIs nativas e APIs FIX, dois tipos diferentes de APIs.
As APIs nativas são projetadas especificamente para uma determinada troca. Um conjunto de diretrizes conhecido como protocolo FIX (Financial Information Exchange) é usado por várias exchanges para facilitar e melhorar o fluxo de dados nos mercados de segurança.
Na parte posterior a esta, explicaremos mais sobre o FIX. Se uma economia estiver aberta, as pessoas podem enviar pedidos por meio de um sistema de negociação automatizado para bolsas ou não, e o ORP deve ser capaz de lidar com pedidos em várias direções.
Aqui, queremos enfatizar que o sinal do pedido pode ser realizado manualmente por uma pessoa ou automaticamente. A seção final é o que chamamos de “sistema de negociação automatizado”.
O módulo gerenciador de ordens inclui diversas técnicas de execução que realizam as ordens de compra/venda de acordo com a lógica pré-estabelecida.
Gestão de Risco
Como os sistemas de negociação automatizados operam sem envolvimento humano, são necessárias análises de risco rigorosas para garantir que os sistemas de negociação funcionem conforme o esperado.
A má gestão de risco ou a falta de verificações de risco para uma empresa quantitativa pode resultar em perdas irrecuperáveis significativas. Como resultado, qualquer sistema de negociação automatizado deve ter um sistema de gerenciamento de risco (RMS).
Desenvolvimento de protocolo para sistemas de negociação automatizados
Para se conectar a vários destinos a partir de um único servidor, o que foi possível pela capacidade da arquitetura de escalar para muitas estratégias por servidor, era necessário.
Para transmitir pedidos para vários destinos e receber dados de inúmeras centrais, o gerenciador de pedidos, portanto, abrigava vários adaptadores.
A função de cada adaptador é servir como um intérprete entre o protocolo de comunicação interno do sistema e o protocolo que a central entende. Assim, vários adaptadores seriam necessários para várias trocas.
Como cada bolsa possui um protocolo adaptado aos recursos que oferece, um novo adaptador precisa ser criado e conectado à arquitetura para adicionar uma nova bolsa ao sistema de negociação automatizado.
Protocolos padrão foram desenvolvidos para evitar essa dor de cabeça da inserção do adaptador. O protocolo FIX é o mais conhecido de todos.
O tempo de entrada no mercado para conectar-se a um novo destino é significativamente reduzido, o que não apenas torna gerenciável a conexão com vários destinos em movimento.
O sistema de negociação automatizado pode interagir facilmente com outros fornecedores para análises ou feeds de dados de mercado, graças à existência de protocolos comuns.
Como resultado, o mercado torna-se extremamente eficiente, pois não há mais restrições à integração com um novo local ou vendedor.
Além disso, a simulação é muito simples, pois para se conectar a um simulador usando o protocolo FIX basta emitir ordens e receber dados do mercado real.
O simulador em si pode ser criado internamente ou adquirido de outra fonte. Semelhante aos dados de mercado ao vivo, os conjuntos de dados gravados também podem ser reproduzidos graças a adaptadores independentes da fonte dos dados.
Arquiteturas emergentes de baixa latência
As estratégias agora podem avaliar enormes volumes de dados em tempo real e fazer escolhas de negociação rápidas graças aos elementos fundamentais de um sistema de negociação automatizado.
Como resultado do desenvolvimento de protocolos de comunicação padrão do setor, como o FIX, agora é mais fácil construir uma mesa de negociação algorítmica ou um sistema de negociação automatizado, o que aumentou a concorrência no mercado de negociação algorítmica.
A ênfase mudou para a redução da latência para a tomada de decisões à medida que os servidores ganhavam mais memória e taxas de clock mais rápidas.
A redução da latência foi necessária ao longo do tempo por vários motivos, incluindo:
- Somente em um ambiente de baixa latência a técnica faz sentido.
- A competição elimina você se você não for rápido o suficiente na sobrevivência do jogo mais apto
Colocation tornou-se uma necessidade absoluta em um sistema de negociação automatizado para qualquer método de alta frequência envolvendo um único destino.
Mas os sistemas multidestino exigem uma preparação meticulosa. Antes de fazer tal escolha, deve-se levar em consideração variáveis como a duração do tempo de resposta do pedido do destino e como ele se compara à duração do ping entre os dois destinos.
Para reduzir a latência total de um sistema de negociação automatizado, a latência da rede é normalmente a primeira coisa a ser abordada. Mas a arquitetura também pode ser melhorada de muitas outras maneiras.
Latência de Processamento de Rede
A latência de processamento de rede é o atraso que os roteadores, switches, etc. introduzem. O número de saltos necessários para um pacote se mover do ponto A ao ponto B seria o próximo nível de otimização no projeto de um sistema de negociação automatizado.
Um salto é descrito como uma seção do caminho entre a origem de um pacote e o destino onde ele não transita por um dispositivo físico, como um roteador ou switch.
O que chamamos de microbursts também pode ter um impacto na latência das operações de rede.
Um pico rápido no ritmo de transmissão de dados que pode ou não afetar a taxa média de transferência de dados é chamado de microburst.
Como os sistemas de negociação automatizados são baseados em regras, todos eles responderão uniformemente à mesma ocorrência. Um microburst de transferência de dados entre os participantes e o destino pode ocorrer como resultado de vários sistemas participantes enviando comandos ao mesmo tempo.
Latência do aplicativo
A latência do aplicativo de um sistema de negociação automatizado é uma medida do tempo que leva para processar um aplicativo. Isso depende do número de pacotes, do processamento dedicado à lógica da aplicação, da complexidade do cálculo utilizado, da eficácia da programação, etc.
O sistema normalmente teria menos atraso de aplicativo à medida que sua contagem de processadores aumentasse. Com frequências de clock mais altas, o mesmo vale.
Muitos sistemas de negociação automatizados se beneficiam da alocação de núcleos de CPU para partes críticas do programa, como a lógica da estratégia, por exemplo. Ao fazer isso, o procedimento não adiciona o atraso resultante da troca de núcleos.
Semelhante a isso, se a abordagem de um sistema de negociação automatizado fosse programada com tamanhos de cache e proximidade de acesso à memória em mente, haveria vários acertos de cache de memória, reduzindo ainda mais a latência.
Muitos sistemas fazem isso otimizando o código para a arquitetura de processador específica, o que é feito usando linguagens de programação de nível muito baixo.
Usando matrizes de portas totalmente programáveis, algumas empresas chegaram a queimar cálculos complicados em hardware (FPGA).
ensaio
O teste, que é o ato de identificar falhas de aplicativos de software, é impossível de subestimar, principalmente em Fintech. Devido à possibilidade de perda financeira, a tecnologia financeira não pode ter falhas.
Quanto mais defeitos os engenheiros de garantia de qualidade puderem identificar, mais provável será que o produto acabado funcione corretamente. Dependendo da empresa que desenvolve a plataforma de negociação ou das necessidades do cliente, a estrutura do processo de teste inclui:
A base do teste funcional é criar entradas e analisar os resultados. Com o uso de cartões falsos, são executados casos de teste de aplicações financeiras. Esses cartões buscam melhorar a confiabilidade, eficiência e precisão dos pagamentos.
Descobrir a velocidade, escalabilidade e estabilidade de um sistema é feito por meio de testes de desempenho. A velocidade de um aplicativo é avaliada para entender a rapidez com que ele responde, e sua escalabilidade indica quantos usuários ele pode suportar simultaneamente sem travar.
Além disso, a estabilidade demonstra se o aplicativo funciona corretamente sob várias cargas ou se existem falhas em potencial.
Pode estar além das capacidades de um único comerciante de varejo construir um sistema de negociação totalmente automatizado. Os sistemas de negociação automatizados, oferecidos nos mercados por assinatura, são uma opção para os traders que desejam investigar a técnica algorítmica de negociação.
Construindo seus próprios sistemas de negociação autônomos
Os comerciantes iniciantes podem desenvolver suas próprias técnicas de negociação algorítmica e se envolver em negociações de mercado bem-sucedidas. Como um esboço geral, os estágios listados abaixo podem ser usados para criar uma estratégia de negociação algorítmica:
- Crie um conceito de negociação que você acha que seria bem-sucedido em mercados ativos usando sua imaginação ou um método. O conceito pode ser derivado de suas próprias observações de mercado, livros de negociação, trabalhos acadêmicos, blogs de negociação, fóruns de negociação ou qualquer outra fonte.
- Colete as informações necessárias – Você precisaria de dados históricos para testar sua hipótese. Essas informações estão disponíveis em fornecedores de dados pagos ou sites como o Google Finance.
- Escrever um plano requer o uso de ferramentas como Excel, Python ou programação R. Depois de ter os dados, você pode começar a codificar sua abordagem.
- Testar seu conceito de negociação em relação a dados históricos depois de codificados é chamado de backtesting de sua abordagem. Backtesting envolve otimização de entrada, estabelecendo objetivos de lucro e ordens de stop-loss, tamanho da posição e outras tarefas relacionadas.
- Paper trading sua estratégia – Após a fase de backtesting, é necessário negociar sua estratégia em papel. Isso inclui testar seu plano usando um simulador de simulação de mercado. Para o método de negociação em papel, existem corretores que fornecem uma plataforma de negociação algorítmica.
- Se sua abordagem for lucrativa após a negociação de papel, você poderá implementá-la em situações do mundo real. Você pode criar uma conta de negociação com um corretor confiável que oferece negociação algorítmica.
A cada ano que passa, há mais bolsas que permitem negociação algorítmica para traders profissionais e de varejo, e mais e mais traders estão usando negociação algorítmica.
Conclusão
Este foi um artigo completo sobre uma arquitetura de sistema de negociação automatizado que, com certeza, forneceu uma compreensão altamente perspicaz dos componentes envolvidos, bem como dos muitos obstáculos que os desenvolvedores de arquitetura devem lidar/superar para projetar um sistema de negociação automatizado forte.
Fiz o meu melhor para lhe dar uma visão geral do sistema de negociação automática, mas há muito mais acontecendo abaixo do capô. Espero que você ache este material benéfico e faça bom uso dele.
Deixe um comentário