4.0 KiB
4.0 KiB
Enhanced PnL Tracking & Position Color Coding Summary
Overview
Enhanced the trading dashboard with comprehensive PnL tracking, position flipping capabilities, and color-coded position display for better visual identification.
Key Enhancements
1. Position Flipping with PnL Tracking
- Automatic Position Flipping: When receiving opposite signals (BUY while SHORT, SELL while LONG), the system now:
- Closes the current position and calculates PnL
- Immediately opens a new position in the opposite direction
- Logs both the close and open actions separately
2. Enhanced PnL Calculation
- Realized PnL: Calculated when positions are closed
- Long PnL:
(exit_price - entry_price) * size
- Short PnL:
(entry_price - exit_price) * size
- Long PnL:
- Unrealized PnL: Real-time calculation for open positions
- Fee Tracking: Comprehensive fee tracking for all trades
3. Color-Coded Position Display
- LONG Positions:
[LONG]
indicator with green (success) color when profitable- Yellow (warning) color when losing
- SHORT Positions:
[SHORT]
indicator with red (danger) color when profitable- Blue (info) color when losing
- No Position: Gray (muted) color with "No Position" text
4. Enhanced Trade Logging
- Detailed Logging: Each trade includes:
- Entry/exit prices
- Position side (LONG/SHORT)
- Calculated PnL
- Position action (OPEN_LONG, CLOSE_LONG, OPEN_SHORT, CLOSE_SHORT)
- Flipping Notifications: Special logging for position flips
5. Improved Dashboard Display
- Recent Decisions: Now shows PnL information for closed trades
- Entry/Exit Info: Displays entry price for closed positions
- Real-time Updates: Position display updates with live unrealized PnL
Test Results
Trade Sequence Tested:
- BUY @ $3000 → OPENED LONG
- SELL @ $3050 → CLOSED LONG (+$5.00 PnL)
- SELL @ $3040 → OPENED SHORT
- BUY @ $3020 → CLOSED SHORT (+$2.00 PnL) & FLIPPED TO LONG
- SELL @ $3010 → CLOSED LONG (-$1.00 PnL)
Final Results:
- Total Realized PnL: $6.00
- Total Trades: 6 (3 opens, 3 closes)
- Closed Trades with PnL: 3
- Position Flips: 1 (SHORT → LONG)
Technical Implementation
Key Methods Enhanced:
_process_trading_decision()
: Added position flipping logic_create_decisions_list()
: Added PnL display for closed trades_calculate_unrealized_pnl()
: Real-time PnL calculation- Dashboard callback: Enhanced position display with color coding
Data Structure:
# Trade Record Example
{
'action': 'SELL',
'symbol': 'ETH/USDT',
'price': 3050.0,
'size': 0.1,
'confidence': 0.80,
'timestamp': datetime.now(timezone.utc),
'position_action': 'CLOSE_LONG',
'entry_price': 3000.0,
'pnl': 5.00,
'fees': 0.0
}
Position Display Format:
[LONG] 0.1 @ $3020.00 | P&L: $0.50 # Green if profitable
[SHORT] 0.1 @ $3040.00 | P&L: $-0.50 # Red if profitable for short
No Position # Gray when no position
Windows Compatibility
- ASCII Indicators: Used
[LONG]
and[SHORT]
instead of Unicode emojis - No Unicode Characters: Ensures compatibility with Windows console (cp1252)
- Color Coding: Uses Bootstrap CSS classes for consistent display
Benefits
- Clear PnL Visibility: Immediate feedback on trade profitability
- Position Awareness: Easy identification of current position and P&L status
- Trade History: Complete record of all position changes with PnL
- Real-time Updates: Live unrealized PnL for open positions
- Scalping Friendly: Supports rapid position changes with automatic flipping
Usage
The enhanced PnL tracking works automatically with the existing dashboard. No additional configuration required. All trades are tracked with full PnL calculation and position management.
Future Enhancements
- Risk management alerts based on PnL thresholds
- Daily/weekly PnL summaries
- Position size optimization based on PnL history
- Advanced position management (partial closes, scaling in/out)