Simulering av allvädersportfölj

Fyra timmars arbete inkl. ett antal iterationer med ChatGPT för att få fram minor gridlines för y-axeln i en plot med log-skala… Man kan bli trött för mindre. :unamused:

Före:

Efter:

2 gillningar

Jag labbar lite med att beräkna volatilitetsvärden för mina obligations-ETF:er. Jag tänkte jag skulle använda värdena för att sätta en viktad snittvolatilitet för obligationsinstrumenten i min portfölj.

Jag har dock lite bryderier med hur jag ska göra med ett par mini futures från Avanza Markets. Det gäller instrumenten MINI L US30YTBOND AVA 32 (ISIN GB00BSK0X514) samt MINI L BUND AVA 16 (ISIN GB00BNV2DF11). De finns inte på Yahoo Finance, så enda sättet är kanske att försöka lista ut hur man kommer åt data från Avanza.

Jag tänkte jag skulle ta fram volatilitet baserat på långa tidsserier för några vanliga tillgångar för allvädersportföljer. Den längsta tidsserien jag kunde hitta för MSCI World startade 1999. Jag skapade några tidsserier för rullande årsvolatilitet, för att se hur årsvolatiliteten ändrar sig på kort, medellång och lång sikt, i det här fallet 1, 3 och 5 år.

Tyvärr snöade jag in på detaljer i LibreOffice Calc, där jag stångades med en del tillkortakommanden då det gäller att presentera grafer som jag vill ha dem. Det blir nog till att återgå till Python igen, eller ev. börja sätta mig in i R, som tydligen ska vara bra v.g. analys, tidsserier, statistik, grafer etc. :nerd_face:

Tillägg: Jag ser redan nu rena fel i diagrammet ovan. Kurvorna för de rullande årsvolatiliteterna startar inte där de borde… Tillbaka till ritbordet, imorgon. :yawning_face:

Tillägg 2: Så där, nu är diagrammet rättat (nedan) så att kurvorna för de rullande årsvolatiliteterna börjar på rätt ställe. Varje ruta i x-led motsvarar ett år och det första året är 1999. Det är här jag inte får kalkylprogrammet att visa år som jag vill på x-axeln.

Årsvolatilitetens snitt över hela perioden är 14,51%. Månadsvolatilitetens snitt över hela perioden är 4,45%. Volatiliteten är beräknad på månadsdata. En beräkning på dagliga prisrörelser ger förmodligen lite andra siffror och mera precisa mått, men jag kom aldrig så långt i går.

En slutsats man kan dra är bl.a. att volatiliteten varierar kraftigt i olika perioder.

Tillägg 3: Skam den som ger sig. Det måste ju bara gå att få till en korrekt tidslinje. Det lyckades till sist.

Tillägg 4: Jag testade även med att använda dagliga prisrörelser istället för prisrörelser baserat på frekvensen 1 månad. Det ger mer exakta volatilitetstal. Istället för 15,41% blev årsvolatiliteten beräknad på hela perioden något högre: 16,18%. Den dagliga standardavvikelsen (volatiliteten) för hela perioden är 1,00% (0,010017769399726). :nerd_face:

Tillägg 5: Jag kollar hur det matchar siffrorna från MSCI. 14,90% för en 10-årsperiod. Då är det beräknat på månadsdata. Något lägre än de 15,41% jag fick för hela perioden, baserat på månadsdata. Jag antar det beror på vilken 10-årsperiod man väljer. Oklart exakt vilken 10-årsperiod MSCI valt, men under faktarutan står det “Data as of Nov. 28, 2025”, så man får väl anta att det är baserat på den senaste 10-årsperioden. Liksom att värdena för 5 YR och 3 YR också gäller de senaste åren.

Tillägg 6: Nedan har jag lagt till 10-årskurvan i diagrammet med månadsavkastningar, för jämförelse med siffrorna från MSCI. Jag har även bytt funktion i LibreOffice Calc, från STEDVP till STDEV. Det gör att siffrorna skiljer något från föregående resultat. För hela perioden är den annualiserade volatiliteten 15,44% istället för tidigare 15,41%. För 10-årskurvan är det senaste värdet 14,77%. Ganska nära siffran 14,90% från MSCI. Varför det skiljer någon tiondels procent vet jag inte.

Månadsvolatiliteten blev 4,46% istället för 4,45% då jag uppdaterade från STDEVP till STDEV.

1 gillning

Hej Handlarn!

Handelsbankens kursdata verkar ha försvunnit eller flyttat. Jag skulle gärna ha lång historik för Captor Iris Bond, som du verkar ha. Skulle du kunna tänka dig att dela med den till mig på något sätt?

Data från 2017 finns kvar. Du kan själv ställa in årtal och ladda ner i Excel-format härifrån: NAV | Handelsbanken

@Handlarn: Avanza har för övrigt data sedan 29 maj 2017 då fonden enligt Captor skapades så startdatum är bara något misstag i Avanzas system.

2 gillningar

Hej @slow!

Jag hittade till sist hur man får ut dagliga kursdata för fonderna från Handelsbankens sida. Det är lite krångligt att hitta rätt, om man inte har en direktlänk, som den @Erik040 bifogar ovan, men för Captor Iris A går du först till Fondlistan och söker på captor iris bond a.

Därefter går du vidare till länken “Läs mer om fonden”. Då får du upp sidan nedan.

I det diagrammet följer du länken till “Historiska NAV-kurser”.

Jag ser nu att kursdatagrafen faktiskt sträcker sig från 2017-05-29, dock hittar jag bara veckodata. Har du sett någon möjligthet att få ut dagliga kursdata från Avanza för hela perioden?

Jag har lyckats dra kursdata från Avanza via deras API, men tyvärr kan man bara få daglig data upp till 1 år, annars är det månadsdata man får ut:

https://www.avanza.se/_api/fund-guide/chart/[fondkod]/infinity

Fondkoden kan fås genom att gå in på fonden och titta på URL:en.

Andra tidsintervall kan man få genom att byta “infinity” mot “five_years”, “three_years”, “one_year”, “this_year”, “three_months” eller “one_month”. Data hämtas på dagligt intervall upp till 1 år, veckovis upp till 5 år, månadsvis vid infinity.

1 gillning

Tack, det löste sig för mig med Erik040s länk! Claude fixade smidigt så att jag får hem dagliga kurser baserat på ISIN för de fonder som finns där, för verktyget jag använder.

3 gillningar

Med denna endpoint så kan man få ut dagligt data i 5 års-intervaller och så får man klippa ihop serierna.

https://www.avanza.se/_api/price-chart/stock/{symbol}?from={startdate:yyyy-MM-dd}&to={enddate:yyyy-MM-dd}&resolution=day

3 gillningar

Tack för era inspel! Jag har i dagarna börjat labba lite med att hämta historiska data från Avanza mha Python. Det är främst för olika mini futures som jag behöver dessa data, då jag inte kan hitta adekvata data för dem någon annanstans. Nedan exempelvis en URL för en VIX-mini future.

https://www.avanza.se/_api/price-chart/marketmaker/2259287?timePeriod=this_year

1 gillning