Skip to content

harsh159357/Tradee

Repository files navigation

Tradee

A client-side crypto options trading simulator built with Flutter. Practice options trading with real-time market data, Black-Scholes pricing, and professional-grade risk analytics — no backend, no real money, no sign-up.

Try it live

What It Does

Tradee simulates a professional crypto options exchange (think Deribit / Binance Options) entirely on the client side. It connects to live Binance WebSocket feeds for real-time spot prices and generates a full options chain with realistic pricing, spreads, and risk metrics.

  • Real-time spot prices via Binance WebSocket (BTC, ETH, SOL)
  • Black-Scholes pricing with Greeks (Delta, Gamma, Vega, Theta)
  • Dynamic IV with skew modeling and rolling realized volatility
  • Market & limit orders with bid-ask spreads and slippage simulation
  • Portfolio tracking with live mark-to-market P&L
  • Risk dashboard with net Greeks and stress-test scenarios
  • Strategy builder with payoff diagrams and max profit/loss
  • Daily expiry cycle — positions auto-settle at 23:59:59 UTC

Screens

Markets Trading Portfolio Risk Strategy Settings
Asset selector with live spot prices and 24h change Options chain with calls/puts, tap to trade Open positions, balance, margin usage, close trades Net Greeks, stressed P&L, margin status Multi-leg builder with payoff chart Reset account, volatility mode toggle

Architecture

lib/
├── core/          Constants, routing
├── domain/        Pure Dart models (Position, OptionContract, MarginStatus)
├── engines/       Stateless computation (Black-Scholes, volatility, margin, spreads, time)
├── data/          WebSocket + REST market data, Hive storage
├── features/      Riverpod state management
├── ui/            Screens and widgets (zero business logic)
└── main.dart      App entry, liquidation & expiry listeners

Key design choices:

  • Clean architecture — engines are pure Dart, stateless, and unit-tested
  • No business logic in UI widgets
  • Riverpod for state management with hooks
  • compute() for chain generation (isolate on native, main-thread on web)
  • Hive for local persistence (survives app restart)
  • WebSocket with auto-reconnect, heartbeat monitoring, and REST fallback

How It Works

Pricing: Each option is priced using Black-Scholes with inputs from the volatility engine (rolling 1h realized vol with OTM skew). Strikes are generated dynamically around the current spot price.

Orders: Market orders fill instantly at bid/ask. Limit orders fill when the mark price crosses the limit. Spreads widen with volatility. Slippage scales with order size.

Risk: Long options require premium as margin. Short options use stress-tested margin (spot +/-5%). If equity drops below maintenance margin, all positions are force-liquidated at worst bid/ask.

Expiry: All options are European, same-day expiry at 23:59:59 UTC. At expiry, positions settle at intrinsic value. The account resets to $100,000 daily.

Run Locally

# Mobile
flutter run

# Web
flutter run -d chrome

# Build for web
flutter build web --release --base-href="/Tradee/"

Requires Flutter SDK (stable channel).

Tech Stack

  • Flutter — cross-platform UI (iOS, Android, Web)
  • Riverpod + Hooks — reactive state management
  • go_router — declarative routing
  • Hive — lightweight local storage
  • web_socket_channel — Binance WebSocket feed
  • Black-Scholes — options pricing model (custom implementation)

License

This project is for educational and demonstration purposes only. Not financial advice. No real trading occurs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages