diff --git a/XOM1EA/Classes/xom1ea.expert.class.mq5 b/XOM1EA/Classes/xom1ea.expert.class.mq5 index 86cedd1a..e42e1e6c 100644 --- a/XOM1EA/Classes/xom1ea.expert.class.mq5 +++ b/XOM1EA/Classes/xom1ea.expert.class.mq5 @@ -555,7 +555,7 @@ class XCXOM1EAExpert : public XCBase XCXOM1SignallerBase *iDZoneSignaller = NULL; iDZoneSignaller = new XCXOM1SignallerBase( "XDZN", - "EURUSDb", + "XAUUSDb", PERIOD_M5, iDZoneOMInputs, iDZoneSignallerConfig); diff --git a/XOM1EA/Classes/xom1ea.signaller.class.mq5 b/XOM1EA/Classes/xom1ea.signaller.class.mq5 index d38a90c6..7772bd12 100644 --- a/XOM1EA/Classes/xom1ea.signaller.class.mq5 +++ b/XOM1EA/Classes/xom1ea.signaller.class.mq5 @@ -398,8 +398,38 @@ class XCXOM1SignallerBase iSlow <= iZoneUpper; // - // Validate Fibo Values ... - // TODO: ... + // Validate PSar ... + bool isSarBullish = iConditions.sarStateBuffer[cIdx] > 0; + bool isSarBearish = iConditions.sarStateBuffer[cIdx] < 0; + has = + has && + (isFastCrossedOverSlow + ? isSarBullish + : isSarBearish // + ); + + // + // Validate Fibo Zone ... + for (int idx = cIdx; idx < cIdx + 2; idx++) + { + // + // Check Fibo Upper ... + has = has && + iConditions.fiboUpperBuffer[idx] == iConditions.fiboUpperBuffer[idx + 1]; + if (!has) + { + break; + } + + // + // Check Fibo Lower ... + has = has && + iConditions.fiboLowerBuffer[idx] == iConditions.fiboLowerBuffer[idx + 1]; + if (!has) + { + break; + } + } } //