Tickback
Try free

How to use the backtester

Everything you need to build, test and compare stock strategies on the Nordic exchanges.

Getting started

Explore stocks, the screener and popular strategies without an account, and try one backtest a day. A free account gives you 50 backtests a day, saved strategies, a watchlist with email alerts, live tracking and access to target prices and reports. The count resets at midnight Oslo time.

Pick your language in the top bar. When you are signed in, the choice is saved to your account.

Your first backtest

  1. Open Backtest and choose a starting strategy. You can open the settings to change its rules.
  2. Press Run backtest. You can explore other pages while it runs; the status bar links back to your result when it is ready.
  3. Change a filter, run again and compare. When you like a strategy, press Save as favourite.

Building a strategy

A strategy is a set of filters and a ranking rule. On every rebalance day the backtester finds the stocks that pass all your filters, ranks them, and holds the top ones in equal weight until the next rebalance.

Period & money
Choose the start and end dates, the currency, your starting capital and the commission in basis points (10 bps = 0.1% of each trade), with a minimum fee per trade if your broker has one. Broker fills in the standard prices of common Nordic brokers for the currency. Tick Include slippage to also pay the bid-ask spread and market impact, which grows when you trade a large share of a stock's normal daily turnover.
Universe
Test on all stocks in one market (Oslo, Stockholm, Copenhagen or Helsinki), on all of them, or only on tickers you pick (tickers outside Oslo end in .ST, .CO or .HE). Minimum price, turnover and history remove stocks that are too small, too illiquid or too new to trade realistically. Leave a field blank to turn it off. The same rules define the benchmark.
Entry filters
Tick a filter to turn it on: trend (fast moving average above slow), price above a moving average, momentum, RSI, maximum volatility and minimum dividend yield. A stock must pass every filter you turn on.
Beta & fundamentals
Press Add filter to set a minimum and/or maximum for beta, P/E, P/B, EV/EBITDA, net debt/EBITDA, return on equity, profit margin or market cap. A stock without a value fails the filter. Fundamentals are available from around April 2023, so in earlier periods these filters exclude most stocks.
AI analysis

Open AI filters in the backtest builder or screener, turn on a rule, and choose a plain-language threshold. Use Custom limits for exact values.

Explore AI filters · Screener

An AI model reads every stock exchange announcement and quarterly and annual report on Oslo Børs and Nasdaq Helsinki and scores how positive it is for the share (−1 to 1) and how much risk it shows (1–10). Filter or rank on the average sentiment of the last 90 days, or the sentiment and risk of the latest report (up to 200 days old). An announcement counts from the day it was published, or the next day if it came after the close. Other markets have no scores yet: stocks without an analysed announcement fail an AI filter. The model may know what happened after older announcements, so early years can look better than they would have been. Three more compare the latest report with the previous one: the change in sentiment, the change in risk, and the previous report's risk. To find companies that were in trouble but where things are improving, filter on a previous risk of 7–10 and a risk that fell by 2 or more, and rank by the most improved sentiment.
Portfolio
Rank by decides which of the passing stocks you buy. You can combine up to five factors with weights, for example momentum and low P/E: each stock is scored from 0 to 100 on every factor, and the stocks with the highest weighted average are bought. Max positions decides how many you hold, and Rebalance how often the portfolio is rebuilt: daily, weekly, monthly, quarterly or semi-annually. More frequent rebalancing means more trades and higher costs.
My formulas
Under My formulas, combine factors into your own, for example momentum / volatility or rank(roe) - rank(pe), and filter or rank on the result. Formulas use + − × ÷ and powers, and the functions rank, zscore, abs, log, sqrt, min and max, calculated for each stock on each day. A strategy can have 3.
Position size, long or short
Position size holds the picks in equal weight, gives calmer stocks more (inverse volatility), or gives the best-ranked more. Long or short can also sell the worst-ranked stocks short, or hold half long and half short, paying a yearly borrowing cost on the shorts.
Stop loss
Sells a stock that falls a set share below its purchase price, checked every day. The money waits in cash until the next rebalance, or buys the next stock in the ranking.
Manage your exposure
Market timing holds fewer stocks when the market index is below its moving average, or when a macro series such as the policy rate, or one of your own series, is outside a range. The money taken out can stay in cash or go into an ETF such as a bond fund. Money not in stocks can also sit in the market index instead of cash.
My data
Signed in, import your own CSV files on the My data page: a factor (a value per stock and date) to filter and rank by, or a series (a value per date) to time the market with. Values are used from their date, like everything else.

Choosing another currency changes your returns through the exchange rate, but not which stocks are picked: signals always use each stock's own prices, in its trading currency (NOK, SEK, DKK or EUR).

Reading the results

Each result is compared with a benchmark: every stock in your universe held in equal weight, with no filters and no trading costs.

Total return
How much the capital grew over the whole period, including dividends and after costs.
CAGR
The average yearly return. Use it to compare periods of different length.
Sharpe
Return per unit of risk: the annual return divided by the volatility, without a risk-free rate. Higher is better.
Max drawdown
The largest fall from a peak to a later low. It shows how painful the worst period would have been.
Volatility
How much the value moves from day to day, annualised. Lower means a smoother ride.
Turnover / year
How many times a year the whole portfolio is traded. High turnover means high trading costs.

Below the numbers are the equity curve against the benchmark, the drawdown chart, the stocks held on the last day, the stocks held most often, and the trading costs paid. Your latest runs are listed under Recent runs so you can open them again.

Risk & factors adds Sortino, Calmar, beta and alpha against the benchmark, the information ratio and the worst drawdowns, and a factor regression that shows how much of the return comes from size, momentum and low-volatility exposure. Download saves the equity curve, the trades and the holdings as CSV, or the whole result as JSON, for a spreadsheet or Python.

Share makes a link anyone can open to see the result and try the strategy. Explain & improve asks the AI assistant to explain the result and suggest what to test next.

Check the data coverage note under the results. If a metric is missing for many stocks, a filter on it mostly excludes stocks for lack of data rather than on merit.

Testing robustness

A good backtest can be luck. Signed in, you can test a strategy further under the settings on the Backtest page; each run counts as one backtest per setting or start date.

Optimize
Tries up to 12 combinations of one or two settings – number of holdings, rebalancing, momentum lookback or position size – side by side, with each one's return in the first and second half of the period and the Deflated Sharpe Ratio of the best: the chance its edge is real, given how many were tried.
Walk-forward test
Picks the best combination on a training window of one to five years, trades it for the next three to twelve months, then moves forward and picks again. The chained test periods show what optimizing would have earned without knowing the future, next to the setting that turned out best.
Cross validation
Runs the strategy afresh from several start dates, each for the same number of years, and shows how often it beat the benchmark.
Improve with AI
Claude proposes a few one-change variants of your strategy and backtests them side by side, with both halves of the period.
Books
On the Favourites page, combine up to five strategies into one portfolio with weights, rebalanced monthly, quarterly or never, and see how much they move together.

How the robustness tools work →

Screener

The screener lists every stock in the market you pick, or in all of them, with price, returns, risk, beta and fundamentals. Click a column heading to sort, search by name or ticker, pick a sector, and add minimum and maximum filters on any column.

Set As of (blank = latest) to a past date to see the market as it looked then, using only data known that day. Press Backtest these filters to turn the screen into a strategy, or Download CSV to save the table.

Stocks marked Data warning had a suspicious price jump in the last year, often a split the data source hasn't adjusted for. Their returns and ratios may be wrong.

Tickback score

The Tickback score ranks every stock in its market from 0 to 100 every day, on three parts: quality (return on equity, profit margin and low net debt / EBITDA), value (low P/E, P/B and EV / EBITDA, and a high dividend yield) and momentum (the 12-month return skipping the last month, the distance above the 200-day average, and closeness to the 52-week high). Each part is the average of the stock's percentile ranks on its metrics among the stocks in the same market, 100 being the best; the total is the average of the three parts.

A part needs at least two of its metrics, and the total needs all three parts, so stocks without annual reports have no total. Like everything else, the score on a day uses only data known by that day's close, so you can rank and filter on it in your own backtests. In a strategy of selected tickers, it compares those stocks with each other.

The score is a tool for research, not a recommendation. Its history is as long as our annual-report data, a few years, so treat its track record with care.

Build with AI

On the Backtest page and in the Screener, press Build with AI and describe your idea in your own words. Claude, the AI assistant, turns it into settings, looks up the companies you name and lists the choices it made, so you can change them.

On the Backtest page it can also run the backtest, explain the result against the benchmark, and try a few variants if you ask. Each backtest it runs counts as one of yours for the day. In the Screener it checks how many stocks a screen finds before setting it.

Claude can make mistakes and doesn't give investment advice. Check the settings before you rely on a result, and press Explain & improve on a result to have it explained and get ideas for what to test next.

Signed in, Improve with AI under the Run button goes a step further: Claude reads your latest result, proposes a few changes with one idea each, and backtests them all next to your strategy. The table shows which ones did better, and whether in both halves of the period; Use loads one onto the form. It uses one message to Claude and one backtest per change.

Favourites

Press Save as favourite on the Backtest page to keep a strategy. Saving again under the same name overwrites it.

The Favourites page shows each strategy with its latest result. Run reruns it with the newest data (this counts as a backtest); you can also open it for editing, or delete it by clicking Delete twice.

Live strategies

Press Track live on the Backtest page or on a favourite, or Track these filters live in the screener, to follow a strategy with real prices from today. It picks its first portfolio at the latest close, holds it from the next trading day, and follows the same rules as the backtest.

Every weekday evening, after the new prices arrive, each live strategy adds the new trading days. The track record is saved as it happens and never recalculated, so later corrections to the data can't change it. Going live doesn't use your daily backtests; you can run 5 live strategies at a time.

Click a strategy on the Live page to see its portfolio and change it by hand. A change is made at the latest close and held from the next trading day, with trading costs. A stock you add is always held and takes one of the strategy's places; a stock you remove is never picked again, until you allow it again. Changes are listed with the strategy.

Tick Email me when it buys or sells under a strategy to get an email the evening it buys or sells, with the stocks to buy and sell and the portfolio after, so you can make the same trades on the next trading day. Every Friday you also get a summary of the week, unless you turn it off at the top of the page.

Stop tracking ends the tracking and keeps the track record; Delete removes it.

Watchlist

Press Watch on a stock's page, or add stocks on the Watchlist page in the account menu, to follow them with their price, returns and Tickback score. Up to 50 stocks.

Set a price under Alert above or Alert below to get an email the evening the stock closes past it; the alert is then cleared. Tick Reports to get an email when the company publishes a report or an important announcement (Oslo Børs and Nasdaq Helsinki so far). Every email has a link that turns the alerts off.

Tickback in Claude

Connect Tickback to Claude to ask about Nordic stocks, screen them, read company announcements and backtest your ideas in a conversation. In Claude, open Settings, then Connectors, choose Add custom connector and paste https://tickback.no/mcp. Sign in to Tickback and allow the connection.

Claude can then use Tickback's data, run backtests for you (they count against your backtests for the day) and see and change your watchlist. It can't change your account. See or disconnect the apps you've connected under Claude and AI apps in the account menu.

More about Tickback in Claude →

Data

Pick a ticker to see its price chart, daily prices, dividends and splits, beta against its market index (OSEBX, OMX Stockholm, OMX Copenhagen or OMX Helsinki) and annual figures. Prices are in the stock's own currency. The fundamentals table shows from which date each annual report is used in backtests. Yahoo's current key figures are shown for comparison only.

How the backtest works

  • No look-ahead: decisions use data up to the close of one day and are traded from the next day.
  • Figures from an annual report are used from 90 days after the fiscal year end, when the report has been published.
  • Returns include dividends and are adjusted for splits. Zero and negative prices are removed; large jumps are kept and counted under the result.
  • Commission is charged on every trade; slippage only when you turn it on.
  • Prices come from Yahoo Finance and are updated every weekday evening.

Read the full methodology →

Limits and caveats

  • Companies that were delisted are not in the data. This survivorship bias makes results look somewhat better than reality.
  • Prices go back about 10 years; fundamentals only to around 2023.
  • Taxes are not included.
  • Backtests are simulations on historical data, not investment advice. Past results don't guarantee future returns.

Feedback

Something doesn't work, or you have an idea? When signed in, press Feedback in the top bar. It goes straight to the developer.