Backtest options

Trade

Long The complete portfolio goes long on equities.
Short The complete portfolio goes short on equities.

Number of stocks

It defines the maximum number of stocks that will be selected in each period.

Start

The year of the first observation.

End

The year of the last observation.

Max per sector

The maximum number of stocks in portfolio per sector.

Rebalance timing

Defines the moments of the observations.

The backtest uses annual results. An observation at start of Q[2-4] 2015 uses the annual results of 2014. An observation at start of Q1 2015 uses the annual results of 2013. Using the annual results of 2015 would be a look-ahead bias, because they were not yet known at that time. Of course, this only applies to the backtest. You can invest at any time using the trailing values. But observations at start Q2 are the most reliable.

Rebalance strategy

Defines the behavior at the each moment of rebalancing. It uses mostly technical indicators that can be used to automatically decide not to sell some stocks at the end of a period and keep them for the next period. For instance "Keep 20% from top" means that stocks that have a period price ending above 20% from the period top are not being sold and kept for the next backtest period. So all stocks with price at the end of the period below 20% from the top of the period are sold, and replaced by new selected ones.

Full rebalance All stocks bought at previous observation are sold. The top list of the screen run at the moment of observation is bought.
Keep winners All stocks bought at previous observation are sold, except those that had a positive return on the last backtest period. The top list of the screen run at the moment of observation is bought to complete the portfolio.
Keep condition All stocks bought at previous observation are sold, except those that meet the condition. The top list of the screen run at the moment of observation is bought to complete the portfolio.
Keep x% from top All stocks bought at previous observation are sold, except those with price higher than x% from the top of the last backtest period. The top list of the screen run at the moment of observation is bought to complete the portfolio.
Accumulate All stocks in the portfolio are kept. The top list of the screen run at the moment of observation are bought and added to the existing positions, or used to start a new position if the portfolio was incomplete.
Keep matching criteria excl. valuation A stock is kept if the non-valuation metric conditions of the screen still apply. The following 4 metric groups are considered valuation metrics:
  • Valuation - Intrinsic Value
  • Valuation - yield on Price
  • Valuation - yield on EV
  • Valuation - Assets

Early sell

Early sell setting is used to define profit taking or a stop loss. It defines the conditions under which stocks are sold during the last period. Only the daily open prices are used to decide a sell. If the stock is sold, the position is not taken by a new position until the new observation.

Keep full period No stocks are sold during the last period.
Sell at target Stocks are sold when the price target is met.
Sell at x% profit Stocks are sold when the price increased more than x% in the period. The backtester identifies if a stock's period-high breached your set sell percentage. If triggered, the exit is recorded at exactly the sell percentage.
Pyramid sell at a-b-c-d% profit If the price return withing the period reaches the next level of the pyramid, 25% of the position is sold at that price level.
Stop loss x% Stocks are sold when the price decreased more than x% in the period. The backtester identifies if a stock's period-low breached your set stop-loss percentage. If triggered, the exit is recorded at exactly the stop-loss price. When a stop-loss is triggered, the actual execution price may differ from your exact stop price due to market gaps, low liquidity, or rapid price movements. To make your backtest more realistic, you can define a Slippage % specifically for stop-loss orders. This percentage acts as an estimated penalty applied only when a position is closed via a stop-loss trigger.

Note: This tool is designed to evaluate the effectiveness of fundamental metrics over long horizons. It does not simulate intraday price gaps or slippage (e.g., a stock opening below your stop loss). Users who wish to model a more conservative outcome are encouraged to adjust their stop-loss percentages or factor a small margin of error into the final returns.

Position sizes

Defines the size of the stock positions. It is used to decide the size of the stock positions and what needs to be done if not enough stocks were found at the start of the period.

