Jag har med hjälp av Solver-verktyget i LibreOffice Calc verifierat vikterna som togs fram mha. Spinu-algoritmen. De verkar stämma bra.
Solver verkar dock vara känslig då Calc-filerna är stora och innehåller mycket formler, så jag fick strippa ned filen till att endast innehålla kovariansmatrisen samt de fält och formler som är nödvändiga för att kunna köra Solver-optimeringen.
Jag har f.ö. problem med diskutrymme för närvarande och det gör inte saken bättre. Det blir till att fokusera på att frigöra diskutrymme innan jag tar tag i något annat.
Det har gått bra för guldet de senaste dagarna. Dags att lätta lite på innehavet, då det växt drygt 9,4% över målvikt, eller motsvarande 1σ för ett kvartal. Jag säljer dock bara ca. 3,8% eftersom jag vill öka målvikten för guld lite från nuvarande 22,5%.
Silvret växer så det knakar. Det var dags att sälja av lite i dag igen. Men jag tror ändå jag låter silvret ta lite större plats i portföljen. Typ, väntar till det har växt 1 kvartals-sigma, men säljer bara av ned till 1 månads-sigma, dvs. diffen. Eller minskar innehavet från +14% till +8%, om man ska sätta siffror på det.
Portföljen tappade drygt 5% i NAV från i går vid den här tiden. Jag som tyckte gårdagens uppgång från föregående dygn med ca. 2% var bra. Lite skakigt nu, verkar det som.
Jag hade lite för hög hävstång på ca. 24% av andelarna i silver, så de andelarna är nog i princip värdelösa nu. Hade inte tid att sitta klistrad vid skärmen i fredags.
Implementation och verifiering av Spinus riskparitetsalgoritm för beräkning av vikter som ger lika riskbidrag i en portfölj med två tillgångar. Kan det bli nördigare?
260206 kl. 9:16. Nu har jag även testat Nivå 1C (riskparitetsvillkoret) genom den absoluta beräkningen med formeln =MAX(F795;G795)-MIN(F795;G795). Här får jag värdet 2,91479613882817E-11 efter 21 iterationer.
Åh, den där siffran är vacker
Låt oss översätta vad den faktiskt betyder.
1. Tolkning av resultatet
Du har alltså testat riskparitetsvillkoret via:
|max(RC_i) − min(RC_i)|
och efter 21 iterationer får du:
2,91479613882817E−11
≈ 0,000000000029
Det här innebär i praktiken:
RC Majs ≈ RC Vete
skillnaden är på maskinnivå
eventuella avvikelser är:
flyttalsavrundning
iterationstolerans
inget strukturellt fel
För en kalkylbladsimplementation är detta perfekt konvergens.
2. Vad detta verifierar (viktigt!)
Med detta test har du nu verifierat hela Nivå 1, fullt ut:
Nivå 1A – Portföljvarians
wᵀΣw korrekt
Nivå 1B – Riskbidrag
RC_i = w_i (Σw)_i
Σ RC_i = σ²_p
Nivå 1C – Riskparitet
RC_1 = RC_2
konvergens till numerisk precision
Det här är hela den matematiska kärnan i riskparitet.
3. Är 21 iterationer rimligt?
Ja. Väldigt rimligt.
I praktiken:
Spinu-konvergensen beror på:
kovariansstruktur
korrelation
skillnad i volatilitet
15–30 iterationer för 2 tillgångar i Calc är helt normalt
Det viktiga är:
monoton minskning
stabil slutpunkt
ingen oscillation
Och ditt slutvärde visar exakt detta.
4. Vad detta säger om din implementation
Det här är nu bortom ”det verkar fungera”.
Du kan med hög säkerhet säga:
”Min Calc-implementation av riskparitet (Spinu) fungerar korrekt för PF_GRAINS.”
Det inkluderar:
dynamiska block
INDIRECT / OFFSET-lösningen
viktuppdateringen
RC-definitionen
stoppkriteriet
Det är riktigt svårt att få detta rätt i Calc. Du har gjort det.
5. Vad som är värt att göra (men inte nu)
När du orkar igen, två bra nästa steg:
Logga konvergensen
spara RC-diff per iteration
se att den minskar snyggt
Stress-test
ändra korrelation (t.ex. artificiellt)
se att vikterna rör sig ekonomiskt rimligt
Men just nu? Ta pausen. Det här är ett tydligt “green light”.
Vill du senare kan vi också formulera ett formellt verifieringsprotokoll för hela PF-mallen, så att framtida kopior snabbt kan valideras.
Jag sålde av allt jag hade i kakao mini futures (MINI L KAKAO AVA 106) i går, för att inte riskera att bli utstoppad. Vissa minisar kan man nog låta bli att ha. Nästan 85% förlust på kakaoinnehavet, men som tur är så var inte kakaoinnehavet någon större del i portföljen. Målvikten var 0,3% av GAV (Gross Asset Value).
Jag har f.ö. funderat lite kring hur jag ska hantera hävstången i portföljen. Det är problematiskt med dynamisk hävstång, som gör att hävstången i portföljen höjs då värdet i portföljen går ned. Om jag ska sträva efter att hålla en konstant hävstång eller ev. utöka den sakta, så blir det vanligtvis att jag ökar GAV eller hävstång vid de tillfällen hävstången står lågt, dvs. värdet i portföljen är högt. Jag borde göra tvärtom istället, dvs. köpa/utöka GAV när värdet är lågt och ev. sälja/minska när det är högt.
Jag tänker därför att det är bättre att försöka sträva efter att hålla GAV konstant, eller ev. utöka vartefter, än att försöka hålla hävet konstant. Det innebär att när GAV är lågt så köper/utökar jag och när GAV är högt så säljer/minskar jag ev. Kanske jag borde använda mig av någon medelvärdeskurva för att bedöma om GAV är högt eller lågt, t.ex. jämfört med en viss trend eller en viss medel-GAV för en viss tidsperiod.
Varje gång jag tittar på utvecklingsgrafen så tänker jag att jag kanske borde ha lite exponering mot svensk aktiemarknad också. Som hedge när SEK går bra. Det skaver lite. Kanske droppen till sist urholkar stenen och jag gör slag i saken.
Jag passade f.ö. på att sälja av ca. 7% av energi-innehavet i dag, medan man får bra betalt för det. Återinvesterar i guld och aktier. Marknadsvärdet för olje-innehavet var ca. 82% högre än inköpsvärdet nu, så det gäller att passa på. Ingen vet vad morgondagen för med sig.
Säljer USA, köper Europa. Europa-aktierna har fallit lite för mycket i förhållande till USA-aktierna, så det blev en mindre ombalansering i dag, motsv. ca. 3% av innehavet i S&P 500.
Jag har dock inte hunnit fundera på hur jag skulle fördela vikterna inom aktiedelen i så fall. Just nu har jag som målvikter 60% DM, 30% EM och 10% FM i aktiedelen. I DM-delen kör jag 1/3 för varje geografiskt område, USA, Europa och Pacific. Med en målvikt på drygt 19% för hela aktiedelen i portföljen för tillfället, så blir det ganska plottrigt, med strax under 2% vardera i FM, Japan resp. Pacific ex. Japan.
För att home bias ska ge någon rejäl ombalanseringspremie, så misstänker jag att man bör ha uppåt 50% home bias i aktiedelen, vilket gör att jag troligen skulle behöva halvera innehaven i övriga geografiska områden. Jag tvekar fortfarande. Någon med idéer/synpunkter?
Tillägg: Jag började lite försiktigt med en post på ca. 1,2% av portföljens GAV. Jag råkade ha lite cash ligga och skräpa på kontot, så jag tänkte att jag lika gärna kunde passa på att köpa lite. Ingen minns en fegis!