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.
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!
É 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:
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.
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:
Quanto mais tempo você estiver no mercado, mais crítica se tornará essa parte do algoritmo de negociaçã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!
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