diff --git a/Classes/x-saherelm.x121.xea.class.mq5 b/Classes/x-saherelm.x121.xea.class.mq5 index 41e0d02e..14786bb6 100644 --- a/Classes/x-saherelm.x121.xea.class.mq5 +++ b/Classes/x-saherelm.x121.xea.class.mq5 @@ -47,10 +47,11 @@ struct XProtectedPosition // // Working Variables ... - double recoveryZoneStep; // Used Recovery Zone Step - int lastRecoveryLevel; // Last Recovery Level - double lastVolume; // Last Recovery Volume - ulong tickets[]; // Recovery Trades Tickets + double recoveryZoneStep; // Used Recovery Zone Step + int lastRecoveryLevel; // Last Recovery Level + datetime lastRecoveryTime; // Last Recovery Time + double lastVolume; // Last Recovery Volume + ulong tickets[]; // Recovery Trades Tickets // // Constructor ... @@ -124,6 +125,7 @@ struct XProtectedPosition openAt = NULL; lastRecoveryLevel = 0; lastVolume = 0; + lastRecoveryTime = NULL; Clean(tickets); } @@ -335,6 +337,26 @@ struct XProtectedPosition return result; } + // + // Check Last Recovery Time ... + int age = + !IsValid(this.lastRecoveryTime) + ? -1 + : iBarShift( + this.symbol, + this.period, + this.lastRecoveryTime, + false // + ); + result = + age == -1 + ? true + : age >= 5; + if (!result) + { + return result; + } + // // Now we have to Prepare Signal based on Recovery Mode ... @@ -909,6 +931,7 @@ protected: // Do What we Want ... item.lastRecoveryLevel++; item.lastVolume = signal.volume; + item.lastRecoveryTime = TimeCurrent(); Add( signal.positionId, item.tickets //