critical: v11.2 EMERGENCY FIX - ADX 18 min (was 5), RSI 58-68 LONG (was 55-70)
- ADX minimum: 5 → 18 (all ADX <18 trades were losses) - RSI LONG range: 55-70 → 58-68 (tighter momentum window) - Fixed ADX filter: > to >= for proper boundary check - Reason: 4 consecutive SL losses, quality 95-100 signals failing - Evidence: ADX 13.2 = -0.55, ADX 15.8 = -.18, RSI 59.5 = -0.03
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
//@version=6
|
||||
indicator("Bullmania Money Line v11 All Filters", shorttitle="ML v11", overlay=true)
|
||||
indicator("Bullmania Money Line v11.2 EMERGENCY FIX", shorttitle="ML v11.2", overlay=true)
|
||||
|
||||
// Calculation source (Chart vs Heikin Ashi)
|
||||
srcMode = input.string("Chart", "Calculation source", options=["Chart","Heikin Ashi"], tooltip="Use regular chart candles or Heikin Ashi for the line calculation.")
|
||||
@@ -49,7 +49,7 @@ useEntryBuffer = input.bool(true, "Require entry buffer (ATR)", group=groupFilte
|
||||
entryBufferATR = input.float(0.10, "Buffer size (in ATR)", minval=0.0, step=0.05, group=groupFilters, tooltip="V11 OPTIMIZED: 0.10 ATR (from exhaustive sweep) - balanced flip protection.")
|
||||
useAdx = input.bool(true, "Use ADX trend-strength filter", group=groupFilters, tooltip="V11: Enabled by default to reduce choppy trades.")
|
||||
adxLen = input.int(16, "ADX Length", minval=1, group=groupFilters)
|
||||
adxMin = input.int(5, "ADX minimum", minval=0, maxval=100, group=groupFilters, tooltip="V11 OPTIMIZED: 5 (from exhaustive sweep) - allows more signals with sticky trend system protecting quality.")
|
||||
adxMin = input.int(18, "ADX minimum", minval=0, maxval=100, group=groupFilters, tooltip="V11.2 CRITICAL FIX: 18 minimum (all ADX <18 trades were losses: 13.2=-$20, 15.8=-$4, 17.0=-$7). Filters weak chop.")
|
||||
|
||||
// NEW v6 FILTERS
|
||||
groupV6Filters = "v6 Quality Filters"
|
||||
@@ -62,8 +62,8 @@ 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.")
|
||||
|
||||
useRsiFilter = input.bool(true, "Use RSI momentum filter", group=groupV6Filters, tooltip="Ensure momentum confirms direction.")
|
||||
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: 70 max (RSI 73.5 was -$17 worst loss).")
|
||||
rsiLongMin = input.float(58, "RSI long minimum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.2 TIGHTENED: 58-68 range (LONG trades at 59.5 lost -$40, need stronger momentum). Quality 95 still lost with RSI 59.5.")
|
||||
rsiLongMax = input.float(68, "RSI long maximum", minval=0, maxval=100, group=groupV6Filters, tooltip="V11.2 TIGHTENED: 68 max (RSI 73.5 was -$17 loss, avoid overbought entries entirely).")
|
||||
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(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!")
|
||||
|
||||
@@ -200,7 +200,7 @@ plusDI = atrADX == 0.0 ? 0.0 : 100.0 * plusDMSmooth / atrADX
|
||||
minusDI = atrADX == 0.0 ? 0.0 : 100.0 * minusDMSmooth / atrADX
|
||||
dx = (plusDI + minusDI == 0.0) ? 0.0 : 100.0 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
|
||||
adxVal = ta.rma(dx, adxLen)
|
||||
adxOk = not useAdx or (adxVal > adxMin)
|
||||
adxOk = not useAdx or (adxVal >= adxMin)
|
||||
|
||||
// Entry buffer gates relative to current Money Line
|
||||
longBufferOk = not useEntryBuffer or (calcC > supertrend + entryBufferATR * atr)
|
||||
|
||||
Reference in New Issue
Block a user