diff --git a/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 b/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 index 369f21e3..36c07963 100644 --- a/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 +++ b/X121SMCEA/Signals/x-121.smc.xhkpv.signal.lib.mq5 @@ -830,25 +830,26 @@ bool DetectX121SMCXHKPVSignalSetup( { // conditions.isPriceOBBreaked = - conditions.priceOB.IsBullish() - ? (cBar.low < conditions.priceOB.Upper() && - cBar.high > conditions.priceOB.Upper() && - cBar.close > conditions.priceOB.Upper()) + (conditions.priceOB.IsBullish() && + IsBullish(conditions.priceBox.dir)) + ? (cBar.low < conditions.priceBox.upper && + cBar.high > conditions.priceBox.upper && + cBar.close > conditions.priceBox.upper) // || // - (pBar.high < conditions.priceOB.Upper() && - cBar.low > conditions.priceOB.Upper() && - cBar.open > conditions.priceOB.Upper()) - : (cBar.high > conditions.priceOB.Lower() && - cBar.low < conditions.priceOB.Lower() && - cBar.close < conditions.priceOB.Lower()) + (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.low > conditions.priceOB.Lower() && - cBar.high < conditions.priceOB.Lower() && - cBar.open < conditions.priceOB.Lower()); + (pBar.low > conditions.priceBox.lower && + cBar.high < conditions.priceBox.lower && + cBar.open < conditions.priceBox.lower); } } @@ -860,14 +861,14 @@ bool DetectX121SMCXHKPVSignalSetup( { // isPriceOBUpperBrekedUp = IsBarBreak( - conditions.priceOB.Upper(), + conditions.priceBox.upper, X_DIRECTION_BULLISH, cBar // ); // isPriceOBLowerBrekedDown = IsBarBreak( - conditions.priceOB.Lower(), + conditions.priceBox.lower, X_DIRECTION_BEARISH, cBar // ); @@ -1001,6 +1002,11 @@ bool DetectX121SMCXHKPVSignalSetup( bool isXVWapBullish = false; bool isXVWapBearish = false; + // + // XCHE ... + bool isXCheBullish = false; + bool isXCheBearish = false; + // if (hasPriceBox) { @@ -1087,7 +1093,7 @@ bool DetectX121SMCXHKPVSignalSetup( // // Analyse ... analyseXConditions.isSarBullish && - analyseXConditions.isSarIncreased + analyseXConditions.isSarIncreased // ; @@ -1104,7 +1110,132 @@ bool DetectX121SMCXHKPVSignalSetup( // // Analyse ... analyseXConditions.isSarBearish // && - // analyseXConditions.isSarDecreased + // + ; + + // + // XATR ... + + // + isXAtrBullish = + // + // Trigger ... + triggerXConditions.isClosedOverAtrUpper && + // + // Decision ... + decisionXConditions.isClosedOverAtrUpper + // + // Analyse ... + // + ; + + // + isXAtrBearish = + // + // Trigger ... + triggerXConditions.isClosedUnderAtrLower && + // + // Decision ... + decisionXConditions.isClosedUnderAtrLower + // + // Analyse ... + // + ; + + // + // XSTR ... + + // + isXStrBullish = + // + // Trigger ... + triggerXConditions.isStrBullish && + // + // Decision ... + decisionXConditions.isStrBullish + // + // Analyse ... + // + ; + + // + isXStrBearish = + // + // Trigger ... + triggerXConditions.isStrBearish && + // + // Decision ... + decisionXConditions.isStrBearish + // + // Analyse ... + // + ; + + // + // XVWAP ... + + // + isXVWapBullish = + // + // Trigger ... + triggerXConditions.isVWapBullishState && + triggerXConditions.isVWapBullishOrdered && + // + // Decision ... + decisionXConditions.isVWapBullishState && + decisionXConditions.isVWapBullishOrdered && + // + // Analyse ... + analyseXConditions.isVWapBullishState && + analyseXConditions.isVWapBullishOrdered + // + ; + + // + isXVWapBearish = + // + // Trigger ... + triggerXConditions.isVWapBearishState && + triggerXConditions.isVWapBearishOrdered && + // + // Decision ... + decisionXConditions.isVWapBearishState && + decisionXConditions.isVWapBearishOrdered && + // + // Analyse ... + analyseXConditions.isVWapBearishState && + analyseXConditions.isVWapBearishOrdered + // + ; + + // + // XCHE ... + + // + isXCheBullish = + // + // Trigger ... + triggerXConditions.isCheBullish && + // + // Decision ... + decisionXConditions.isCheBullish && + // + // Analyse ... + analyseXConditions.isCheBullish + // + ; + + // + isXCheBearish = + // + // Trigger ... + triggerXConditions.isCheBearish && + // + // Decision ... + decisionXConditions.isCheBearish && + // + // Analyse ... + analyseXConditions.isCheBearish // ; } @@ -1125,6 +1256,18 @@ bool DetectX121SMCXHKPVSignalSetup( // XSAR ... isXSarBullish && // + // XATR ... + isXAtrBullish && + // + // XSTR ... + isXStrBullish && + // + // XVWAP ... + isXVWapBullish && + // + // XCHE ... + isXCheBullish && + // true // ; @@ -1142,6 +1285,18 @@ bool DetectX121SMCXHKPVSignalSetup( // XSAR ... isXSarBearish && // + // XATR ... + isXAtrBearish && + // + // XSTR ... + isXStrBearish && + // + // XVWAP ... + isXVWapBearish && + // + // XCHE ... + isXCheBearish && + // true // ; @@ -1164,8 +1319,8 @@ bool DetectX121SMCXHKPVSignalSetup( ); // - double longPivot = conditions.priceOB.Lower(); // triggerXConditions.valesBuffer[1]; - double shortPivot = conditions.priceOB.Upper(); // triggerXConditions.peaksBuffer[1]; + double longPivot = conditions.priceBox.lower; // triggerXConditions.valesBuffer[1]; + double shortPivot = conditions.priceBox.upper; // triggerXConditions.peaksBuffer[1]; // // Manipulate Conditions Point ... diff --git a/X121SMCEA/Strategy/x-121.smc.strategy.class.mq5 b/X121SMCEA/Strategy/x-121.smc.strategy.class.mq5 index dbbb9501..c786c4d0 100644 --- a/X121SMCEA/Strategy/x-121.smc.strategy.class.mq5 +++ b/X121SMCEA/Strategy/x-121.smc.strategy.class.mq5 @@ -1236,8 +1236,8 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy // // XATR ... - x121Inputs.xatrInputs.showATRUpper = showAll || true; - x121Inputs.xatrInputs.showATRLower = showAll || true; + x121Inputs.xatrInputs.showATRUpper = showAll || false; + x121Inputs.xatrInputs.showATRLower = showAll || false; // x121Inputs.xatrInputs.atrMultiplier = 1.5; @@ -1251,10 +1251,10 @@ class XCX121SMCStrategy : public XCX121SMCBaseStrategy // // XCHE ... - x121Inputs.xcheInputs.showLE1 = showAll || false; - x121Inputs.xcheInputs.showLE2 = showAll || false; - x121Inputs.xcheInputs.showSE1 = showAll || false; - x121Inputs.xcheInputs.showSE2 = showAll || false; + x121Inputs.xcheInputs.showLE1 = showAll || true; + x121Inputs.xcheInputs.showLE2 = showAll || true; + x121Inputs.xcheInputs.showSE1 = showAll || true; + x121Inputs.xcheInputs.showSE2 = showAll || true; // // XDON ...