docs: Add quality-blocked signal tracking to copilot instructions

Enhanced Multi-Timeframe Price Tracking System documentation:
- Clarified that quality-blocked signals get tracked (not just timeframes)
- Added QUALITY_SCORE_TOO_LOW to blockReason types (Nov 21: threshold 91+)
- Included SQL query example for analyzing missed winners
- Decision Making section now covers threshold optimization

Context: User asked about 80-quality bounce play that shot up
- System correctly blocked it (ADX 16.6, quality 80 < 91 threshold)
- BlockedSignalTracker captures all price movement for 30 minutes
- Enables data-driven analysis: are we filtering too many winners?
- Stick with trend-following for now, let data accumulate for future optimization

Current tracker status: 8 tracked, 6 complete (75%), 50% TP1 hit rate
This commit is contained in:
mindesbunister
2025-11-21 19:02:25 +01:00
parent 08482b43fe
commit 5419b3f48f

View File

@@ -462,13 +462,14 @@ docker system df
## Multi-Timeframe Price Tracking System (Nov 19, 2025)
**Purpose:** Automated data collection and analysis for signals across multiple timeframes (5min, 15min, 1H, 4H, Daily) to determine which timeframe produces the best trading results.
**Purpose:** Automated data collection and analysis for signals across multiple timeframes (5min, 15min, 1H, 4H, Daily) to determine which timeframe produces the best trading results. **Also tracks quality-blocked signals** to analyze if threshold adjustments are filtering too many winners.
**Architecture:**
- **5min signals:** Execute trades (production)
- **15min/1H/4H/Daily signals:** Save to BlockedSignal table with `blockReason='DATA_COLLECTION_ONLY'`
- **Quality-blocked signals:** Save with `blockReason='QUALITY_SCORE_TOO_LOW'` (Nov 21: threshold raised to 91+)
- **Background tracker:** Runs every 5 minutes, monitors price movements for 30 minutes
- **Analysis:** After 50+ signals per timeframe, compare win rates and profit potential
- **Analysis:** After 50+ signals per category, compare win rates and profit potential
**Components:**
@@ -537,10 +538,22 @@ ORDER BY win_rate DESC;
**Decision Making:**
After sufficient data collected:
- Compare: 5min vs 15min vs 1H vs 4H vs Daily win rates
- Evaluate: Signal frequency (trades/day) vs win rate trade-off
- Identify: Which timeframe has best TP1 hit rate with acceptable MAE
- Action: Switch production timeframe if higher timeframe shows significantly better results
- **Multi-timeframe:** Compare 5min vs 15min vs 1H vs 4H vs Daily win rates
- **Quality threshold:** Analyze if blocked signals (quality <91) would've been winners
- **Evaluation:** Signal frequency vs win rate trade-off, threshold optimization
- **Query example:**
```sql
-- Would quality-blocked signals have been winners?
SELECT
COUNT(*) as blocked_count,
SUM(CASE WHEN "wouldHitTP1" THEN 1 ELSE 0 END) as would_be_winners,
SUM(CASE WHEN "wouldHitSL" THEN 1 ELSE 0 END) as would_be_losers,
ROUND(100.0 * SUM(CASE WHEN "wouldHitTP1" THEN 1 ELSE 0 END) / COUNT(*), 1) as missed_win_rate
FROM "BlockedSignal"
WHERE "blockReason" = 'QUALITY_SCORE_TOO_LOW'
AND "analysisComplete" = true;
```
- **Action:** Adjust thresholds or switch production timeframe based on data
**Key Features:**
- **Autonomous:** No manual work needed, runs in background