- Added FastAPI backend with core API endpoints for strategies, backtests, and data management. - Introduced Vue 3 frontend with a dark theme, enabling users to run backtests, adjust parameters, and compare results. - Implemented Pydantic schemas for request/response validation and SQLAlchemy models for database interactions. - Enhanced project structure with dedicated modules for services, routers, and components. - Updated dependencies in `pyproject.toml` and `frontend/package.json` to include FastAPI, SQLAlchemy, and Vue-related packages. - Improved `.gitignore` to exclude unnecessary files and directories.
136 lines
3.8 KiB
Markdown
136 lines
3.8 KiB
Markdown
# Live Trading - Regime Reversion Strategy
|
|
|
|
This module implements live trading for the ML-based regime detection and mean reversion strategy on OKX perpetual futures.
|
|
|
|
## Overview
|
|
|
|
The strategy trades ETH perpetual futures based on:
|
|
1. **BTC/ETH Spread Z-Score**: Identifies when ETH is cheap or expensive relative to BTC
|
|
2. **Random Forest ML Model**: Predicts probability of successful mean reversion
|
|
3. **Funding Rate Filter**: Avoids trades in overheated/oversold market conditions
|
|
|
|
## Setup
|
|
|
|
### 1. API Keys
|
|
|
|
The bot loads OKX API credentials from `../BTC_spot_MVRV/.env`.
|
|
|
|
**IMPORTANT: OKX uses SEPARATE API keys for live vs demo trading!**
|
|
|
|
#### Option A: Demo Trading (Recommended for Testing)
|
|
1. Go to [OKX Demo Trading](https://www.okx.com/demo-trading)
|
|
2. Create a demo account if you haven't
|
|
3. Generate API keys from the demo environment
|
|
4. Set in `.env`:
|
|
```env
|
|
OKX_API_KEY=your_demo_api_key
|
|
OKX_SECRET=your_demo_secret
|
|
OKX_PASSWORD=your_demo_passphrase
|
|
OKX_DEMO_MODE=true
|
|
```
|
|
|
|
#### Option B: Live Trading (Real Funds)
|
|
Use your existing live API keys with:
|
|
```env
|
|
OKX_API_KEY=your_live_api_key
|
|
OKX_SECRET=your_live_secret
|
|
OKX_PASSWORD=your_live_passphrase
|
|
OKX_DEMO_MODE=false
|
|
```
|
|
|
|
**Note:** You cannot use live API keys with `OKX_DEMO_MODE=true` or vice versa.
|
|
OKX will return error `50101: APIKey does not match current environment`.
|
|
|
|
### 2. Dependencies
|
|
|
|
All dependencies are already in the project's `pyproject.toml`. No additional installation needed.
|
|
|
|
## Usage
|
|
|
|
### Run with Demo Account (Recommended First)
|
|
|
|
```bash
|
|
cd /path/to/lowkey_backtest
|
|
uv run python -m live_trading.main
|
|
```
|
|
|
|
### Command Line Options
|
|
|
|
```bash
|
|
# Custom position size
|
|
uv run python -m live_trading.main --max-position 500
|
|
|
|
# Custom leverage
|
|
uv run python -m live_trading.main --leverage 2
|
|
|
|
# Custom cycle interval (in seconds)
|
|
uv run python -m live_trading.main --interval 1800
|
|
|
|
# Combine options
|
|
uv run python -m live_trading.main --max-position 1000 --leverage 3 --interval 3600
|
|
```
|
|
|
|
### Live Trading (Use with Caution)
|
|
|
|
```bash
|
|
# Requires OKX_DEMO_MODE=false in .env
|
|
uv run python -m live_trading.main --live
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
live_trading/
|
|
__init__.py # Module initialization
|
|
config.py # Configuration loading
|
|
okx_client.py # OKX API wrapper
|
|
data_feed.py # Real-time OHLCV data
|
|
position_manager.py # Position tracking
|
|
live_regime_strategy.py # Strategy logic
|
|
main.py # Entry point
|
|
.env.example # Environment template
|
|
README.md # This file
|
|
```
|
|
|
|
## Strategy Parameters
|
|
|
|
| Parameter | Default | Description |
|
|
|-----------|---------|-------------|
|
|
| `z_entry_threshold` | 1.0 | Enter when \|Z-Score\| > threshold |
|
|
| `z_window` | 24 | Rolling window for Z-Score (hours) |
|
|
| `model_prob_threshold` | 0.5 | ML probability threshold for entry |
|
|
| `funding_threshold` | 0.005 | Funding rate filter threshold |
|
|
| `stop_loss_pct` | 6% | Stop-loss percentage |
|
|
| `take_profit_pct` | 5% | Take-profit percentage |
|
|
|
|
## Files Generated
|
|
|
|
- `live_trading/positions.json` - Open positions persistence
|
|
- `live_trading/trade_log.csv` - Trade history
|
|
- `live_trading/regime_model.pkl` - Trained ML model
|
|
- `logs/live_trading.log` - Trading logs
|
|
|
|
## Risk Warning
|
|
|
|
This is experimental trading software. Use at your own risk:
|
|
- Always start with demo trading
|
|
- Never risk more than you can afford to lose
|
|
- Monitor the bot regularly
|
|
- Have a kill switch ready (Ctrl+C)
|
|
|
|
## Troubleshooting
|
|
|
|
### API Key Issues
|
|
- Ensure API keys have trading permissions
|
|
- For demo trading, use demo-specific API keys
|
|
- Check that passphrase matches exactly
|
|
|
|
### No Signals Generated
|
|
- The strategy requires the ML model to be trained
|
|
- Need at least 200 candles of data
|
|
- Model trains automatically on first run
|
|
|
|
### Position Sync Issues
|
|
- The bot syncs with exchange positions on each cycle
|
|
- If positions are closed manually, the bot will detect this
|