diff --git a/Indicators/x-saherelm.x121.xcatb.v1.mq5 b/Indicators/x-saherelm.x121.xcatb.v1.mq5 index a2a1fcff..02bf5a66 100644 --- a/Indicators/x-saherelm.x121.xcatb.v1.mq5 +++ b/Indicators/x-saherelm.x121.xcatb.v1.mq5 @@ -696,7 +696,7 @@ XPOIStyle mBearishLiquidityStyle; // // Range Breakes ... -bool mDrawRangeBreakes = true; +bool mDrawRangeBreakes = false; bool mDetectRangeBreakes = true; XBoxZone mBullishRangeBreakes[]; XBoxZone mBearishRangeBreakes[]; @@ -5201,9 +5201,12 @@ void DoProcess( return; } + // + // Trigger Bar's Conditions ... + // // Bullish ... - mIsBullish = + bool isTBBullish = // iBar.IsBullish() && isTriggerBarBullish && @@ -5213,7 +5216,7 @@ void DoProcess( // // Bearish ... - mIsBearish = + bool isTBBearish = // iBar.IsBearish() && isTriggerBarBearish && @@ -5221,6 +5224,60 @@ void DoProcess( // ; + // + // KI Breakes Validation Conditions ... + + // + // Bullish ... + bool isKIBullishBreakes = + // + isKIBullish && + iBar.IsBullish() && + iPBar.IsBreaked( + kiBuffer[barIndex + 1], + X_DIRECTION_BULLISH, + X_FIBO_LEVEL_500, // Fibo Level ... + X_BOUNDARY_PRICE_HIGH_LOW // Boundary Type ... + ) + // + ; + + // + // Bearish ... + bool isKIBearishBreakes = + // + isKIBearish && + iBar.IsBearish() && + iPBar.IsBreaked( + kiBuffer[barIndex + 1], + X_DIRECTION_BEARISH, + X_FIBO_LEVEL_500, // Fibo Level ... + X_BOUNDARY_PRICE_HIGH_LOW // Boundary Type ... + ) + // + ; + + // + // Summarization Conditions ... + + // + // Bullish ... + mIsBullish = + // + isTBBullish && + isKIBullishBreakes + // + ; + + // + // Bearish ... + mIsBearish = + // + isTBBearish && + isKIBearishBreakes + // + ; + // // Signal Summarize ... mHasSignal = diff --git a/Libraries/x-saherelm.x-ohcl.lib.mq5 b/Libraries/x-saherelm.x-ohcl.lib.mq5 index 43a1de31..fe20b603 100644 --- a/Libraries/x-saherelm.x-ohcl.lib.mq5 +++ b/Libraries/x-saherelm.x-ohcl.lib.mq5 @@ -1076,16 +1076,16 @@ struct XOHCL // bool isBullish = IsBullish() && - IsBullish(forDir) && - close > price && - open < price; + low < price && + high > price && + IsBullish(forDir); // bool isBearish = IsBearish() && - IsBearish(forDir) && - close < price && - open > price; + low < price && + high > price && + IsBearish(forDir); // result = isBullish || @@ -1102,7 +1102,7 @@ struct XOHCL // // Apply Edge Range ... double iReqRange = - (range / 100) * GetFiboLevelValue(fibLevel); + (range / 100) * (GetFiboLevelValue(fibLevel) * 100); // // Calculate Boundary Price ... @@ -1117,9 +1117,16 @@ struct XOHCL // // Detect Breaked Value ... - // result = - // isBullish - // ? + + // + double breakedPrice = + isBullish + ? (high - price) + : (price - low); + + // + result = + breakedPrice >= iReqRange; } //