140 lines
4.5 KiB
Markdown
140 lines
4.5 KiB
Markdown
# Paper Trading Bot
|
|
|
|
A real-time paper trading bot that executes trades based on signals from the multi-personality signal generator.
|
|
|
|
## Features
|
|
|
|
- **Real-time TUI Interface** - Beautiful terminal UI showing all trading activity
|
|
- **Multi-personality Support** - Trade signals from both scalping and swing strategies
|
|
- **Risk Management** - Configurable stop-loss, take-profit, and position sizing
|
|
- **SQLite Tracking** - All trades stored in database for analysis
|
|
- **Live Price Monitoring** - Reads current BTC price from candles.db
|
|
- **Signal Filtering** - Filter by confidence, personality, and timeframe
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
cd traider
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Edit `config.json` to customize:
|
|
|
|
```json
|
|
{
|
|
"initial_balance": 10000.0, // Starting capital
|
|
"position_size_percent": 2.0, // % of balance per trade
|
|
"max_positions": 3, // Max concurrent positions
|
|
"stop_loss_percent": 2.0, // Stop loss %
|
|
"take_profit_percent": 4.0, // Take profit %
|
|
"min_confidence": 0.5, // Minimum signal confidence
|
|
"enabled_personalities": ["scalping", "swing"],
|
|
"enabled_timeframes": ["1m", "5m"]
|
|
}
|
|
```
|
|
|
|
## Usage
|
|
|
|
Make sure the signal generator is running first:
|
|
|
|
```bash
|
|
# In signals/ directory
|
|
./signals.py
|
|
```
|
|
|
|
Then start the paper trader:
|
|
|
|
```bash
|
|
# In traider/ directory
|
|
./trader.py
|
|
```
|
|
|
|
## TUI Interface
|
|
|
|
The TUI displays:
|
|
|
|
- **Header**: Current BTC price, balance, equity, and total PnL
|
|
- **Statistics**: Win rate, total trades, wins/losses
|
|
- **Open Positions**: Live view of active trades with unrealized PnL
|
|
- **Recent Closed Trades**: Last 10 completed trades
|
|
- **Recent Signals**: Incoming signals from the generator
|
|
|
|
## Database Schema
|
|
|
|
### trades table
|
|
- Trade details (entry/exit prices, type, timeframe)
|
|
- PnL calculations
|
|
- Signal confidence and personality
|
|
- Exit reasons (Stop Loss, Take Profit)
|
|
|
|
### balance_history table
|
|
- Historical balance snapshots
|
|
- Equity tracking over time
|
|
|
|
## Trading Logic
|
|
|
|
1. **Signal Reception**: Listens to Unix socket from signal generator
|
|
2. **Filtering**: Applies confidence, personality, and timeframe filters
|
|
3. **Position Sizing**: Calculates position based on balance %
|
|
4. **Entry**: Opens LONG (BUY signal) or SHORT (SELL signal) position
|
|
5. **Exit Monitoring**: Continuously checks stop-loss and take-profit levels
|
|
6. **Closure**: Calculates PnL and updates balance
|
|
|
|
## Risk Management
|
|
|
|
- Maximum concurrent positions limit
|
|
- Stop-loss protection on every trade
|
|
- Position sizing based on account balance
|
|
- (Future: Daily loss limits, trailing stops)
|
|
|
|
## Keyboard Controls
|
|
|
|
- `Ctrl+C` - Graceful shutdown (closes socket connections, saves state)
|
|
|
|
## File Structure
|
|
|
|
```
|
|
traider/
|
|
├── trader.py # Main bot with TUI
|
|
├── config.json # Configuration
|
|
├── trades.db # Trade history (auto-created)
|
|
├── requirements.txt # Python dependencies
|
|
└── logs/ # (Future: logging)
|
|
```
|
|
|
|
## Example Output
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ PAPER TRADING BOT | BTC: $95,234.50 | Balance: $10,245.32 │
|
|
│ Equity: $10,387.12 | PnL: +$387.12 (+3.87%) │
|
|
└─────────────────────────────────────────────────────────┘
|
|
|
|
┌─────────────┐ ┌──────────────────────────┐
|
|
│ Statistics │ │ Open Positions (2) │
|
|
├─────────────┤ ├──────────────────────────┤
|
|
│ Total: 47 │ │ ID Type Entry PnL │
|
|
│ Wins: 28 │ │ 48 LONG 95100 +$142 │
|
|
│ Losses: 19 │ │ 49 LONG 95200 +$34 │
|
|
│ Win Rate: 60%│ └──────────────────────────┘
|
|
└─────────────┘
|
|
```
|
|
|
|
## Notes
|
|
|
|
- This is **paper trading only** - no real money involved
|
|
- Requires running signal generator and populated candles.db
|
|
- Price updates every 1 second from most recent candle
|
|
- Signals processed in real-time as they arrive
|
|
|
|
## Future Enhancements
|
|
|
|
- Trailing stop-loss implementation
|
|
- Daily loss limit enforcement
|
|
- Performance analytics dashboard
|
|
- Export trade history to CSV
|
|
- Backtesting mode
|
|
- Web dashboard option
|