263 lines
15 KiB
Markdown
263 lines
15 KiB
Markdown
# 🚀 Institutional Flow Trading Platform
|
|
|
|
A professional-grade institutional trading platform that combines real-time options flow analysis, multi-timeframe price context, alert stream correlation, institutional footprint detection, and automated scoring & badge system.
|
|
|
|
## Features
|
|
|
|
- **Real-time Options Flow Analysis** - Live streaming of options trades with institutional detection
|
|
- **Multi-Signal Scanner** - Automated scanning for high-probability trading opportunities
|
|
- **Daily Post-Mortem Analysis** - Performance tracking and analysis
|
|
- **Institutional Footprint Detection** - Tape alignment and cluster detection
|
|
- **Automated Scoring System** - Rocket Score (🚀) calculation for opportunity ranking
|
|
- **Badge System** - Visual indicators for trade characteristics (🟢🔴💎⭐💰⚡🚀)
|
|
- **Live WebSocket Updates** - Real-time data streaming
|
|
- **Interactive Charts** - TradingView-style price charts using Lightweight Charts
|
|
|
|
## Tech Stack
|
|
|
|
### Backend
|
|
- **Node.js** + **Express.js** - RESTful API server
|
|
- **PostgreSQL** (via **Supabase**) - Database
|
|
- **WebSocket** - Real-time data streaming
|
|
- **Express-WS** - WebSocket support for Express
|
|
|
|
### Frontend
|
|
- **React.js** - UI framework
|
|
- **Vite** - Build tool and dev server
|
|
- **TailwindCSS** - Utility-first CSS framework
|
|
- **Zustand** - State management
|
|
- **React Query** - Data fetching and caching
|
|
- **Lightweight Charts** - TradingView-style charts
|
|
- **shadcn/ui** - UI component library (styled components)
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
/institutional_trader
|
|
├── /backend
|
|
│ ├── /src
|
|
│ │ ├── /routes # API route handlers
|
|
│ │ ├── /queries # Database query modules
|
|
│ │ ├── /services # Business logic (badges, scoring, alignment)
|
|
│ │ ├── db.js # Supabase connection
|
|
│ │ └── server.js # Express server
|
|
│ ├── package.json
|
|
│ └── .env.example
|
|
├── /frontend
|
|
│ ├── /src
|
|
│ │ ├── /components # React components
|
|
│ │ │ ├── /dashboard # Main dashboard panels
|
|
│ │ │ ├── /charts # Chart components
|
|
│ │ │ ├── /tables # Table components
|
|
│ │ │ └── /ui # UI components
|
|
│ │ ├── /hooks # Custom React hooks
|
|
│ │ ├── /store # Zustand store
|
|
│ │ ├── App.jsx
|
|
│ │ └── main.jsx
|
|
│ ├── package.json
|
|
│ ├── vite.config.js
|
|
│ └── tailwind.config.js
|
|
└── README.md
|
|
```
|
|
|
|
## Setup Instructions
|
|
|
|
### Prerequisites
|
|
|
|
- **Node.js** 18+ and npm
|
|
- **Supabase account** and project
|
|
- Git
|
|
|
|
### 1. Clone the Repository
|
|
|
|
```bash
|
|
git clone <repository-url>
|
|
cd institutional_trader
|
|
```
|
|
|
|
### 2. Backend Setup
|
|
|
|
```bash
|
|
cd backend
|
|
npm install
|
|
```
|
|
|
|
Create a `.env` file in the `backend` directory:
|
|
|
|
```env
|
|
# Supabase Configuration
|
|
SUPABASE_URL=your_supabase_project_url
|
|
SUPABASE_KEY=your_supabase_anon_key
|
|
SUPABASE_SERVICE_KEY=your_supabase_service_key
|
|
|
|
# Server Configuration
|
|
PORT=3001
|
|
NODE_ENV=development
|
|
|
|
# CORS Configuration
|
|
CORS_ORIGIN=http://localhost:5173
|
|
```
|
|
|
|
### 3. Database Setup (Supabase)
|
|
|
|
You'll need to create the following tables in your Supabase database:
|
|
|
|
#### `options_flow` table
|
|
```sql
|
|
CREATE TABLE options_flow (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
symbol VARCHAR(10) NOT NULL,
|
|
type VARCHAR(4) NOT NULL, -- 'CALL' or 'PUT'
|
|
strike DECIMAL(10, 2) NOT NULL,
|
|
expiration TIMESTAMP WITH TIME ZONE,
|
|
total_premium DECIMAL(15, 2),
|
|
volume INTEGER,
|
|
sentiment DECIMAL(3, 2), -- 0.00 to 1.00
|
|
volume_ratio DECIMAL(10, 2),
|
|
execution_time INTEGER, -- seconds
|
|
rocket_score INTEGER, -- 0-100
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_options_flow_symbol ON options_flow(symbol);
|
|
CREATE INDEX idx_options_flow_created_at ON options_flow(created_at DESC);
|
|
CREATE INDEX idx_options_flow_type ON options_flow(type);
|
|
```
|
|
|
|
#### `daily_analysis` table
|
|
```sql
|
|
CREATE TABLE daily_analysis (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
symbol VARCHAR(10) NOT NULL,
|
|
analysis_date DATE NOT NULL,
|
|
final_score INTEGER, -- 0-100
|
|
price_change_percent DECIMAL(5, 2),
|
|
flow_count INTEGER,
|
|
total_premium DECIMAL(15, 2),
|
|
call_put_ratio DECIMAL(5, 2),
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
UNIQUE(symbol, analysis_date)
|
|
);
|
|
|
|
CREATE INDEX idx_daily_analysis_date ON daily_analysis(analysis_date DESC);
|
|
CREATE INDEX idx_daily_analysis_symbol ON daily_analysis(symbol);
|
|
```
|
|
|
|
### 4. Frontend Setup
|
|
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
```
|
|
|
|
### 5. Start Development Servers
|
|
|
|
#### Terminal 1 - Backend
|
|
```bash
|
|
cd backend
|
|
npm run dev
|
|
```
|
|
|
|
The backend will start on `http://localhost:3001`
|
|
|
|
#### Terminal 2 - Frontend
|
|
```bash
|
|
cd frontend
|
|
npm run dev
|
|
```
|
|
|
|
The frontend will start on `http://localhost:5173`
|
|
|
|
## API Endpoints
|
|
|
|
### Options Flow
|
|
- `GET /api/options-flow` - Get recent options flow data
|
|
- `GET /api/options-flow/stats/:symbol` - Get flow statistics for a symbol
|
|
- `GET /api/options-flow/:id` - Get specific flow entry
|
|
- `POST /api/options-flow/search` - Search flows by criteria
|
|
|
|
### Daily Analysis
|
|
- `GET /api/daily-analysis` - Get recent daily analyses
|
|
- `GET /api/daily-analysis/:date` - Get analysis for specific date
|
|
- `GET /api/daily-analysis/:date/top` - Get top performers for date
|
|
- `GET /api/daily-analysis/symbol/:symbol` - Get symbol performance over time
|
|
|
|
### Scanner
|
|
- `POST /api/scanner/multi-signal` - Multi-signal scan
|
|
- `POST /api/scanner/clusters` - Institutional cluster detection
|
|
- `POST /api/scanner/alert-correlation` - Alert correlation analysis
|
|
- `GET /api/scanner/opportunities` - Quick top opportunities scan
|
|
|
|
### WebSocket
|
|
- `ws://localhost:3001/ws` - Real-time data streaming
|
|
|
|
## Badge System
|
|
|
|
The platform uses emoji badges to quickly identify trade characteristics:
|
|
|
|
- 🟢 **Bullish Flow** - Call options with bullish sentiment
|
|
- 🔴 **Bearish Flow** - Put options with bearish sentiment
|
|
- 💎 **Premium Trade** - High premium trades (>$100k)
|
|
- ⭐ **Unusual Activity** - Volume > 10x average
|
|
- 💰 **High Volume** - Volume > 1000 contracts
|
|
- ⚡ **Fast Execution** - Execution time < 5 seconds
|
|
- 🚀 **High Momentum** - Momentum score > 80
|
|
|
|
## Rocket Score
|
|
|
|
The Rocket Score (0-100) combines multiple signals:
|
|
|
|
- **Badge Score** (0-25 points) - Based on badge count
|
|
- **Tape Alignment** (0-30 points) - Price action alignment with flow
|
|
- **Premium Score** (0-20 points) - Trade size significance
|
|
- **Volume Score** (0-15 points) - Unusual volume detection
|
|
- **Sentiment Score** (0-10 points) - Directional conviction
|
|
|
|
**Score Tiers:**
|
|
- 90-100: 🚀🚀🚀 ELITE
|
|
- 75-89: 🚀🚀 HIGH
|
|
- 60-74: 🚀 MEDIUM
|
|
- 40-59: ⚡ LOW
|
|
- 0-39: MINIMAL
|
|
|
|
## Development
|
|
|
|
### Backend Scripts
|
|
- `npm run dev` - Start development server with auto-reload
|
|
- `npm start` - Start production server
|
|
|
|
### Frontend Scripts
|
|
- `npm run dev` - Start development server
|
|
- `npm run build` - Build for production
|
|
- `npm run preview` - Preview production build
|
|
|
|
## Environment Variables
|
|
|
|
### Backend (.env)
|
|
- `SUPABASE_URL` - Your Supabase project URL
|
|
- `SUPABASE_KEY` - Supabase anon key
|
|
- `SUPABASE_SERVICE_KEY` - Supabase service role key (for admin operations)
|
|
- `PORT` - Server port (default: 3001)
|
|
- `NODE_ENV` - Environment (development/production)
|
|
- `CORS_ORIGIN` - Allowed CORS origin
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
5. Open a Pull Request
|
|
|
|
## License
|
|
|
|
MIT License
|
|
|
|
## Support
|
|
|
|
For issues and questions, please open an issue on GitHub.
|
|
|
|
---
|
|
|
|
**Built with ❤️ for institutional traders**
|