apply some fixe on Reversal POI Detection and Passed it ...

This commit is contained in:
2026-01-01 03:04:14 +03:30
parent a0876d5a05
commit 6fd07ea320
6 changed files with 168 additions and 25 deletions
@@ -890,12 +890,12 @@ class XCX121XKIHelperParser : XCBase
{
return result;
}
//
double atr = helper.GetATR(barIndex);
double atrMa = helper.GetATRSmoothed(barIndex);
double atr = helper.GetATR(barIndex);
double atrMa = helper.GetATRSmoothed(barIndex);
result = atr > atrMa;
//
return result;
}
@@ -918,8 +918,8 @@ class XCX121XKIHelperParser : XCBase
}
//
double atr = helper.GetATR(barIndex);
double atrMa = helper.GetATRSmoothed(barIndex);
double atr = helper.GetATR(barIndex);
double atrMa = helper.GetATRSmoothed(barIndex);
result = atr < atrMa;
//
@@ -1234,7 +1234,29 @@ class XCX121XKIHelperParser : XCBase
}
//
result = IsKIWaveSwitchedToBullish(barIndex) && IsRSIOversold(barIndex);
// RSI oversold and turning upward ...
double rsiNow = helper.GetRSI(barIndex);
double rsiPrev = helper.GetRSI(barIndex + 1);
bool rsiFlip = (rsiNow > rsiPrev) && (rsiPrev < 30);
//
// ATR check (volatility supportive) ...
double atrNow = helper.GetATR(barIndex);
double atrPrev = helper.GetATR(barIndex + 1);
double atrMaNow = helper.GetATRSmoothed(barIndex);
double atrMaPrev = helper.GetATRSmoothed(barIndex + 1);
bool atrOk = atrNow > atrMaNow || atrNow > atrPrev || atrMaNow > atrMaPrev;
//
// MA crossover bullish ...
double maFastNow = helper.GetMAFast(barIndex);
double maSlowNow = helper.GetMASlow(barIndex);
bool maOk = maFastNow > maSlowNow;
//
result = rsiFlip && (atrOk || maOk);
//
return result;
}
@@ -1256,7 +1278,29 @@ class XCX121XKIHelperParser : XCBase
}
//
result = IsKIWaveSwitchedToBearish(barIndex) && IsRSIOverbought(barIndex);
// RSI overbought and turning downward ...
double rsiNow = helper.GetRSI(barIndex);
double rsiPrev = helper.GetRSI(barIndex + 1);
bool rsiFlip = (rsiNow < rsiPrev) && (rsiPrev > 70);
//
// ATR check (volatility supportive) ...
double atrNow = helper.GetATR(barIndex);
double atrPrev = helper.GetATR(barIndex + 1);
double atrMaNow = helper.GetATRSmoothed(barIndex);
double atrMaPrev = helper.GetATRSmoothed(barIndex + 1);
bool atrOk = atrNow > atrMaNow || atrNow > atrPrev || atrMaNow > atrMaPrev;
//
// MA crossover bearish ...
double maFastNow = helper.GetMAFast(barIndex);
double maSlowNow = helper.GetMASlow(barIndex);
bool maOk = maFastNow < maSlowNow;
//
result = rsiFlip && (atrOk || maOk);
//
return result;
}