diff --git a/Documents/BKP/xcaea.tmp.signal.lib.mq5 b/Documents/BKP/xcaea.tmp.signal.lib.mq5 index 51735a9b..c48ebf92 100644 --- a/Documents/BKP/xcaea.tmp.signal.lib.mq5 +++ b/Documents/BKP/xcaea.tmp.signal.lib.mq5 @@ -698,6 +698,110 @@ bool DetectXCAEAConditions( } /////////////////////////////////////////////////////////////////////////////////// + // + // Detect Trend Lines ... + + // + // RSI ... + bool canLookupValeTrendLine = + detector.HasRSIValePivots() && + detector.CountRSIValePivots() >= 2; + if (canLookupValeTrendLine) + { + // + XBoxZone rsiVale; + XBoxZone rsiValePrev; + count = detector.CountRSIValePivots(); + has = detector.rsiValePivots[count - 1].AsBox(rsiValePrev); + has = has && + detector.rsiValePivots[count - 2].AsBox(rsiVale); + bool hasTrend = has && + rsiVale.lower > rsiValePrev.lower; + + // + if (hasTrend) + { + // + string valeTrendLineName = "RSIValeTrendLine"; + CChartObjectTrend *iVTLine; + iVTLine = new CChartObjectTrend(); + has = iVTLine.Create( + 0, + valeTrendLineName, + 0, + rsiValePrev.from, + rsiValePrev.lower, + rsiVale.to, + rsiVale.lower // + ); + if (has) + { + // + iVTLine.RayRight(true); + iVTLine.Width(2); + iVTLine.Color(clrAqua); + iVTLine.Style(STYLE_SOLID); + + // + mObjects.Add(iVTLine); + } + } + + // + rsiVale.Clean(); + rsiValePrev.Clean(); + } + + // + // CCI ... + // canLookupValeTrendLine = + // detector.HasCCIValePivots() && + // detector.CountCCIValePivots() >= 2; + // if (canLookupValeTrendLine) + // { + // // + // XBoxZone cciVale; + // XBoxZone cciValePrev; + // count = detector.CountCCIValePivots(); + // has = detector.cciValePivots[count - 1].AsBox(cciValePrev); + // has = has && + // detector.cciValePivots[count - 2].AsBox(cciVale); + // bool hasTrend = has && + // cciVale.lower > cciValePrev.lower; + + // // + // if (hasTrend) + // { + // // + // string valeTrendLineName = "CCIValeTrendLine"; + // CChartObjectTrend *iVTLine; + // iVTLine = new CChartObjectTrend(); + // has = iVTLine.Create( + // 0, + // valeTrendLineName, + // 0, + // cciValePrev.from, + // cciValePrev.lower, + // cciVale.to, + // cciVale.lower // + // ); + // if (has) + // { + // // + // iVTLine.RayRight(true); + // iVTLine.Width(2); + // iVTLine.Color(clrAqua); + // iVTLine.Style(STYLE_SOLID); + + // // + // mObjects.Add(iVTLine); + // } + // } + + // // + // cciVale.Clean(); + // cciValePrev.Clean(); + // } /////////////////////////////////////////////////////////////////////////////////// diff --git a/XCAEA/Signals/xcaea.signaller.class.mq5 b/XCAEA/Signals/xcaea.signaller.class.mq5 index e502a8ee..c0bce114 100644 --- a/XCAEA/Signals/xcaea.signaller.class.mq5 +++ b/XCAEA/Signals/xcaea.signaller.class.mq5 @@ -718,8 +718,8 @@ class XCXCAEASignaller : XCBase // // XOSCS ... - inputs.oscsInputs.rsiLength = 5; - inputs.oscsInputs.cciLength = 5; + // inputs.oscsInputs.rsiLength = 5; + // inputs.oscsInputs.cciLength = 5; // inputs.oscsInputs.mfiLength = 5; // inputs.oscsInputs.rviLength = 5; @@ -750,8 +750,8 @@ class XCXCAEASignaller : XCBase detector.detectSWLPivot = false; detector.detectPeakPivot = false; detector.detectValePivot = false; - detector.detectRSIPeakPivot = false; - detector.detectRSIValePivot = false; + detector.detectRSIPeakPivot = true; + detector.detectRSIValePivot = true; detector.detectCCIPeakPivot = true; detector.detectCCIValePivot = true; detector.detectKIBullishPivot = false; @@ -783,8 +783,8 @@ class XCXCAEASignaller : XCBase drawer.drawSWLPivots = false; drawer.drawPeakPivots = false; drawer.drawValePivots = false; - drawer.drawRSIPeakPivots = false; // true; - drawer.drawRSIValePivots = false; // true; + drawer.drawRSIPeakPivots = true; // true; + drawer.drawRSIValePivots = true; // true; drawer.drawCCIPeakPivots = false; // true; drawer.drawCCIValePivots = false; // true; drawer.drawKIBullishPivots = false; @@ -803,8 +803,8 @@ class XCXCAEASignaller : XCBase drawer.drawTrendBearishPivots = false; drawer.drawTKITRNDBullishPivots = false; drawer.drawTKITRNDBearishPivots = false; - drawer.drawRSICrossedOverOSPivots = false; - drawer.drawRSICrossedUnderOBPivots = false; + drawer.drawRSICrossedOverOSPivots = true; + drawer.drawRSICrossedUnderOBPivots = true; drawer.drawCCICrossedOverOSPivots = false; drawer.drawCCICrossedUnderOBPivots = false;