feat: v11.1 RSI optimization - data-driven ranges prevent over-filtering

- rsiLongMin: 60→55 (5-point buffer below sweet spot for safety)
- rsiShortMax: 80→70 (prevents overbought chasing)
- rsiShortMin: keep 30 (captures winners at RSI 38.8 and 44)
- Updated all tooltips with empirical evidence

Evidence:
- User visual test: 4 SHORT signals blocked with RSI 45-70 filter
- Database: Both winning SHORTs at RSI 38.8 (+$0.38) and 44 (+$0.03)
- User observation: 'massivly sort out decent signals' with min=45
- Solution: RSI 30-70 SHORT range captures proven winners

Fixes: Over-restrictive RSI SHORT filter blocking profitable signals
This commit is contained in:
mindesbunister
2025-12-15 13:16:32 +01:00
parent 893312d39c
commit 21ce19fa3c

View File

@@ -62,10 +62,10 @@ volMin = input.float(0.1, "Volume min ratio", minval=0.0, step=0.1, group=groupV
volMax = input.float(3.5, "Volume max ratio", minval=0.5, step=0.5, group=groupV6Filters, tooltip="Maximum volume relative to 20-bar MA.") volMax = input.float(3.5, "Volume max ratio", minval=0.5, step=0.5, group=groupV6Filters, tooltip="Maximum volume relative to 20-bar MA.")
useRsiFilter = input.bool(true, "Use RSI momentum filter", group=groupV6Filters, tooltip="Ensure momentum confirms direction.") useRsiFilter = input.bool(true, "Use RSI momentum filter", group=groupV6Filters, tooltip="Ensure momentum confirms direction.")
rsiLongMin = input.float(60, "RSI long minimum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.1 DATA-DRIVEN: 60 (7-trade analysis shows RSI 60-70 = 100% WR, <60 = 0% WR).") rsiLongMin = input.float(55, "RSI long minimum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.1 DATA-DRIVEN: 55-70 captures sweet spot (RSI 60-70 = 100% WR, +$26.97). Buffer below 60 for safety.")
rsiLongMax = input.float(70, "RSI long maximum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.1 DATA-DRIVEN: Keep 70 max (RSI 73.5 was -$17 worst loss).") rsiLongMax = input.float(70, "RSI long maximum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.1 DATA-DRIVEN: 70 max (RSI 73.5 was -$17 worst loss).")
rsiShortMin = input.float(30, "RSI short minimum", minval=0, maxval=100, group=groupV6Filters) rsiShortMin = input.float(30, "RSI short minimum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.1 DATA-DRIVEN: 30-70 captures winners (Both winning SHORTs at RSI 38.8 and 44). Filter was blocking good signals!")
rsiShortMax = input.float(80, "RSI short maximum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11 OPTIMIZED: 80 (from exhaustive sweep).") rsiShortMax = input.float(70, "RSI short maximum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.1 DATA-DRIVEN: 70 max avoids overbought chasing. User test showed 4 signals blocked with min=45!")
// V9 NEW: MA GAP VISUALIZATION OPTIONS // V9 NEW: MA GAP VISUALIZATION OPTIONS
groupV9MA = "v9 MA Gap Options" groupV9MA = "v9 MA Gap Options"