Манитон Docs

Market Service

Торговое ядро и матчинг ордеров

Market Service (В разработке)

Статус: Проектирование (Sprint 4). Вторичный рынок и матчинг.

Market Service обеспечивает вторичное обращение ЦФА на платформе, позволяя пользователям торговать активами между собой.

Основные функции

  • Order Management: Создание, отмена и изменение лимитных и рыночных ордеров.
  • Matching Engine: Высокопроизводительный движок для сопоставления заявок (FIFO).
  • Trade Settlement: Атомарный расчет сделок (DvP — Delivery vs Payment) через взаимодействие с Ledger-DB и CFA-Core.
  • Order Book: Поддержание актуального состояния стакана заявок.

Технологический стек

  • Фреймворк: NestJS / Node.js
  • In-memory Matching: Для обеспечения низкой задержки.
  • Kafka: Публикация событий о сделках.

Модель данных (Protobuf)

message Order {
  string order_id = 1;
  string user_id = 2;
  string instrument_id = 3;
  OrderSide side = 4;           // BUY / SELL
  OrderType type = 5;           // LIMIT / MARKET
  TimeInForce time_in_force = 6; // GTC / IOC / FOK
  Decimal price = 7;
  Decimal quantity = 8;
  OrderStatus status = 9;       // OPEN / PARTIALLY_FILLED / FILLED / CANCELLED / REJECTED
}

message Trade {
  string trade_id = 1;
  string buy_order_id = 2;
  string sell_order_id = 3;
  string instrument_id = 4;
  Decimal price = 5;
  Decimal quantity = 6;
  Fee fee = 7;
}

Бизнес-логика торговли

  1. Размещение ордера:
    • Проверка баланса (Hold в Ledger-DB).
    • Публикация в Order Book.
  2. Matching:
    • Поиск встречных заявок по алгоритму FIFO (First In, First Out).
    • Формирование сделки (Trade).
  3. DvP Settlement:
    • Атомарное списание/зачисление RUB и ЦФА.
    • Начисление комиссий.

Потоки данных

  1. Пользователь размещает ордер → OrderPlacedEvent.
  2. Движок находит совпадение → TradeExecutedEvent.
  3. Ledger-DB блокирует/переводит средства.
  4. CFA-Core переводит права в блокчейне.

On this page