Construindo uma Plataforma de Comércio Agente

Read this article in:

A plataforma de negociação, atualmente chamada de código Irowor, toma decisões e toma medidas automaticamente. Não é compatível com IA, é bastante simples com regras codificadas. Ao terminar de escrever esse sistema, a estrutura do bot de negociação será reutilizada para IA agente. Porque um sistema agente tem de fazer observações, decisões e depois tomar medidas. Isto é como observar o mercado, seguir uma estratégia e fazer negócios.

Vamos começar. Vamos de simples para complexo para poupar tempo e dor de cabeça. Vamos rever a arquitetura da plataforma de negociação, já que já está praticamente feito. Além disso, vamos fazer isso em rubi em trilhos, principalmente, como uma questão de preferência pessoal. Se você está começando do zero eu provavelmente tenho que recomendar python, já que tanto código de IA é python. E eu definitivamente recomendo contra digitação, eu sugiro que você use javascript puro porque é muito mais claro e mais leve.

Digamos que a configuração já foi feita. Voltaremos a fazer o esquema assim que estabelecermos o passo comum. Por enquanto, assuma que tudo já está funcionando.

A ação fundamental que o agente toma é colocar um comércio. O comércio é geralmente um rolo de uma posição: fechar duas pernas, abrir duas pernas. O comércio é uma chamada para a API do corretor. Colocar o comércio é uma ação, então temos ações:

 class Tda::Order.place_order
   include Wco::Action
   ## ...
 end

Neste momento tudo está ligado para ser accionado através de botões de clique na UI. Mas as ações podem ser chamadas de cron (ou algo que se parece com cron).

As acções parecem que podem ser tarefas de fundo sidekiq. É um trabalho que me parece muito razoável. Não há necessidade de definir uma interface separada, já que estamos apenas assumindo que é um trabalho de fundo. (Nota: não há necessidade de IA aqui. Empregos de fundo existem para sempre.)

O loop que corre no cron também não é nada especial, e já foi feito. Há uma tarefa de execução de nível de sistema operacional que chama algo e dorme por exemplo 15 segundos:

 while true do
   SomeStrategy.new({ ...with_params }).evaluate
   sleep 15 # seconds
 end

Novamente, no que diz respeito à arquitetura, o bot de negociação executa o seguinte loop continuamente:

 For each position,
   Evaluate the position according to some strategy.
   If it says to place an order,
     Place the order.
 Sleep 15 seconds and repeat.

Isto é agente? Pode ou não ser, mas também já foi implementado, já foi feito. Então vamos passar a descrever semanticamente como um agente de email funcionaria, já que isso ainda não foi feito, e pode ser mais desafiador.

Please login to post comments: