Kvantitativ aktieanalys i R med BörsAPI

Kom igång med kvantitativ finans i R. Lär dig hämta historiska finansiella rapporter via API:et och göra statistiska lönsamhetsanalyser.

3 juli 20266 min läsning

R är ett av de mest populära programmeringsspråken för statistisk analys och datavetenskap. Inom finans används det flitigt för kvantitativ analys. Här visar vi hur du hämtar data från BörsAPI till RStudio och gör grundläggande lönsamhetsanalyser.

Steg 1: Installera och ladda paket

Vi kommer att använda paketen httr för att göra HTTP-anrop, jsonlite för att tolka JSON-responsen, samt tidyverse (som innehåller dplyr och ggplot2) för databehandling och visualisering.

install.packages("httr")
install.packages("jsonlite")
install.packages("tidyverse")

library(httr)
library(jsonlite)
library(tidyverse)

Steg 2: Skriv funktionen för att hämta finansiell data

Vi skapar en funktion i R som anropar BörsAPI för ett givet bolags ISIN-kod och returnerar en ren dataframe:

get_financial_reports <- function(isin) {
  api_key <- "fd_din_api_nyckel_här"
  url <- paste0("https://borsapi.se/api/v1/companies/", isin, "/reports?period_type=year")
  
  response <- GET(
    url,
    add_headers(
      "Authorization" = paste("Bearer", api_key),
      "Accept" = "application/json"
    )
  )
  
  if (status_code(response) == 200) {
    # Omvandla JSON till en lista i R och vidare till en dataframe (tibble)
    data <- fromJSON(content(response, "text", encoding = "UTF-8"))
    return(as_tibble(data))
  } else {
    stop(paste("Fel vid hämtning:", status_code(response), content(response, "text")))
  }
}

Steg 3: Analysera och visualisera vinstmarginaler

Nu kan vi hämta data för ett bolag (t.ex. Volvo Cars med ISIN SE0021628898) och visualisera hur deras rörelsemarginal och nettomarginal har utvecklats över åren:

# Hämta historik
volvo_data <- get_financial_reports("SE0021628898")

# Tvätta datan och beräkna marginaler
volvo_cleaned <- volvo_data %>%
  filter(!is.na(revenue) & !is.na(operating_income)) %>%
  mutate(
    ebit_margin = (operating_income / revenue) * 100,
    net_margin = (net_income / revenue) * 100
  ) %>%
  arrange(period)

# Visualisera med ggplot2
ggplot(volvo_cleaned, aes(x = period, group = 1)) +
  geom_line(aes(y = ebit_margin, color = "Rörelsemarginal (EBIT)"), size = 1.2) +
  geom_line(aes(y = net_margin, color = "Nettomarginal"), size = 1.2) +
  geom_point(aes(y = ebit_margin), size = 3) +
  geom_point(aes(y = net_margin), size = 3) +
  labs(
    title = "Volvo Cars - Marginalutveckling över tid",
    x = "Räkenskapsår",
    y = "Marginal (%)",
    color = "Nyckeltal"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")

Detta ger dig ett professionellt underlag för kvantitativ analys, där du enkelt kan applicera statistiska metoder, tidsserieprognoser eller kalkylera andra finansiella modeller i RStudio.

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.

    Kvantitativ aktieanalys i R med BörsAPI - BörsAPI.se