diff --git a/Classes/x-saherelm.x-signaller.class.mq5 b/Classes/x-saherelm.x-signaller.class.mq5 index a09c6d33..35ebbf1a 100644 --- a/Classes/x-saherelm.x-signaller.class.mq5 +++ b/Classes/x-saherelm.x-signaller.class.mq5 @@ -219,6 +219,7 @@ class XCBaseSignaller : public XCBase // mProcessedTicksCount = 0; ProcessNewBar(barIndex); + return; } // diff --git a/Experts/x-saherelm.xfima.backtester.ea.mq5 b/Experts/x-saherelm.xfima.backtester.ea.mq5 index 0a341e21..be9d1d7c 100644 --- a/Experts/x-saherelm.xfima.backtester.ea.mq5 +++ b/Experts/x-saherelm.xfima.backtester.ea.mq5 @@ -53,6 +53,13 @@ input bool eaMailAlerts = false; // Mail Alerts input bool eaPushAlerts = false; // Push Alerts input bool eaTerminalAlerts = false; // Terminal Alerts +// +input group "Configuration"; +input bool eaProcessAllTicks = false; // Process All Ticks +input double eaSignallerR2R = 2.0; // Risk To Reward Ratio +input double eaSignallerVolume = 0.01; // Default Volume +input double eaSignallerRiskInPoint = 50; // Default Risk In Point + // // Indicator Inputs ... // @@ -147,6 +154,7 @@ int eaHandler = INVALID_HANDLE; // Indicator Handler ... int eaCTHandler = INVALID_HANDLE; // Candle Timer Handler ... // +bool eaIsNewBar; // Check New Bar ... ENUM_X_DIRECTION trendDir = X_DIRECTION_NONE; // @@ -219,11 +227,11 @@ int OnInit() // // Configure Other Requirements ... - eaExpert.volume = 0.01; - eaExpert.riskInPoint = 200; eaExpert.allowedTPSLStep = 10; - eaExpert.riskToRewardRatio = 2; eaExpert.minAllowedRiskInPoint = 20; + eaExpert.volume = eaSignallerVolume; + eaExpert.riskToRewardRatio = eaSignallerR2R; + eaExpert.riskInPoint = eaSignallerRiskInPoint; // // Try to Initialize eaExpert ... @@ -291,10 +299,10 @@ int OnInit() _Symbol, _Period, fimaInputs, - true, // Process All Ticks ... - 2.0, // Signaller Risk to Reward Ratio ... - 50, // Default Risk In Points ... - 0.01 // Defaul Volume ... + eaProcessAllTicks, // Process All Ticks ... + eaSignallerR2R, // Signaller Risk to Reward Ratio ... + eaSignallerRiskInPoint, // Default Risk In Points ... + eaSignallerVolume // Defaul Volume ... ); fima1Signaller.AddOnSignalEventHandler(OnSignalTriggered); @@ -404,8 +412,19 @@ void OnDeinit(const int reason) void OnTick() { // + eaIsNewBar = eaBarTracker.IsNewBar(); + bool canProcess = eaProcessAllTicks + ? true + : eaIsNewBar; + // eaExpert.HandleOnTick(); + // + if (!canProcess) + { + return; + } + // DetectPatterns(); @@ -714,8 +733,7 @@ void OnTradeStateChanged(const XOnTradeHandlerState &state) void DetectPatterns() { // - bool isNewBar = eaBarTracker.IsNewBar(); - if (!isNewBar) + if (!eaIsNewBar) { return; }