Equally weighted. Maximum positions. At any point in time, all positions in the portfolio have equal weight. It will take a position of total capital ÷ number of selected stocks. If the screen does not return enough stocks, the position of the stocks is increased to obtain full investment.
Equally weighted. Excess cash in bonds. At any point in time, all stock positions in the portfolio have equal weight. It will take a position of total capital ÷ Maximum number of stocks in the selected stocks. If the screen does not return enough stocks, the excess cash is used to buy 6 month US bonds.
Equally weighted. Excess cash 0%. At any point in time, all stock positions in the portfolio have equal weight. It will take a position of total capital ÷ Maximum number of stocks in the selected stocks. If the screen does not return enough stocks, the excess cash is considered to give no return.
Volatility weighted. Maximum positions. Volatility weighted will take larger positions in less volatile stocks, trying to make all positions equal risk. The relative position = 1 / min(0.05, max(0.005, Price.SD 60)). If the screen does not return enough stocks, the position of the stocks is increased to obtain full investment.
Volatility weighted. Excess cash in bonds. Volatility weighted will take larger positions in less volatile stocks, trying to make all positions equal risk. The relative position = 1 / min(0.05, max(0.005, Price.SD 60)). If the screen does not return enough stocks, the excess cash is used to buy 6 month US bonds.
Volatility weighted. Excess cash 0%. Volatility weighted will take larger positions in less volatile stocks, trying to make all positions equal risk. The relative position = 1 / min(0.05, max(0.005, Price.SD 60)). If the screen does not return enough stocks, the excess cash is considered to give no return.
Expectation weighted. Maximum positions. The position of a stock depends on the expected one year price return: The relative position = min(0.2, max(0.02, Price.expected return)). If the screen does not return enough stocks, the position of the stocks is increased to obtain full investment.
Expectation weighted. Excess cash in bonds. The position of a stock depends on the expected one year price return: The relative position = min(0.2, max(0.02, Price.expected return). If the screen does not return enough stocks, the excess cash is used to buy 6 month US bonds.
Expectation weighted. Excess cash 0%. The position of a stock depends on the expected one year price return: The relative position = min(0.2, max(0.02, Price.expected return). If the screen does not return enough stocks, the excess cash is considered to give no return.

Compare to

It is also possible to compare your backtest result to a list of quotes (comma separated list of symbols), typically indexes or ETFs. indexes are written without ^. A subset of the available indexes can be selected using the assistant button and can be found here. Example: use GSPC,STOXX,IWRD.L,AW01.FGI for comparison with S&P 500, Europe Stoxx 600, iShares MSCI World ETF and FTSE All World Index.

Backtest stats

Period return The comprehensive gain or loss experienced by an investment over a specific period of the backtest. This encompasses both the capital appreciation (price change) and dividends.
Total return The comprehensive gain or loss experienced by an investment over the total period of the backtest. This encompasses both the capital appreciation (price change) and dividends.
Yearly return Represents the average annual compounded return on an investment, accounting for both price change and dividends. It is expressed as a geometric mean of the period returns to accurately reflect the compounding effect.
Period SD Reliability: Reflects the variability or dispersion of returns among the different components (stocks) of a portfolio within a single period. A higher value indicates a wide variation in performance amongst the individual assets in that period, suggesting a diverse range of returns within the portfolio components.
Average Period SD Reliability: The mean of all the standard deviations from each period. This gives a sense of the general variability of stock returns across all the considered periods.
Portfolio SD Volatility: The standard deviation of returns across multiple periods, indicating the total risk or volatility of a portfolio over time. The Geometric Standard Deviation (GSD) is specifically used to measure the spread of yearly growth rates.
Sharpe ratio A metric that gauges risk-adjusted performance by dividing the excess return (return over the risk-free rate) by the total risk (portfolio's standard deviation). A higher Sharpe ratio is indicative of better performance on a risk-adjusted basis.
Sortino ratio Similar to the Sharpe ratio but only considers the downside or negative volatility. This differentiates between harmful volatility and total volatility. Higher values indicate better risk-adjusted performance, especially for those concerned with downside risk.
Top 12 Represents the cumulative return, considering both price appreciation and dividends, of the top 12 stocks selected based on specific screening criteria.
Bottom 12 Represents the cumulative return, considering both price appreciation and dividends, of the bottom 12 of selected stocks selected based on specific screening criteria.
Without outliers The total return after removing the extreme values (outliers) which can distort the average or general return. By excluding these values, one can get a better sense of the typical performance.
Monte Carlo variant 1, 2, 3, 4 Utilizes the Monte Carlo simulation technique, each variant representing a different random subset of stocks from the backtest results. These random subsets help gauge the potential variability and range of total returns due to different stock combinations, taking into account both price appreciation and dividends.