forex software

Create and Test Forex Strategies

forex software


Acceptance Criteria


The acceptance criteria are widely used in EA Studio (in the Generator, Reactor, Validator, Optimizer). The acceptance criteria serve as a filter when a new strategy is generated or enters EA Studio. If the strategy passes it will be pushed to the Collection. For example if acceptance criteria are enabled in the Optimizer it will not display strategies that do not pass the acceptance criteria.

EA Studio applies the acceptance criteria to the backtest result stats. There are three zones of the backtest the acceptance criteria applies to (see the picture below)

  • Complete backtest
  • In sample (training) part
  • Out of sample (trading) part

If we have OOS enabled all three zones will be used.

If OOS is disabled only the first (Complete backtest) part will be used.

Acceptance Criteria Page|

The acceptance criteria work based on the strategy backtest. The strategy backtest results can be seen in the Strategy > OOS Monitor tab or in the Strategy > Report tab. We recommend using the OOS Monitor because there you can see the three distinct zones and their backtest stats.

If you find a strategy with the Generator that you like you can set the acceptance criteria so the generator will find similar strategies. Just go to the Strategy > OOS Monitor tab and see the results of the backtest. Then enter them in the acceptance criteria settings. For example if you liked a strategy that has a drawdawn of 8% in the acceptance criteria settings enter a number that is a little bit looser - 10% for Maximum drawdawn etc. From now on the generator will only give you strategies that fit these criteria.

Below is an example of a complete backtest, including In Sample, Out of Sample (OOS) and the Complete Backtest

Acceptance Criteria Panel

Add validation criteria allows you to add another acceptance criterion to the list. A strategy will pass the acceptance criteria only if it passes all tests in the list.

To remove a test just click the X button to the right of it.

Reset - resets the acceptance criteria for this zone of the backtest to it's default values.

Acceptance Criteria Metrics

Min. / Max. Average position length

Average position length expressed in bars.

Min. / Max. Bars in trade %

Bars in trade expressed as percentage.

Max. Consecutive losses

How many consecutive losing trades can the strategy have.

Min. / Max. Count of trades

Set the maximum number of trades to make sure the strategy is not over-optimized or to trade less frequently to avoid losing money on the spread. This is important for the Generator and Optimizer in order for their backtest results to be trustworthy. If there are too few trades, the parameters below might have good-looking values, but at the same time harm your profits. For example if you have a win/loss ratio of 1.0, it is great, but if the trade count is only one, this strategy not one you can rely on.

Max. Equity drawdown

The maximum drawdown is the largest cumulative decline in a equity curve.

Max. Equity drawdown %

The account equity should not go below the given percent value.

Max. Stagnation %

Set the maximum amount of consecutive days in which the strategy is not making profi, expressed as a percentage amount.

Max. Stagnation days

Set the maximum amount of consecutive days in which the strategy is not making profit.

Min. Average HPR %

Set the minimum average Holding Period Return in percent.

Min. Backtest quality

The EA Studio backtesting engine is very fast because it operates with bar data. Very rarely however will this lead to ambiguities in trade execution. For example if there are protections like Stop Loss or Take Profit it might be important if the price went to bar high or bar low price first. For such bars the backtest engine cannot tell which happened first so it marks the bar as “ambiguous”. This happens rarely but this criterion allows you to require a high percentage of the bars to be unambiguous to consider the strategy good enough.

Min. Balance Stability

Balance Stability is a performance metric developed as a combination of R-Squared, correlation and better scaling for a strategy.

Forum Post Link

Min. Months on profit %

Shows how stable the profits are over time. Imagine we have a strategy with minimum months of profit equal to 60%. This means that if the strategy backtest was for 10 months of trading we can see that the strategy was profitable for 6 months and in the other 4 months it didn't make any profits.

Min. Net profit

The strategy should make at least the set amount in your account's currency. Useful for the whole backtest as well as the Out of Sample part.

Min. Profit factor

Set the minimum profit factor i.e. gross profits divided by gross losses.

Min. Profit per day

The strategy should make at least this amount per day in your account's currency.

Min. R - Squared

The strategy should have at least this this R - Squared value. You can read more about this performance metric at Coefficient of determination article.

Min. Return / Drawdown

The strategy should have at least this this profit/drawdown ratio.

Min. Sharpe ratio

The strategy should have this or a higher Sharpe ratio.

Min. system quality number

The strategy should have this or a higher System Quality Number.

Min. Win / Loss ratio

The win/loss ratio is:

( (number of profitable trades) / (number of profitable trades + number of losing trades) ) 

Its value might vary between zero and one. We advise that, if you are using this requirement, keep the “Minimum number of trades” and “Minimum profit per day” requirements enabled too.