Metode for backtesting
Nøyaktig hva backtesteren gjør, så du kan vurdere hvor mye du kan stole på et resultat. Alle backtester på nettstedet, i appen og i Claude bruker den samme motoren og de samme reglene.
Data
- Daglige kurser, utbytter og splitter for alle aksjer på Oslo Børs, Nasdaq Stockholm, Nasdaq Copenhagen og Nasdaq Helsinki, omtrent 12 år tilbake, fra Yahoo Finance. Oppdateres hver hverdagskveld.
- Avkastningen bruker utbyttejusterte kurser, så utbytter reinvesteres. En strategi kan kjøres i NOK, SEK, DKK, EUR eller USD: avkastningen regnes om med hver dags valutakurs.
- Tall fra årsrapporter (resultat, egenkapital, EBITDA, gjeld, antall aksjer) fra Yahoo Finance, som bare går tilbake til omkring 2023.
- Renter fra Norges Bank og inflasjon fra SSB, til markedstiming.
- AI-vurderinger av selskapsmeldinger og rapporter, fra børsenes meldingstjenester.
Ingen fremtidskunnskap
En backtest kan bare bruke det en investor kunne ha visst den dagen. Hver regel nedenfor sørger for det.
- Beslutninger bruker data til og med sluttkursen på dag t og handles fra dag t+1, så et signal tjener aldri avkastningen fra dagen det ble målt.
- Tall fra årsrapporter teller fra 90 dager etter regnskapsårets slutt, når rapporten er publisert, og utløper etter 550 dager, så et selskap som slutter å rapportere, faller ut.
- En børsmelding teller fra dagen den ble publisert, eller neste handelsdag hvis den kom etter stengning kl. 16.20.
- Makrotall dateres når de ble publisert: inflasjonen for en måned fra den 10. i måneden etter.
- Valutakurser fylles aldri inn fra senere dager.
- Kursvasken fjerner bare null- og negative kurser. Store hopp beholdes og telles opp under resultatet: en senere kurs brukes aldri til å rette en tidligere, for det ville også vært fremtidskunnskap.
Handel og kostnader
- Kurtasje belastes i basispunkter på hvert kjøp og salg, med valgfri minstekurtasje per handel. Forhåndsvalgene følger prislistene til nordiske meglere.
- Slippage, når det er slått på, er halve kjøp-salg-spreaden pluss et kvadratrotledd for markedspåvirkning: daglig volatilitet × √(handelsstørrelse ÷ gjennomsnittlig daglig omsetning). Å handle en større del av aksjens normale omsetning koster mer, opptil 20 % av handelen. Volatilitet og omsetning er fra dagen før.
- Shortposisjoner betaler en lånekostnad på verdien hver dag, 2 % i året om du ikke velger noe annet.
- Mellom rebalanseringene følger beholdningen kursene og handles ikke. En ordre i en aksje uten kurs den dagen venter til aksjen handles.
- Alle kostnader vises under resultatet, fordelt på kurtasje, slippage og lån.
Referanseindeks
Hvert resultat sammenlignes med alle aksjene i sitt eget utvalg – de som består kurs-, omsetnings- og historikkfiltrene hver dag – likevektet og uten kostnader. Det svarer på spørsmålet: tilførte filtrene og rangeringen noe utover å bare eie markedet du valgte?
Nøkkeltall
Nøkkeltallene bruker daglig avkastning med 252 handelsdager i året og ingen risikofri rente.
- Sharpe
- Gjennomsnittlig årlig avkastning delt på årlig volatilitet.
- Sortino
- Som Sharpe, men delt på nedsideavviket: bare tapsdager teller som risiko.
- Calmar
- CAGR delt på største fall: årlig avkastning per enhet av det verste fallet.
- Beta og alfa mot referanseindeksen
- Beta er hvor mye strategien beveger seg når referanseindeksen beveger seg 1 %. Alfa er den årlige avkastningen som er igjen etter beta × referanseindeksens avkastning.
- Tracking error og informasjonsrate
- Tracking error er den årlige volatiliteten til avkastningen utover referanseindeksen. Informasjonsraten er denne meravkastningen per år delt på tracking error: over 0,5 er bra og sjeldent.
- Største fall
- De dypeste fallene fra en topp, med datoene for toppen, bunnen og når det var hentet inn, og hvor mange handelsdager det tok å komme tilbake.
Faktorregresjon
En strategi kan slå referanseindeksen bare ved å eie flere små selskaper eller nylige vinnere enn referanseindeksen. Faktorregresjonen skiller det fra reell dyktighet (alfa). Den forklarer strategiens ukentlige avkastning med fire faktorer bygget fra det samme utvalget som hver backtest bruker:
- Marked
- Referanseindeksens avkastning.
- Størrelse (små minus store)
- De 30 % av aksjene med lavest omsetning minus de 30 % med høyest. Omsetningen står i stedet for markedsverdi, som krever antall aksjer, og det går bare tilbake til omkring 2023.
- Momentum (12-1 måneder)
- De 30 % med høyest avkastning det siste året, uten den siste måneden, minus de 30 % med lavest.
- Lav volatilitet
- De 30 % med lavest 60-dagers volatilitet minus de 30 % med høyest.
Hver faktor bygges på nytt første handelsdag hver måned ut fra sluttkursen den dagen, holdes likevektet fra dagen etter og trenger minst fem aksjer på hver side. Ukentlig avkastning brukes fordi mange små nordiske selskaper ikke handles hver dag, noe som ville trukket daglige estimater mot null. T-verdiene bruker Newey-West-standardfeil med fire lagg, som tar høyde for avkastning som henger sammen fra uke til uke. Regresjonen trenger et år med uker.
Les det slik: en eksponering på 0,5 mot størrelse betyr et halvt veddemål på små selskaper. Faktoralfaen er den årlige avkastningen ingen av faktorene forklarer. Med en t-verdi under 2 kan den ikke skilles fra null, uansett hvor stor den ser ut. Verdi- og kvalitetsfaktorer kommer når dataene fra årsrapportene dekker nok år.
Avkastningen trekkes ikke fra en risikofri rente. Med beta b og risikofri rente rf er alfa overvurdert med omtrent rf × (1 − b) i året.
Test av robusthet
Én god backtest kan være flaks, og å prøve mange varianter og beholde den beste er en sikker måte å finne flaks på. Disse verktøyene viser om et resultat holder:
- Rullerende perioder: hvor ofte strategien slo referanseindeksen over alle 1- og 3-årsvinduer.
- Kryssvalidering: den samme strategien startet på mange datoer, der hver kjøring velger sine egne aksjer fra kontanter, med spredningen i CAGR og Sharpe.
- Optimalisering og Forbedre med AI: hver variant viser CAGR for første og andre halvdel av perioden. En variant som bare skinner i én halvdel, hadde trolig flaks.
- Walk-forward-test: optimaliseringens beste innstilling i et rullerende treningsvindu, handlet i månedene etter, og så valgt på nytt. Satt sammen viser testperiodene hva optimaliseringen ville tjent uten fasit i etterkant, ved siden av innstillingen som viste seg å være best. Hver innstilling backtestes én gang over hele perioden og deles opp i vinduer, så å bytte innstilling mellom testene koster ikke noe ekstra.
- Deflatert Sharpe-rate (Bailey og López de Prado): sjansen for at den beste Sharpe blant innstillingene som er prøvd, er et ekte fortrinn. Den hever listen fra null til den Sharpe den beste av så mange innstillinger ville nådd ved flaks, og tar hensyn til testens lengde, skjevhet og tykke haler. Over 95 % er overbevisende. Den kjenner bare innstillingene i den kjøringen, ikke de andre ideene du prøvde først.
- Livestrategier: en historikk fra dagen du begynner å følge en strategi, med ekte kurser, som aldri regnes om.
Eksport til Python eller regneark
Trykk Last ned på et resultat for å lagre verdiutviklingen, alle handler og beholdningen som CSV-filer, eller hele resultatet som JSON. Verdiene er rå: avkastning som desimaltall og beløp i strategiens valuta.
import pandas as pd
equity = pd.read_csv("tickback-…-equity.csv", parse_dates=["date"], index_col="date")
returns = equity["strategy"].pct_change().dropna()
print(returns.resample("YE").apply(lambda r: (1 + r).prod() - 1))
Kjente begrensninger
- Overlevelsesskjevhet: selskaper som er tatt av børs, etter konkurs eller oppkjøp, er ikke med i dataene. Resultatene ser bedre ut enn virkeligheten, mest for små selskaper og strategier som kjøper tapere. Å legge til avnoterte selskaper er neste steg for dataene.
- Tall fra årsrapporter går bare tilbake til omkring 2023, så verdi- og kvalitetsstrategier har kort historikk.
- AI-modellen kan vite hva som skjedde etter eldre meldinger, så AI-strategier kan se bedre ut i de første årene enn de ville ha vært.
- Yahoo Finance har av og til feil, som splitter som ikke er justert. Store hopp telles opp under hvert resultat.
- Handler skjer til sluttkurs: det finnes ingen data gjennom dagen, og skatt er ikke tatt med.
Slik kontrolleres motoren
Motoren ble gjennomgått i september 2026, og alle feil som ble funnet, er rettet. En automatisk testsamling kjøres ved hver endring. Den sammenligner simuleringen med uavhengige regnskap for aksjer og kontanter, sjekker at nyere data aldri endrer et tidligere resultat, og sjekker kostnader, shortsalg, stop-loss og valutaomregning på små markeder med kjente svar.