"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Componentes do sistema de negociação

Componentes do sistema de negociação

Publicado em 01/08/2024
Navegar:549

Trading System Components

No último artigo, discuti as melhores práticas para o desenvolvimento de software comercial, como o uso de eventos, armazenamento de dados ou configurações separadas. Desta vez, vamos nos aprofundar na parte estratégica, especificamente em como organizá-la de forma eficaz do ponto de vista arquitetônico.

Módulo de Estratégia

A abordagem mais simples é assumir que esta parte do sistema recebe dados de entrada, como mudanças de preços, e gera eventos – sinais. Toda a lógica pode ser encapsulada neste módulo. Aqui está um exemplo:

def run(self, event):
    signal = self.calc_rsi(event)
    if signal != 'FLAT':
        self.create_event(event, signal)

Neste exemplo, calculamos o RSI e geramos eventos como BUY ou SELL com base nele. Esta é uma ilustração básica, mas o conceito é claro. O sinal pode incluir o preço de compra/venda desejado. Claro, um algoritmo de negociação real é mais complexo, mas você já sabe disso!

Módulo Portfólio

É benéfico ter todos os dados sobre saldos ou posições abertas reunidos em um só lugar. Dessa forma, você conhece o total de suas participações em USD ou BTC. Esse conhecimento é essencial para determinar o tamanho de seus pedidos quando o sistema gera sinais.

def run(self, event):
    # Calculate USD values
    # Calculate targets
    # Check targets
    # Generate orders

Este pseudocódigo descreve as seguintes etapas:

  • Calcule os saldos totais em USD
  • Determinar as metas do portfólio de acordo com a estratégia
  • Verifique se os saldos atuais atendem às metas
  • Gere pedidos do tamanho necessário se houver discrepâncias

Você obtém todos os dados de saldo, sinais, verifica se as posições estão alinhadas com as desejadas e gera pedidos caso não estejam.

Módulo de Gestão de Risco

Este módulo está intimamente relacionado ao módulo Portfólio. Às vezes, a lógica de gerenciamento de risco pode ser implementada diretamente dentro dele, especialmente se você estiver gerenciando uma pequena quantia e estiver apenas começando. Para grandes empresas, este pode ser o elemento mais complexo do sistema e cada empresa define o seu algoritmo preciso. Aqui estão algumas tarefas que podem ser abordadas no gerenciamento de riscos:

  • Verifique as correlações entre as posições para evitar 100% de compra ou venda
  • Verifique o tamanho máximo de uma posição
  • Parar todo o sistema se as perdas atingirem uma determinada porcentagem
  • Pare o sistema em caso de falhas no fluxo de dados ou problemas com outros componentes

Quanto mais tempo você estiver no mercado, mais crítica se tornará essa parte do algoritmo de negociação.

Módulo de Execução

Depois de obter todos os dados de preços e saldos, gerar sinais, calcular o tamanho ideal do portfólio e contabilizar todos os riscos possíveis, não há razão para não enviar uma ordem à bolsa. Esta pode parecer a parte mais simples, a menos que você esteja implementando o roteamento de pedidos em várias exchanges. Normalmente, você formata o pedido corretamente e o envia para a bolsa em que você negocia.

Discutimos as funções de quatro módulos, cada um dos quais é útil em 90% dos algoritmos de negociação. Estruture seu código, escolha uma boa arquitetura e manter e atualizar seu sistema de negociação será muito menos doloroso.

O código completo estará disponível como um algoritmo de negociação de código aberto para aspis.finance. Incluirá algumas estratégias de negociação simples, mas a principal característica é a capacidade de criar armazenamento através de contratos inteligentes Aspis, atrair fundos de investidores e garantir uma participação transparente nos lucros. Você pode desenvolver sua estratégia, conectá-la ao Aspis, seu algoritmo negociará em DEXs e os investidores e gestores (você) obterão lucro por meio de um contrato inteligente. Fique atento!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/jungle_sven/trading-system-components-5f0b?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3