diff --git a/Experts/x-saherelm.x121.ea.mq5 b/Experts/x-saherelm.x121.ea.mq5 index 8520f0d4..c85571e9 100644 --- a/Experts/x-saherelm.x121.ea.mq5 +++ b/Experts/x-saherelm.x121.ea.mq5 @@ -831,11 +831,24 @@ void OnSignalRecieved( // Strategy and it's not related to Public // TradeHandler for Seperation of Concern issue, // we do this here ... - XCHCHEStartegyConditionsParser parser; - bool isFiltered = parser.IsFiltered( - signal, - conditions // - ); + XCHStartegyConditionsParser chParser; + XCHCHEStartegyConditionsParser chcheParser; + + // + bool isXCHSignal = signal.provider == XCHStartegyToken; + bool isXCHCHESignal = signal.provider == XCHCHEStartegyToken; + bool isFiltered = + isXCHSignal + ? chParser.IsFiltered( + signal, + conditions // + ) + : isXCHCHESignal + ? chcheParser.IsFiltered( + signal, + conditions // + ) + : true; if (isFiltered) { // @@ -843,33 +856,6 @@ void OnSignalRecieved( return; } - // // - // // Here we Can Increase Signal Volume if - // // it is not force Filtered ... - // bool isForceFiltered = parser.IsFiltered( - // signal, - // conditions, - // true // - // ); - // if (!isForceFiltered) - // { - // // - // // TODO: - // // Implement Strong Signals Conditions - // // Senarios ... - // forceSignalsCount++; - - // // - // // Alert Froce Strong Signals - // // if Provided ... - // if (eaAlertStrongSignals) - // { - // // - // string msg = "Foce Strong " + (IsLong(signal.type) ? "Long" : "Short") + " Signal Recieved: (" + signal.provider + "," + signal.symbol + "," + ToString(signal.period) + ") ..."; - // eaAlert.Alert(msg); - // } - // } - // // Attach Conditions Summary to Signal ... string conditionsSummary = conditions.GenerateSummary( @@ -880,10 +866,18 @@ void OnSignalRecieved( ); // - signal.conditions = parser.GenerateSignalConditions( - signal, - conditions // - ); // conditionsSummary; + signal.conditions = + isXCHSignal + ? chParser.GenerateSignalConditions( + signal, + conditions // + ) + : isXCHCHESignal + ? chcheParser.GenerateSignalConditions( + signal, + conditions // + ) + : conditionsSummary; // // Execute Signal Using Trade Handler ... diff --git a/Strategies/x-saherelm.xch.che.strategy.mq5 b/Strategies/x-saherelm.xch.che.strategy.mq5 index 3cf35f13..13354665 100644 --- a/Strategies/x-saherelm.xch.che.strategy.mq5 +++ b/Strategies/x-saherelm.xch.che.strategy.mq5 @@ -643,6 +643,10 @@ public: return result; } + // + // Attach Strategy Lebel ... + signal.provider = XCHCHEStartegyToken; + // // Notify XCH Specified Signal Event Handlers ... NotifyOnXCHSignalEventHandlers( diff --git a/Strategies/x-saherelm.xch.strategy.mq5 b/Strategies/x-saherelm.xch.strategy.mq5 index 162f56bb..b5acb34e 100644 --- a/Strategies/x-saherelm.xch.strategy.mq5 +++ b/Strategies/x-saherelm.xch.strategy.mq5 @@ -1312,6 +1312,10 @@ public: return result; } + // + // Attach Strategy Lebel ... + signal.provider = XCHStartegyToken; + // // Notify XCH Specified Signal Event Handlers ... NotifyOnXCHSignalEventHandlers(