Skip to content

Repository files navigation

Trading Bot

An all-in-one, data & asset scalable trading platform built in Rust. Designed to support any asset class — crypto spot, equities, options, futures, FX, perpetuals, DEX/AMM pools, prediction markets — through a metadata-driven architecture where adding a new market type is additive with zero changes to core runtime or storage code.


Screenshots

Multi-asset dashboard

Real-time P&L, account equity, and win rate across every supported asset class — crypto spot, equities, ETFs, FX, prediction markets, options, DEX/AMM, and perpetuals — on a single screen.

Multi-asset dashboard showing per-asset-class P&L, cash, and equity cards

Visual strategy builder

Compose strategies on a node canvas — indicators, conditions, AI forecasts, position sizing, and exit rules wired together, then compiled to one canonical strategy definition. No code required.

Visual strategy builder with an EMA crossover strategy on a node canvas


Documentation

Start here: docs/README.md — central navigation hub for all design content.

Path Purpose
docs/NEWCOMERS.md Onboarding guide — mental models, module walkthroughs, glossary
docs/procedures/AGENT.md Agent/operator instructions
docs/architecture.md System map, components, data flow, repo structure
docs/adr/ Architecture Decision Records (ADR-0001 – ADR-0013)
docs/specs/ Feature and component specifications
docs/plans/plan-sets/ Implementation plan sets (A through G)

Quickstart

# 1. Start infrastructure
docker compose up -d

# 2. Configure environment
cp .env.example .env
# Edit .env: DATABASE_URL, NATS_URL, CLICKHOUSE_URL, REDIS_URL, ALPACA_API_KEY_ID, etc.

# 3. Run migrations
sqlx migrate run

# 4. Start platform
cargo run -p platform           # REST API: localhost:8080  WebSocket: localhost:8081

# Optional: live data collectors
cargo run -p collector-crypto   # Kraken WS
cargo run -p collector-equity -- AAPL SPY  # Alpaca IEX

# Optional: AI agent integration
cargo run -p mcp-server         # JSON-RPC 2.0 over HTTP at localhost:3002

Key properties

Property Mechanism
No float money Price(Decimal) / Size(Decimal) — no From<f64>
Single risk gate ApprovedOrder._sealed: () — private field, no external construction
No lookahead in replay world.now() returns event.available_time, never wall clock
Asset class parity Equities and crypto use identical core code; differences in instrument metadata only
Idempotent deduplication Every order has an idempotency_key; gate caches decisions

Tests

cargo test --workspace

Operations

About

Full stack web-app built in Rust & React for trading stocks/crypto.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages