diff --git a/MultiSignal_Confluence_EA.mq5 b/MultiSignal_Confluence_EA.mq5 index 8cdfdf6..28ccee0 100644 --- a/MultiSignal_Confluence_EA.mq5 +++ b/MultiSignal_Confluence_EA.mq5 @@ -631,7 +631,8 @@ bool CheckDailyDrawdown() { static bool warningPrinted = false; - if(InpMaxDailyDrawdown <= 0) return true; // Protection disabled + if(InpMaxDailyDrawdown <= 0) + return true; // Protection disabled datetime today = TimeCurrent() / 86400 * 86400; if(today != lastEquityReset) @@ -645,11 +646,13 @@ bool CheckDailyDrawdown() } double currentEquity = AccountInfoDouble(ACCOUNT_EQUITY); - if(dailyStartEquity <= 0) return true; + if(dailyStartEquity <= 0) + return true; double drawdownPercent = (dailyStartEquity - currentEquity) / dailyStartEquity * 100; + bool overLimit = (drawdownPercent >= InpMaxDailyDrawdown); - if(drawdownPercent >= InpMaxDailyDrawdown) + if(overLimit) { if(!warningPrinted) { @@ -659,8 +662,11 @@ bool CheckDailyDrawdown() } return false; // Block new trades } + else + { + warningPrinted = false; // Reset when below limit + } - warningPrinted = false; // Reset when below limit return true; } diff --git a/OrdersEA_Smart_Grid.mq5 b/OrdersEA_Smart_Grid.mq5 index 9c25291..89cdb28 100644 --- a/OrdersEA_Smart_Grid.mq5 +++ b/OrdersEA_Smart_Grid.mq5 @@ -128,7 +128,8 @@ bool CheckDailyDrawdown() { static bool warningPrinted = false; - if(InpMaxDailyDrawdown <= 0) return true; // Protection disabled + if(InpMaxDailyDrawdown <= 0) + return true; // Protection disabled datetime today = TimeCurrent() / 86400 * 86400; if(today != lastEquityReset) @@ -142,11 +143,14 @@ bool CheckDailyDrawdown() } double currentEquity = AccountInfoDouble(ACCOUNT_EQUITY); - if(dailyStartEquity <= 0) return true; + if(dailyStartEquity <= 0) + return true; double drawdownPercent = (dailyStartEquity - currentEquity) / dailyStartEquity * 100; - if(drawdownPercent >= InpMaxDailyDrawdown) + bool overLimit = (drawdownPercent >= InpMaxDailyDrawdown); + + if(overLimit) { if(!warningPrinted) { @@ -157,8 +161,11 @@ bool CheckDailyDrawdown() } return false; // Block new trades } + else + { + warningPrinted = false; // Reset when below limit + } - warningPrinted = false; // Reset when below limit return true; }