Skip to content

Add High-Frequency Trading Market-Making Example #150

@mnabi-paxai

Description

@mnabi-paxai

Contribution Proposal: High-Frequency Trading Market-Making Example

Hi NVIDIA cuOpt team,

I would like to propose adding a new example to cuopt-examples: a high-frequency trading market-making optimization example that demonstrates how GPU-accelerated optimization can enable real-time decision-making in financial systems.

Proposed Example

High-Frequency Trading Market-Making with Non-Linear Optimization

This example demonstrates real-time quote optimization for 50+ cryptocurrency trading pairs. The goal is to optimize bid/ask spread, inventory skew, and notional size under a strict real-time budget.

The key point of the example is not only that GPU is faster, but that the CPU baseline cannot meet the real-time requirement, while GPU acceleration makes the workflow feasible.

Problem Description

A market-maker continuously posts buy and sell quotes. For a realistic high-frequency trading system, the optimizer needs to:

  • Update quotes roughly 10 times per second
  • Optimize across 50+ trading pairs
  • Account for fill probability, transaction costs, slippage, and inventory risk
  • Solve within a tight optimization budget of approximately 50ms per cycle

The optimization problem includes 150 decision variables:

  • Spread per pair
  • Skew per pair
  • Notional size per pair

The objective includes non-linear terms such as:

  • Fill probability: P(fill) = exp(-k * spread)
  • Slippage cost: cost = alpha * (size / depth)^2
  • Inventory risk: lambda * volatility * abs(position) * abs(skew)

Why This Example Is Useful

This example would show a real-world use case where GPU acceleration is required for the application to be practical.

Current benchmark from the CPU baseline:

  • CPU baseline using scipy.optimize: approximately 200–300ms per solve
  • Real-time target: less than 50ms
  • CPU result: about 5x over budget
  • Expected GPU/cuOpt target: approximately 7ms
  • Expected speedup: about 35x

This makes the example a strong “CPU cannot do this in real time, GPU makes it possible” demonstration.

What Would Be Included

The contribution can include:

  • A complete Python implementation
  • CPU baseline using SciPy/SLSQP
  • cuOpt-based implementation or adapter
  • Sample data generation, so no API keys or proprietary market data are required
  • A README with setup and running instructions
  • Optional Streamlit dashboard for visualizing solve-time performance
  • Benchmarking output comparing CPU timing, budget violations, and expected GPU timing

Educational Value

This example would be useful for:

  • Financial engineers and quantitative developers
  • Operations research practitioners
  • Students learning optimization in finance
  • Developers evaluating cuOpt for real-time decision systems

It demonstrates:

  1. A realistic financial optimization workflow
  2. Non-linear optimization concepts
  3. Performance benchmarking
  4. Real-time decision constraints
  5. Why GPU acceleration matters for latency-sensitive applications

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions