Forex_Strategy_Builder.Optimizer.CalculateLimitations C# (CSharp) Method

CalculateLimitations() private method

Calculates the Limitations Criteria
private CalculateLimitations ( ) : bool
return bool
        bool CalculateLimitations()
        {
            // Limitation Max Ambiguous Bars
            bool bAmbiguousBars = true;
            if (chbAmbiguousBars.Checked && Backtester.AmbiguousBars > nudAmbiguousBars.Value)
                bAmbiguousBars = false;

            // Limitation Max Equity Drawdown
            bool   bMaxEquityDrawdown = true;
            double dMaxEquityDrawdown = Configs.AccountInMoney ? Backtester.MaxMoneyEquityDrawdown : Backtester.MaxEquityDrawdown;
            if (chbMaxDrawdown.Checked && dMaxEquityDrawdown > (double)nudMaxDrawdown.Value)
                bMaxEquityDrawdown = false;

            // Limitation Max Equity percent drawdown
            bool   bEquityPercentDrawdown = true;
            double dEquityPercentDrawdown = Configs.AccountInMoney ? Backtester.MoneyEquityPercentDrawdown : Backtester.EquityPercentDrawdown;
            if (chbEquityPercent.Checked && dEquityPercentDrawdown > (double)nudEquityPercent.Value)
                bEquityPercentDrawdown = false;

            // Limitation Min Trades
            bool bMinTrades = true;
            if (chbMinTrades.Checked && Backtester.ExecutedOrders < nudMinTrades.Value)
                bMinTrades = false;

            // Limitation Max Trades
            bool bMaxTrades = true;
            if (chbMaxTrades.Checked && Backtester.ExecutedOrders > nudMaxTrades.Value)
                bMaxTrades = false;

            // Limitation Win / Loss ratio
            bool bWinLossRatio = true;
            if (chbWinLossRatio.Checked && Backtester.WinLossRatio < (double)nudWinLossRatio.Value)
                bWinLossRatio = false;

            return (bAmbiguousBars && bMaxEquityDrawdown && bMinTrades && bMaxTrades && bWinLossRatio && bEquityPercentDrawdown);
        }