diff --git a/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 b/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 index 36c07963..2597085b 100644 --- a/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 +++ b/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 @@ -698,6 +698,8 @@ bool DetectX121SMCXHKPVSignalSetup( // Detect Cycle State ... // + double upper = 0; + double lower = 0; bool isPriceOBValid = false; bool isBullishHappens = false; bool isBearishHappens = false; @@ -725,6 +727,8 @@ bool DetectX121SMCXHKPVSignalSetup( // Update Price Box Date ... conditions.priceOB.To(cTime); conditions.priceBox.to = cTime; + upper = conditions.priceOB.Upper(); + lower = conditions.priceOB.Lower(); // // Here We Can Validate Box by Same Cycles Peaks and Vales ... @@ -831,25 +835,25 @@ bool DetectX121SMCXHKPVSignalSetup( // conditions.isPriceOBBreaked = (conditions.priceOB.IsBullish() && - IsBullish(conditions.priceBox.dir)) - ? (cBar.low < conditions.priceBox.upper && - cBar.high > conditions.priceBox.upper && - cBar.close > conditions.priceBox.upper) + IsBullish(conditions.priceBox.dir)) + ? (cBar.low < upper && + cBar.high > upper && + cBar.close > upper) // || // - (pBar.high < conditions.priceBox.upper && - cBar.low > conditions.priceBox.upper && - cBar.open > conditions.priceBox.upper) - : (cBar.high > conditions.priceBox.lower && - cBar.low < conditions.priceBox.lower && - cBar.close < conditions.priceBox.lower) + (pBar.high < upper && + cBar.low > upper && + cBar.open > upper) + : (cBar.high > lower && + cBar.low < lower && + cBar.close < lower) // || // - (pBar.low > conditions.priceBox.lower && - cBar.high < conditions.priceBox.lower && - cBar.open < conditions.priceBox.lower); + (pBar.low > lower && + cBar.high < lower && + cBar.open < lower); } } @@ -861,14 +865,14 @@ bool DetectX121SMCXHKPVSignalSetup( { // isPriceOBUpperBrekedUp = IsBarBreak( - conditions.priceBox.upper, + upper, X_DIRECTION_BULLISH, cBar // ); // isPriceOBLowerBrekedDown = IsBarBreak( - conditions.priceBox.lower, + lower, X_DIRECTION_BEARISH, cBar // ); @@ -1319,8 +1323,8 @@ bool DetectX121SMCXHKPVSignalSetup( ); // - double longPivot = conditions.priceBox.lower; // triggerXConditions.valesBuffer[1]; - double shortPivot = conditions.priceBox.upper; // triggerXConditions.peaksBuffer[1]; + double longPivot = lower; // triggerXConditions.valesBuffer[1]; + double shortPivot = upper; // triggerXConditions.peaksBuffer[1]; // // Manipulate Conditions Point ... @@ -1364,6 +1368,30 @@ bool DetectX121SMCXHKPVSignalSetup( isBearish; if (!result) { + // + bool canReset = + // + hasPriceBox && + conditions.isPriceOBActed && + conditions.isPriceOBBreaked && + // + ( + // + IsBullish(conditions.priceBox.dir) + ? pBar.high < lower && + cBar.high < lower + : pBar.low > upper && + cBar.low > upper + // + ) + // + ; + if (canReset) + { + // + Print("canReset"); + } + // // Cleanup Arrays ... ArrayFree(triggerPoiEvents);