This article is only available in Swedish.

Bygg en Magic Formula-screener för svenska aktier

Lär dig hur du använder Joel Greenblatts klassiska Magic Formula-strategi och automatiserar din screening av svenska aktier med BörsAPI.

July 10, 20266 min läsning

Joel Greenblatts "Magic Formula" är en av de mest kända kvantitativa värderingsstrategierna i världen. Den syftar till att hitta billiga men kvalitativa bolag genom att ranka aktier baserat på två nyckeltal: Earnings Yield (vinstavkastning) och Return on Capital (avkastning på kapitalet).

De två pelarna i formeln

Formeln rankar bolag efter följande två nyckeltal och slår samman deras rankningspoäng för att hitta de mest köpvärda aktierna:

  • Earnings Yield (EBIT / EV): Rörelseresultat (EBIT) dividerat med Enterprise Value (EV). Detta visar hur mycket rörelsevinst du får per krona bolaget värderas till (inklusive nettoskuld).
  • Return on Capital (ROIC): Rörelseresultat (EBIT) dividerat med det arbetande kapitalet (sysselsatt kapital). Detta mäter hur effektivt bolaget genererar vinst på det investerade kapitalet.

Hämta data och beräkna med Python

Nedan hittar du ett färdigt Python-skript som hämtar bolag från BörsAPI, hämtar deras senaste helårsrapporter och beräknar nyckeltalen för att skapa en topplista.

import requests
import pandas as pd

API_KEY = "fd_din_api_nyckel_här"
BASE_URL = "https://borsapi.se/api/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Accept": "application/json"
}

def get_screener_data():
    # 1. Hämta de första 100 bolagen
    companies_url = f"{BASE_URL}/companies?limit=100"
    resp = requests.get(companies_url, headers=headers)
    if resp.status_code != 200:
        print("Kunde inte hämta bolag")
        return []
    
    companies = resp.json()
    
    screener_list = []
    for c in companies:
        isin = c["id"]
        # Hämta rapporter för helåret 2024
        report_url = f"{BASE_URL}/companies/{isin}/reports?period_type=year"
        r_resp = requests.get(report_url, headers=headers)
        if r_resp.status_code == 200:
            reports = r_resp.json()
            r_2024 = next((r for r in reports if r["period"] == "2024"), None)
            
            if r_2024 and r_2024.get("revenue") and r_2024.get("operating_income"):
                ebit = r_2024["operating_income"]
                assets = r_2024.get("total_assets")
                equity = r_2024.get("total_equity")
                liabilities = r_2024.get("total_liabilities", 0)
                
                # Antag ett fiktivt börsvärde för enkelhetens skull i detta exempel
                market_cap = 5000000000 # 5 miljarder SEK
                
                # EV = Market Cap + Skulder - Kassa (här förenklat med liabilities)
                ev = market_cap + liabilities
                
                # Beräkna nyckeltal
                earnings_yield = ebit / ev if ev > 0 else 0
                working_capital = assets - liabilities if assets and liabilities else 1
                roic = ebit / working_capital if working_capital > 0 else 0
                
                screener_list.append({
                    "name": c["name"],
                    "ticker": c["ticker"],
                    "earnings_yield": earnings_yield,
                    "roic": roic
                })
                
    return screener_list

data = get_screener_data()
df = pd.DataFrame(data)

# Rankning
df["ey_rank"] = df["earnings_yield"].rank(ascending=False)
df["roic_rank"] = df["roic"].rank(ascending=False)
df["total_rank"] = df["ey_rank"] + df["roic_rank"]

# Sortera fram de bästa bolagen (lägst total rank)
top_companies = df.sort_values(by="total_rank").head(10)
print(top_companies[["name", "ticker", "earnings_yield", "roic", "total_rank"]])

Kom igång med BörsAPI

För att använda dessa mallar och skript behöver du ett personligt konto och en API-nyckel. Det är helt kostnadsfritt under vår beta-period.

1. Skapa konto

Registrera dig på några sekunder via registreringssidan.

2. Generera API-nyckel

Gå till din Dashboard och klicka på "Generera API-nyckel".

3. Anslut i mallen

Ersätt placeholder-nyckeln i källkoden eller kalkylarket med din personliga nyckel.

    Bygg en Magic Formula-screener för svenska aktier - BörsAPI.se