From 2db26ee5f63f0de9a5095aa54534a08fa8d06fac Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Fri, 24 Oct 2025 08:27:21 +0330 Subject: [PATCH] last ... --- .../x-saherelm.xfima.signaller.class.mq5 | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 b/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 index 5416d306..a52dfbc8 100644 --- a/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 +++ b/XFIMAEA/Classes/x-saherelm.xfima.signaller.class.mq5 @@ -1698,6 +1698,7 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller bool validateBarInsideZone = true; bool validateByBarPatterns = true; bool validateByBarInsideATRBand = true; + bool validateByBarBasedOnATRBand = true; // // Define Requirements ... @@ -1756,6 +1757,8 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller ); // + double atrBandUpper = EMPTY_VALUE; + double atrBandLower = EMPTY_VALUE; double atrBandMiddle = EMPTY_VALUE; // @@ -1859,8 +1862,8 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller if (result && validateByBarInsideATRBand) { // - double atrBandUpper = fimaHelper.GetATRBandUpper(p2Bar.Index()); - double atrBandLower = fimaHelper.GetATRBandLower(p2Bar.Index()); + atrBandUpper = fimaHelper.GetATRBandUpper(p2Bar.Index()); + atrBandLower = fimaHelper.GetATRBandLower(p2Bar.Index()); // atrBandMiddle = atrBandLower + ((atrBandUpper - atrBandLower) / 2); @@ -1882,6 +1885,23 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller result = isBullish || isBearish; } + // + // Force PBar Place Checking based on ATR Band ... + if (result && validateByBarBasedOnATRBand) + { + // + atrBandUpper = fimaHelper.GetATRBandUpper(pBar.Index()); + atrBandLower = fimaHelper.GetATRBandLower(pBar.Index()); + + // + result = + NotEmptyZero(atrBandUpper) && + NotEmptyZero(atrBandLower) && + (isBullish + ? pBar.close > atrBandLower + : pBar.close < atrBandUpper); + } + // if (result) {