diff --git a/XOM1EA/Classes/xom1ea.expert.class.mq5 b/XOM1EA/Classes/xom1ea.expert.class.mq5 index 6d1e43ac..230d379a 100644 --- a/XOM1EA/Classes/xom1ea.expert.class.mq5 +++ b/XOM1EA/Classes/xom1ea.expert.class.mq5 @@ -54,11 +54,11 @@ class XCXOM1EAExpert : public XCBase // // Management ... - bool eaAllowGuards; // Allow Guards - bool eaAllowTrade; // Allow Trade on Signals - bool eaAllowLongs; // Allow Long Trades - bool eaAllowShorts; // Allow Short Trades - double eaMaxAllowedDrawdownFactor; // Max Allowed DrawDown for Trade + bool eaAllowGuards; // Allow Guards + bool eaAllowTrade; // Allow Trade on Signals + bool eaAllowLongs; // Allow Long Trades + bool eaAllowShorts; // Allow Short Trades + double eaMaxAllowedDrawdownFactor; // Max Allowed DrawDown for Trade // // Volume ... @@ -543,63 +543,66 @@ class XCXOM1EAExpert : public XCBase eaTradeManager.SetSymbolConfigurations(eaSymbolConfiguration); count = eaTradeManager.FillSymbolConfigurations(symbolConfigurations); has = IsValidSize(count); - - // - // Here we Apply Symbols,Periods and Configs ... - - // - // Configure Indicator ... - XOM1Inputs iDZoneOMInputs; - iDZoneOMInputs.Default(); - iDZoneOMInputs.showFiboZone = true; - - // - // Configure Signaller ... - XOM1SignallerConfig iDZoneSignallerConfig; - iDZoneSignallerConfig.processAllTicks = false; - - // - // Make Instance Signaller Class ... - - // - XCXOM1SignallerBase *iDZoneSignaller = NULL; - - // - // Define Signaller ... - iDZoneSignaller = new XCXOM1SignallerBase( - "XDZN", - "XAUUSDb", - PERIOD_M5, - iDZoneOMInputs, - iDZoneSignallerConfig); - if (iDZoneSignaller != NULL) + if (has) { // - // Attach Signaller OnSignal Event Handlers ... - count = ArraySize(mOnSignalEventHandlers); - has = IsValidSize(count); - if (has) + // Configure Indicator ... + XOM1Inputs iDZoneOMInputs; + iDZoneOMInputs.Default(); + iDZoneOMInputs.showFiboZone = true; + + // + // Configure Signaller ... + XOM1SignallerConfig iDZoneSignallerConfig; + iDZoneSignallerConfig.processAllTicks = false; + + // + XCXOM1SignallerBase *iDZoneSignaller = NULL; + + // + // Configure Signallers ... + for (int i = 0; i < count; i++) { // - for (int i = 0; i < count; i++) + // Define Signaller ... + iDZoneSignaller = new XCXOM1SignallerBase( + "XDZN", + symbolConfigurations[i].symbol, + symbolConfigurations[i].period, + iDZoneOMInputs, + iDZoneSignallerConfig // + ); + if (iDZoneSignaller != NULL) { - iDZoneSignaller.AddOnSignalEventHandler(mOnSignalEventHandlers[i]); + // + // Attach Signaller OnSignal Event Handlers ... + count = ArraySize(mOnSignalEventHandlers); + has = IsValidSize(count); + if (has) + { + // + for (int i = 0; i < count; i++) + { + iDZoneSignaller.AddOnSignalEventHandler(mOnSignalEventHandlers[i]); + } + } + + // + // Register Signaller ... + Add( + iDZoneSignaller, + eaSignallers // + ); } } // - // Register Signaller ... - Add( - iDZoneSignaller, - eaSignallers // - ); + // Cleanup Resources ... + iDZoneOMInputs.Clean(); + iDZoneSignallerConfig.Clean(); + ZeroMemory(iDZoneSignaller); } - - // - // Cleanup Resources ... - iDZoneOMInputs.Clean(); - iDZoneSignallerConfig.Clean(); - ZeroMemory(iDZoneSignaller); + SpecifiedClean(symbolConfigurations); // return result;