Создание агентской торговой платформы

Read this article in:

Торговая платформа под кодовым названием Irowor принимает решения и автоматически принимает меры. Это не с поддержкой ИИ, это довольно просто с жестко закодированными правилами. Когда я закончу писать эту систему, структура торгового бота будет повторно использована для агентного ИИ. Потому что агентная система должна делать наблюдения, принимать решения, а затем предпринимать действия. Это похоже на наблюдение за рынком, следование стратегии и размещение сделок.

Давайте начнем. Мы перейдем от простого к сложному, чтобы сэкономить время и головную боль. Давайте рассмотрим архитектуру торговой платформы, поскольку она уже почти готова. Также мы будем делать это в рубине на рельсах в основном по личным предпочтениям. Если вы начинаете с нуля, я, вероятно, должен порекомендовать python, так как так много кода ИИ является python. И я определенно рекомендую вам использовать чистый javascript, потому что он намного яснее и легче.

Допустим, установка уже сделана. Мы вернемся к переделке установки, как только установим общий шаг времени. Теперь предположим, что все уже работает.

Основным действием, которое предпринимает агент, является размещение сделки. Торговля обычно представляет собой рулон позиции: закрыть две ноги, открыть две ноги. Торговля - это вызов API брокера-дилера. Размещение сделки - это действие, поэтому у нас есть действия:

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

Прямо сейчас все подключено для приведения в действие с помощью кнопок нажатия в пользовательском интерфейсе. Но действия могут быть вызваны из cron (или чего-то, что выглядит как cron).

Действия выглядят так, как будто они могут быть второстепенными заданиями. Это работа, которая выполняется - звучит очень разумно для меня. Не нужно даже определять отдельный интерфейс, так как мы просто предполагаем, что это фоновая работа. (Примечание: в этом нет необходимости. Справочная работа существовала вечно.

Цепь, которая проходит в кроне, тоже не является чем-то особенным, и это уже сделано. Существует задача выполнения на уровне операционной системы, которая вызывает что-то и спит, например, 15 секунд.

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

Опять же, что касается архитектуры, торговый бот непрерывно работает по следующему циклу:

 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.

Является ли это агентурным? Это может быть или не быть, но это уже реализовано, это было сделано. Итак, давайте перейдем к семантически описанию того, как будет работать почтовый агент, поскольку это еще не сделано и может оказаться более сложным.

Please login to post comments: