From 4fb6a45fabf03aa1a1da2c3c400f269793aa23a9 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Fri, 28 Nov 2025 00:39:43 +0100 Subject: [PATCH] docs: Update SHORT threshold to 80 with v10 penalty system explanation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SHORT threshold now 80 (works WITH v10 penalties, not standalone) - v10 applies -30 to -55 point penalties for weak setups (ADX < 23, mid-range) - Documented penalty calculation examples (bad/trap/good setups) - Removed outdated Nov 23 data analysis (pre-v10 system) - Added RSI filter evolution context (removed because RSI 50+ = best 68.2% WR) - Updated quality threshold references throughout docs (95 → 80 for SHORTs) --- .github/copilot-instructions.md | 39 +++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 59dc799..304d554 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -302,26 +302,31 @@ Change → Code → Test → Git Commit → UPDATE COPILOT-INSTRUCTIONS.MD → G - BTC and other symbols fall back to global settings (`MAX_POSITION_SIZE_USD`, `LEVERAGE`) - **Priority:** Per-symbol ENV → Market config → Global ENV → Defaults -**Signal Quality System:** Filters trades based on 5 metrics (ATR, ADX, RSI, volumeRatio, pricePosition) scored 0-100. **Direction-specific thresholds (Nov 23, 2025):** LONG signals require 90+ (71.4% WR at 90-94), SHORT signals require 95+ (28.6% WR at 90-94 = toxic). Data from 227 trades showed $778.52 P&L difference favoring longs. Scores stored in database for future optimization. +**Signal Quality System:** Filters trades based on 5 metrics (ATR, ADX, RSI, volumeRatio, pricePosition) scored 0-100. **Direction-specific thresholds with v10 penalties (Nov 28, 2025):** LONG signals require 90+ (straightforward), SHORT signals require 80+ but v10 applies -30 to -55 point penalties for weak setups (ADX < 23, mid-range position), making effective threshold 80-110 based on setup quality. Scores stored in database for future optimization. -**Direction-Specific Quality Thresholds (Nov 23, 2025 - DATA-DRIVEN):** -- **LONG threshold:** 90 (captures profitable quality 90-94 signals: 71.4% WR, +$44.77 on 7 trades) -- **SHORT threshold:** 95 (blocks toxic quality 90-94 signals: 28.6% WR, -$553.76 on 7 trades) -- **Configuration:** `MIN_SIGNAL_QUALITY_SCORE_LONG=90`, `MIN_SIGNAL_QUALITY_SCORE_SHORT=95` in .env +**Direction-Specific Quality Thresholds (Nov 28, 2025 - v10 PENALTY SYSTEM):** +- **LONG threshold:** 90 (straightforward, no penalties applied) +- **SHORT threshold:** 80 (works WITH v10 penalties that subtract 30-55 points for weak setups) +- **Configuration:** `MIN_SIGNAL_QUALITY_SCORE_LONG=90`, `MIN_SIGNAL_QUALITY_SCORE_SHORT=80` in .env +- **v10 SHORT Penalties (applied INSIDE scoring):** + - ADX < 23 (weak trend): -30 points → filters chop + - Mid-range position (40-60%): -25 points → filters trap zone + - Both conditions: -55 points total + - Top of range (≥60%) + strong ADX: +15 points bonus +- **How threshold 80 works:** + - Bad setup: Quality 80 + ADX 20 → -30 penalty → final 50 → BLOCKED by threshold 80 + - Trap zone: Quality 85 + mid-range → -25 penalty → final 60 → BLOCKED by threshold 80 + - Good setup: Quality 90 + top of range → +15 bonus → final 105 → EXECUTES - **Fallback logic:** Direction-specific ENV → Global ENV (91) → Default (60) - **Helper function:** `getMinQualityScoreForDirection(direction, config)` in config/trading.ts - **Implementation:** check-risk endpoint uses direction-specific thresholds before execution -- **Expected impact:** ~3.1% more trades (quality 90-94 longs), +$44.77 potential profit, prevent -$553.76 losses -- **VALIDATION (Nov 24, 2025 - BIGGEST LOSERS ANALYSIS):** - - **Top 15 losing trades analyzed:** Quality 80-90 trades dominate the loss list - - **Top 2 biggest losses:** Quality 90 SHORTS lost -$386.62 and -$138.35 (total -$524.97) - - **Quality 80 losses:** 4 trades lost combined -$212.76 (SHORTS: -$143.96, LONG: -$68.80) - - **Total losses prevented by current thresholds:** -$847.07 would be blocked today - - **Missed winners (Nov 24):** ~$210 from 2 blocked quality 80 SHORT signals - - **NET BENEFIT:** +$637 improvement (3:1 ratio - avoid $3 in losses for every $1 missed) - - **User capital validation:** Peak $1,380 → bad shorts → $904, proving 95+ SHORT threshold necessary - - **Trade-off confirmed:** Sacrifice 1-2 winners/week to eliminate catastrophic quality 80-90 disaster trades -- **See:** `docs/DIRECTION_SPECIFIC_QUALITY_THRESHOLDS.md` for complete analysis and SQL queries +- **RSI Filter Evolution (Critical Context):** + - Old v8 belief: Short oversold (RSI < 35) = catch falling knives + - Data reality: RSI < 35 shorts = 37.5% WR, -$655.23 (4 biggest disasters) + - Discovery: RSI 50+ shorts = 68.2% WR, +$29.88 (BEST performance!) + - v10 change: Completely REMOVED RSI requirement + - New focus: ADX (trend strength) + Price Position (setup location) with penalties +- **See:** `docs/DIRECTION_SPECIFIC_QUALITY_THRESHOLDS.md` for historical analysis **Adaptive Leverage System (Nov 24, 2025 - RISK-ADJUSTED POSITION SIZING):** - **Purpose:** Automatically adjust leverage based on signal quality score - high confidence gets full leverage, borderline signals get reduced risk exposure @@ -4792,7 +4797,7 @@ See `POSITION_SCALING_ROADMAP.md` for planned position management optimizations: * Winners: ADX 23.7-26.9, Price Pos 19-64% * Losers: ADX 21.8-25.4, Price Pos 13.6% (today) - **First Day Results (Nov 26, 2025):** 2 losses, -$287.29 total (both would be blocked by momentum filter) - - **Quality threshold:** LONG ≥90, SHORT ≥95 (direction-specific) + - **Quality threshold (Nov 28, 2025):** LONG ≥90, SHORT ≥80 (with v10 penalties) - File: `workflows/trading/moneyline_v9_ma_gap.pinescript` + momentum filter in `lib/trading/signal-quality.ts` - **v8:** Money Line Sticky Trend (Nov 18-26) - ARCHIVED - 8 trades completed (57.1% WR, +$262.70)