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);
}