145 lines
4.2 KiB
Markdown
145 lines
4.2 KiB
Markdown
# Pivot Points Debugging Improvements
|
|
|
|
## Issue
|
|
Live charts are updating correctly, but pivot points stop being drawn after the first 2 pivot points are detected.
|
|
|
|
## Debugging Improvements Added
|
|
|
|
### 1. Enhanced Logging ✅
|
|
**File**: `ANNOTATE/web/static/js/chart_manager.js`
|
|
|
|
**Added detailed console logging:**
|
|
- Pivot recalculation attempts with candle counts
|
|
- Throttling messages when calls are too frequent
|
|
- Before/after pivot marker counts
|
|
- Chart redraw status messages
|
|
- Warnings when charts or data are missing
|
|
|
|
### 2. Pivot Recalculation Throttling ✅
|
|
**Problem**: Pivot recalculation might be called too frequently with live updates
|
|
**Solution**: Added 5-second throttling per timeframe
|
|
|
|
```javascript
|
|
// Throttle pivot recalculation (max once every 5 seconds per timeframe)
|
|
const now = Date.now();
|
|
const lastCall = this.pivotRecalcThrottle[timeframe] || 0;
|
|
if (now - lastCall < 5000) {
|
|
console.log(`[${timeframe}] Throttling pivot recalculation`);
|
|
return;
|
|
}
|
|
```
|
|
|
|
### 3. Debug Methods ✅
|
|
**Added manual debugging methods:**
|
|
|
|
```javascript
|
|
// Debug method to manually trigger pivot recalculation
|
|
debugRecalculatePivots(timeframe)
|
|
|
|
// Debug method to check pivot status
|
|
debugPivotStatus()
|
|
```
|
|
|
|
**Usage in browser console:**
|
|
```javascript
|
|
// Check current pivot status
|
|
window.appState.chartManager.debugPivotStatus();
|
|
|
|
// Manually trigger pivot recalculation for 1m chart
|
|
window.appState.chartManager.debugRecalculatePivots('1m');
|
|
```
|
|
|
|
### 4. API Test Script ✅
|
|
**File**: `test_pivot_api.py`
|
|
|
|
**Tests the backend pivot recalculation API:**
|
|
- Calls `/api/recalculate-pivots` directly
|
|
- Shows number of pivot markers returned
|
|
- Displays sample pivot data
|
|
- Verifies API is working correctly
|
|
|
|
## Potential Root Causes
|
|
|
|
### 1. **Throttling Too Aggressive**
|
|
- 5-second throttling might prevent updates when new pivots form
|
|
- **Check**: Look for throttling messages in console
|
|
|
|
### 2. **Backend API Issues**
|
|
- Data provider might not have enough data
|
|
- Williams Market Structure calculation might be failing
|
|
- **Check**: Run `python test_pivot_api.py` to test API directly
|
|
|
|
### 3. **Chart Redraw Issues**
|
|
- Pivot shapes/annotations might not be updating correctly
|
|
- Display toggles might be hiding pivots
|
|
- **Check**: Look for redraw messages and toggle status
|
|
|
|
### 4. **Data Synchronization**
|
|
- Live data updates might not trigger pivot recalculation
|
|
- New candles might not be detected properly
|
|
- **Check**: Look for "NEW candles" vs "updated candles" messages
|
|
|
|
## Debugging Steps
|
|
|
|
### 1. Check Console Logs
|
|
Look for these messages in browser console:
|
|
```
|
|
[1m] Recalculating pivots with 150 candles...
|
|
[1m] Pivots updated: 5 → 7 pivot candles
|
|
[1m] Redrawing chart with pivots...
|
|
```
|
|
|
|
### 2. Check Throttling
|
|
If you see throttling messages, pivots might be blocked:
|
|
```
|
|
[1m] Throttling pivot recalculation (last call 3s ago)
|
|
```
|
|
|
|
### 3. Manual Debug
|
|
Use debug methods in browser console:
|
|
```javascript
|
|
// Check status
|
|
window.appState.chartManager.debugPivotStatus();
|
|
|
|
// Force recalculation
|
|
window.appState.chartManager.debugRecalculatePivots('1m');
|
|
```
|
|
|
|
### 4. Test Backend API
|
|
Run the test script:
|
|
```bash
|
|
python test_pivot_api.py
|
|
```
|
|
|
|
### 5. Check Display Toggles
|
|
Verify pivots are enabled:
|
|
```javascript
|
|
console.log(window.appState.chartManager.displayToggles.pivots); // Should be true
|
|
```
|
|
|
|
## Expected Behavior After Fix
|
|
|
|
### Live Pivot Updates Should:
|
|
1. ✅ **Detect New Candles** - Log when new candles are added
|
|
2. ✅ **Trigger Recalculation** - Call pivot API when needed (but throttled)
|
|
3. ✅ **Update Markers** - Show new pivot count in logs
|
|
4. ✅ **Redraw Charts** - Update visual pivot lines and dots
|
|
5. ✅ **Respect Toggles** - Only show pivots if enabled
|
|
|
|
### Console Should Show:
|
|
```
|
|
[1m] Chart update: 0 updated, 1 new candles, total: 151
|
|
[1m] Recalculating pivots with 151 candles...
|
|
[1m] Pivots updated: 5 → 6 pivot candles
|
|
[1m] Redrawing chart with pivots...
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
1. **Monitor Console** - Check for pivot recalculation messages
|
|
2. **Test API** - Verify backend pivot calculation works
|
|
3. **Adjust Throttling** - Reduce throttle time if needed
|
|
4. **Check Data Flow** - Ensure new candles trigger recalculation
|
|
5. **Verify Display** - Confirm pivots are visible after redraw
|
|
|
|
The debugging improvements should help identify exactly where the pivot update process is failing! 🔍 |