diff --git a/Documents/BKP/xcaea.pivots.tmp.mq5 b/Documents/BKP/xcaea.pivots.tmp.mq5 new file mode 100644 index 00000000..15e291f9 --- /dev/null +++ b/Documents/BKP/xcaea.pivots.tmp.mq5 @@ -0,0 +1,45 @@ + + // + // PEAKS ... + + // + // VALES ... + + // + // PEAK SWH RES ... + + // + // VALE SWL SUP ... + + // + // SWING HIGH ... + + // + // SWING LOW ... + + // + // KI ... + + // + // TKI ... + + // + // FVG ... + + // + // TREND ... + + // + // TKITRND ... + + // + // SAME CYCLES HH / LL ... + + // + // OSCS ... + + // + // RSI ... + + // + // CCI ... diff --git a/XCAEA/Classes/xcaea.x-poi.detector.class.mq5 b/XCAEA/Classes/xcaea.x-poi.detector.class.mq5 index f0016b6e..c58c52ed 100644 --- a/XCAEA/Classes/xcaea.x-poi.detector.class.mq5 +++ b/XCAEA/Classes/xcaea.x-poi.detector.class.mq5 @@ -528,32 +528,70 @@ class XCXCAEAPOIDetector : public XCBase // Props ... // + // Pivot Verifications and Max Allowed Holding Items ... int pivotVerifications; // Pivots Verifications ... int maxAllowedPivots; // Max Allowed Holding Pibots ... // - bool detectSWHPivot; - bool detectSWLPivot; + // Detector Pivots State Properties ... + + // + // PEAK / VALES ... bool detectPeakPivot; bool detectValePivot; - bool detectKIBullishPivot; - bool detectKIBearishPivot; - bool detectFVGBullishPivot; - bool detectFVGBearishPivot; - bool detectTKIBullishPivot; - bool detectTKIBearishPivot; + + // + // PEAK SWH RES / VALE SWL SUP ... bool detectPeakSWHResPivot; bool detectValeSWLSupPivot; + + // + // SWING HIGH / LOW ... + bool detectSWHPivot; + bool detectSWLPivot; + + // + // KI ... + bool detectKIBullishPivot; + bool detectKIBearishPivot; + + // + // TKI ... + bool detectTKIBullishPivot; + bool detectTKIBearishPivot; + + // + // FVG ... + bool detectFVGBullishPivot; + bool detectFVGBearishPivot; + + // + // SAME Cycles HH / LL ... bool detectCycleSameLLPivot; bool detectCycleSameHHPivot; + + // + // TREND ... bool detectTrendBullishPivot; bool detectTrendBearishPivot; + + // + // TKITRND ... bool detectTKITRNDBullishPivot; bool detectTKITRNDBearishPivot; + + // + // OSCS ... + + // + // RSI ... bool detectRSIPeakPivot; bool detectRSIValePivot; bool detectRSICrossedOverOSPivot; bool detectRSICrossedUnderOBPivot; + + // + // CCI ... bool detectCCIPeakPivot; bool detectCCIValePivot; bool detectCCICrossedOverOSPivot; @@ -590,6 +628,10 @@ class XCXCAEAPOIDetector : public XCBase XCAPivot swlPivots[]; XCAPivot peakPivots[]; XCAPivot valePivots[]; + XCAPivot rsiPeakPivots[]; + XCAPivot rsiValePivots[]; + XCAPivot cciPeakPivots[]; + XCAPivot cciValePivots[]; XCAPivot sSameHHPivots[]; XCAPivot mSameHHPivots[]; XCAPivot lSameHHPivots[]; @@ -610,17 +652,9 @@ class XCXCAEAPOIDetector : public XCBase XCAPivot trendBearishPivots[]; XCAPivot tkitrndBullishPivots[]; XCAPivot tkitrndBearishPivots[]; - - // - XCAPivot rsiPeakPivots[]; - XCAPivot rsiValePivots[]; XCAPivot rsiCrossedOverOSPivots[]; - XCAPivot rsiCrossedUnderOBPivots[]; - - // - XCAPivot cciPeakPivots[]; - XCAPivot cciValePivots[]; XCAPivot cciCrossedOverOSPivots[]; + XCAPivot rsiCrossedUnderOBPivots[]; XCAPivot cciCrossedUnderOBPivots[]; // @@ -671,6 +705,10 @@ class XCXCAEAPOIDetector : public XCBase Clean(swlPivots); Clean(peakPivots); Clean(valePivots); + Clean(rsiPeakPivots); + Clean(rsiValePivots); + Clean(cciPeakPivots); + Clean(cciValePivots); Clean(sSameHHPivots); Clean(mSameHHPivots); Clean(lSameHHPivots); @@ -681,6 +719,8 @@ class XCXCAEAPOIDetector : public XCBase Clean(hSameLLPivots); Clean(kiBullishPivots); Clean(kiBearishPivots); + Clean(fvgBullishPivots); + Clean(fvgBearishPivots); Clean(tkiBullishPivots); Clean(tkiBearishPivots); Clean(peakSWHResPivots); @@ -690,8 +730,8 @@ class XCXCAEAPOIDetector : public XCBase Clean(tkitrndBullishPivots); Clean(tkitrndBearishPivots); Clean(rsiCrossedOverOSPivots); - Clean(rsiCrossedUnderOBPivots); Clean(cciCrossedOverOSPivots); + Clean(rsiCrossedUnderOBPivots); Clean(cciCrossedUnderOBPivots); // @@ -2010,8 +2050,8 @@ class XCXCAEAPOIDetector : public XCBase iPivot.to = fvgBox.to; iPivot.from = fvgBox.from; iPivot.type = XCA_FVG_BULL; - iPivot.value = fvgBox.upper; - iPivot.reserve = fvgBox.lower; + iPivot.value = fvgBox.lower; + iPivot.reserve = fvgBox.upper; iPivot.symbol = fvgBox.symbol; iPivot.period = fvgBox.period; @@ -2040,8 +2080,8 @@ class XCXCAEAPOIDetector : public XCBase iPivot.to = fvgBox.to; iPivot.from = fvgBox.from; iPivot.type = XCA_FVG_BEAR; - iPivot.value = fvgBox.lower; - iPivot.reserve = fvgBox.upper; + iPivot.value = fvgBox.upper; + iPivot.reserve = fvgBox.lower; iPivot.symbol = fvgBox.symbol; iPivot.period = fvgBox.period; @@ -3776,460 +3816,7 @@ class XCXCAEAPOIDetector : public XCBase // Implement Validation Senarios ... // - has = HasSWLPivots(); - if (has) - { - // - Copy( - swlPivots, - tmp // - ); - Clean(swlPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - swlPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasValePivots(); - if (has) - { - // - Copy( - valePivots, - tmp // - ); - Clean(valePivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - valePivots // - ); - } - } - Clean(tmp); - } - - // - has = HasSSameLLPivots(); - if (has) - { - // - Copy( - sSameLLPivots, - tmp // - ); - Clean(sSameLLPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - sSameLLPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasMSameLLPivots(); - if (has) - { - // - Copy( - mSameLLPivots, - tmp // - ); - Clean(mSameLLPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - mSameLLPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasLSameLLPivots(); - if (has) - { - // - Copy( - lSameLLPivots, - tmp // - ); - Clean(lSameLLPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - lSameLLPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasHSameLLPivots(); - if (has) - { - // - Copy( - hSameLLPivots, - tmp // - ); - Clean(hSameLLPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - hSameLLPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasKIBullishPivots(); - if (has) - { - // - Copy( - kiBullishPivots, - tmp // - ); - Clean(kiBullishPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - kiBullishPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasValeSWLSupPivots(); - if (has) - { - // - Copy( - valeSWLSupPivots, - tmp // - ); - Clean(valeSWLSupPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - valeSWLSupPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasTKIBullishPivots(); - if (has) - { - // - Copy( - tkiBullishPivots, - tmp // - ); - Clean(tkiBullishPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - tkiBullishPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasTrendBullishPivots(); - if (has) - { - // - Copy( - trendBullishPivots, - tmp // - ); - Clean(trendBullishPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - trendBullishPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasTKITRNDBullishPivots(); - if (has) - { - // - Copy( - tkitrndBullishPivots, - tmp // - ); - Clean(tkitrndBullishPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - tkitrndBullishPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasSWHPivots(); - if (has) - { - // - Copy( - swhPivots, - tmp // - ); - Clean(swhPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - swhPivots // - ); - } - } - Clean(tmp); - } + // PEAKS ... // has = HasPeakPivots(); @@ -4270,15 +3857,18 @@ class XCXCAEAPOIDetector : public XCBase } // - has = HasSSameHHPivots(); + // VALES ... + + // + has = HasValePivots(); if (has) { // Copy( - sSameHHPivots, + valePivots, tmp // ); - Clean(sSameHHPivots); + Clean(valePivots); while (HasChild(tmp)) { // @@ -4300,7 +3890,7 @@ class XCXCAEAPOIDetector : public XCBase // AddRef( iPivot, - sSameHHPivots // + valePivots // ); } } @@ -4308,15 +3898,18 @@ class XCXCAEAPOIDetector : public XCBase } // - has = HasMSameHHPivots(); + // PEAK SWH RES ... + + // + has = HasPeakSWHResPivots(); if (has) { // Copy( - mSameHHPivots, + peakSWHResPivots, tmp // ); - Clean(mSameHHPivots); + Clean(peakSWHResPivots); while (HasChild(tmp)) { // @@ -4338,7 +3931,7 @@ class XCXCAEAPOIDetector : public XCBase // AddRef( iPivot, - mSameHHPivots // + peakSWHResPivots // ); } } @@ -4346,15 +3939,18 @@ class XCXCAEAPOIDetector : public XCBase } // - has = HasLSameHHPivots(); + // VALE SWL SUP ... + + // + has = HasValeSWLSupPivots(); if (has) { // Copy( - lSameHHPivots, + valeSWLSupPivots, tmp // ); - Clean(lSameHHPivots); + Clean(valeSWLSupPivots); while (HasChild(tmp)) { // @@ -4376,7 +3972,7 @@ class XCXCAEAPOIDetector : public XCBase // AddRef( iPivot, - lSameHHPivots // + valeSWLSupPivots // ); } } @@ -4384,15 +3980,18 @@ class XCXCAEAPOIDetector : public XCBase } // - has = HasHSameHHPivots(); + // SWING HIGH ... + + // + has = HasSWHPivots(); if (has) { // Copy( - hSameHHPivots, + swhPivots, tmp // ); - Clean(hSameHHPivots); + Clean(swhPivots); while (HasChild(tmp)) { // @@ -4414,7 +4013,89 @@ class XCXCAEAPOIDetector : public XCBase // AddRef( iPivot, - hSameHHPivots // + swhPivots // + ); + } + } + Clean(tmp); + } + + // + // SWING LOW ... + + // + has = HasSWLPivots(); + if (has) + { + // + Copy( + swlPivots, + tmp // + ); + Clean(swlPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + swlPivots // + ); + } + } + Clean(tmp); + } + + // + // KI ... + + // + has = HasKIBullishPivots(); + if (has) + { + // + Copy( + kiBullishPivots, + tmp // + ); + Clean(kiBullishPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + kiBullishPivots // ); } } @@ -4460,15 +4141,18 @@ class XCXCAEAPOIDetector : public XCBase } // - has = HasPeakSWHResPivots(); + // TKI ... + + // + has = HasTKIBullishPivots(); if (has) { // Copy( - peakSWHResPivots, + tkiBullishPivots, tmp // ); - Clean(peakSWHResPivots); + Clean(tkiBullishPivots); while (HasChild(tmp)) { // @@ -4490,7 +4174,7 @@ class XCXCAEAPOIDetector : public XCBase // AddRef( iPivot, - peakSWHResPivots // + tkiBullishPivots // ); } } @@ -4535,6 +4219,126 @@ class XCXCAEAPOIDetector : public XCBase Clean(tmp); } + // + // FVG ... + + // + has = HasFVGBullishPivots(); + if (has) + { + // + Copy( + fvgBullishPivots, + tmp // + ); + Clean(fvgBullishPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + fvgBullishPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasFVGBearishPivots(); + if (has) + { + // + Copy( + fvgBearishPivots, + tmp // + ); + Clean(fvgBearishPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + fvgBearishPivots // + ); + } + } + Clean(tmp); + } + + // + // TREND ... + + // + has = HasTrendBullishPivots(); + if (has) + { + // + Copy( + trendBullishPivots, + tmp // + ); + Clean(trendBullishPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + trendBullishPivots // + ); + } + } + Clean(tmp); + } + // has = HasTrendBearishPivots(); if (has) @@ -4573,6 +4377,47 @@ class XCXCAEAPOIDetector : public XCBase Clean(tmp); } + // + // TKITRND ... + + // + has = HasTKITRNDBullishPivots(); + if (has) + { + // + Copy( + tkitrndBullishPivots, + tmp // + ); + Clean(tkitrndBullishPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + tkitrndBullishPivots // + ); + } + } + Clean(tmp); + } + // has = HasTKITRNDBearishPivots(); if (has) @@ -4611,6 +4456,319 @@ class XCXCAEAPOIDetector : public XCBase Clean(tmp); } + // + // SAME CYCLES HH / LL ... + + // + has = HasSSameLLPivots(); + if (has) + { + // + Copy( + sSameLLPivots, + tmp // + ); + Clean(sSameLLPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + sSameLLPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasSSameHHPivots(); + if (has) + { + // + Copy( + sSameHHPivots, + tmp // + ); + Clean(sSameHHPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + sSameHHPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasMSameLLPivots(); + if (has) + { + // + Copy( + mSameLLPivots, + tmp // + ); + Clean(mSameLLPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + mSameLLPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasMSameHHPivots(); + if (has) + { + // + Copy( + mSameHHPivots, + tmp // + ); + Clean(mSameHHPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + mSameHHPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasLSameLLPivots(); + if (has) + { + // + Copy( + lSameLLPivots, + tmp // + ); + Clean(lSameLLPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + lSameLLPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasLSameHHPivots(); + if (has) + { + // + Copy( + lSameHHPivots, + tmp // + ); + Clean(lSameHHPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + lSameHHPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasHSameLLPivots(); + if (has) + { + // + Copy( + hSameLLPivots, + tmp // + ); + Clean(hSameLLPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + hSameLLPivots // + ); + } + } + Clean(tmp); + } + + // + has = HasHSameHHPivots(); + if (has) + { + // + Copy( + hSameHHPivots, + tmp // + ); + Clean(hSameHHPivots); + while (HasChild(tmp)) + { + // + XCAPivot iPivot = tmp[0]; + ArrayRemove( + tmp, + 0, + 1 // + ); + + // + has = IsPivotBreaked( + iPivot, + unAvailableBoxes, + barIndex // + ); + if (!has) + { + // + AddRef( + iPivot, + hSameHHPivots // + ); + } + } + Clean(tmp); + } + + // + // OSCS ... + + // + // RSI ... + // has = HasRSIPeakPivots(); if (has) @@ -4763,6 +4921,9 @@ class XCXCAEAPOIDetector : public XCBase Clean(tmp); } + // + // CCI ... + // has = HasCCIPeakPivots(); if (has) @@ -4915,82 +5076,6 @@ class XCXCAEAPOIDetector : public XCBase Clean(tmp); } - // - has = HasFVGBullishPivots(); - if (has) - { - // - Copy( - fvgBullishPivots, - tmp // - ); - Clean(fvgBullishPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - fvgBullishPivots // - ); - } - } - Clean(tmp); - } - - // - has = HasFVGBearishPivots(); - if (has) - { - // - Copy( - fvgBearishPivots, - tmp // - ); - Clean(fvgBearishPivots); - while (HasChild(tmp)) - { - // - XCAPivot iPivot = tmp[0]; - ArrayRemove( - tmp, - 0, - 1 // - ); - - // - has = IsPivotBreaked( - iPivot, - unAvailableBoxes, - barIndex // - ); - if (!has) - { - // - AddRef( - iPivot, - fvgBearishPivots // - ); - } - } - Clean(tmp); - } - // } @@ -5842,7 +5927,7 @@ class XCXCAEAPOIDetector : public XCBase // POI Handlers ... // - // Peaks ... + // PEAK ... // bool HasPeakPivots() @@ -5857,22 +5942,7 @@ class XCXCAEAPOIDetector : public XCBase } // - // Peak SWH Res ... - - // - bool HasPeakSWHResPivots() - { - return HasChild(peakSWHResPivots); - } - - // - int CountPeakSWHResPivots() - { - return ArraySize(peakSWHResPivots); - } - - // - // Vale ... + // VALE ... // bool HasValePivots() @@ -5887,7 +5957,22 @@ class XCXCAEAPOIDetector : public XCBase } // - // ValeSWLSup ... + // PEAK SWH Res ... + + // + bool HasPeakSWHResPivots() + { + return HasChild(peakSWHResPivots); + } + + // + int CountPeakSWHResPivots() + { + return ArraySize(peakSWHResPivots); + } + + // + // VALE SWL Sup ... // bool HasValeSWLSupPivots() @@ -5902,7 +5987,7 @@ class XCXCAEAPOIDetector : public XCBase } // - // Swing High ... + // SWING High ... // bool HasSWHPivots() @@ -5917,7 +6002,7 @@ class XCXCAEAPOIDetector : public XCBase } // - // Swing Low ... + // SWING Low ... // bool HasSWLPivots() @@ -5958,33 +6043,6 @@ class XCXCAEAPOIDetector : public XCBase return ArraySize(kiBearishPivots); } - // - // FVG ... - - // - bool HasFVGBullishPivots() - { - return HasChild(fvgBullishPivots); - } - - // - int CountFVGBullishPivots() - { - return ArraySize(fvgBullishPivots); - } - - // - bool HasFVGBearishPivots() - { - return HasChild(fvgBearishPivots); - } - - // - int CountFVGBearishPivots() - { - return ArraySize(fvgBearishPivots); - } - // // TKI ... @@ -6012,6 +6070,33 @@ class XCXCAEAPOIDetector : public XCBase return ArraySize(tkiBearishPivots); } + // + // FVG ... + + // + bool HasFVGBullishPivots() + { + return HasChild(fvgBullishPivots); + } + + // + int CountFVGBullishPivots() + { + return ArraySize(fvgBullishPivots); + } + + // + bool HasFVGBearishPivots() + { + return HasChild(fvgBearishPivots); + } + + // + int CountFVGBearishPivots() + { + return ArraySize(fvgBearishPivots); + } + // // TREND ... @@ -6067,7 +6152,7 @@ class XCXCAEAPOIDetector : public XCBase } // - // Same Cycles ... + // SAME CYCLES HH / LL ... // bool HasSSameLLPivots() @@ -6165,6 +6250,12 @@ class XCXCAEAPOIDetector : public XCBase return ArraySize(hSameHHPivots); } + // + // OSCS ... + + // + // RSI ... + // bool HasRSIPeakPivots() { @@ -6213,6 +6304,9 @@ class XCXCAEAPOIDetector : public XCBase return ArraySize(rsiCrossedUnderOBPivots); } + // + // CCI ... + // bool HasCCIPeakPivots() {