v5: replace ta.adx() with manual ADX calculation using selected OHLC (calcH/L/C)

This commit is contained in:
root
2025-10-19 20:02:53 +02:00
parent 04900aefc8
commit 322348e50d

View File

@@ -138,8 +138,17 @@ shortOk = not useMacd or (macdLine < macdSignal)
buyFlip = trend == 1 and trend[1] == -1 buyFlip = trend == 1 and trend[1] == -1
sellFlip = trend == -1 and trend[1] == 1 sellFlip = trend == -1 and trend[1] == 1
// ADX computation and gate // ADX computation (manual) and gate on selected source
adxVal = ta.adx(adxLen) upMove = calcH - calcH[1]
downMove = calcL[1] - calcL
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0.0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0.0
trADX = math.max(calcH - calcL, math.max(math.abs(calcH - calcC[1]), math.abs(calcL - calcC[1])))
atrADX = ta.rma(trADX, adxLen)
plusDI = atrADX == 0.0 ? 0.0 : 100.0 * ta.rma(plusDM, adxLen) / atrADX
minusDI = atrADX == 0.0 ? 0.0 : 100.0 * ta.rma(minusDM, adxLen) / 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 // Entry buffer gates relative to current Money Line