Geldnerd.nl

Blog over (financieel) bewust leven

Tag: koers (page 1 of 2)

Valutakoersen automatisch bijwerken (2)

Vorig jaar juni schreef ik hoe ik in mijn beleggingsspreadsheet automatisch de valutakoersen bijwerk met behulp van een API. Dat werkt al ruim een jaar probleemloos. Maar afgelopen weekend kreeg ik een foutmelding toen ik mijn wekelijkse beleggingsrapportage verwerkte. Er was iets veranderd in de API.

Inmiddels moet je een abonnement nemen om de API te kunnen gebruiken. Voor kleine gebruikers zoals ik is dat gelukkig gratis. Ik heb me dus als gebruiker geregistreerd, want de functie is erg handig. Maar er zijn ook wijzigingen in de manier waarop je de API moet aanroepen. Daar moest ik dus mijn macro voor aanpassen.

Mijn functie heet GetExchangeRate. Als variabelen krijgt die mee een datum en een valuta-code. Daarmee haalt deze functie bij de API de valutakoers op van de gevraagde valuta op de gevraagde datum (in heden of verleden, uiteraard), tegen de standaard-valuta die ik in mijn spreadsheet heb ingesteld (in mijn geval de Euro). Onderstaand vind je de actuele code van deze macro:

Function GetExchangeRate(Datum As Date, toCurr As String) As Double

    Dim TempDate As String
    Dim qurl As String
    Dim TempOutcome As String
    Dim fromCurr As String
    
    TempDate = CStr(Format(Datum, "yyyy-MM-DD"))
    fromCurr = "EUR"
    qurl = "http://data.fixer.io/" & TempDate & "&access_key=jouweigenkey&base=" & fromCurr & "&symbols=" & toCurr
    
    TempOutcome = Left(Right(Application.WorksheetFunction.WebService(qurl), 10), 8)
    
    If Left(TempOutcome, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 7) & "0"
    End If
    
    If Mid(TempOutcome, 2, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 6) & "00"
    End If
    
    If Mid(TempOutcome, 3, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 5) & "000"
    End If
    
    If Mid(TempOutcome, 4, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 4) & "0000"
    End If
    
    If Mid(TempOutcome, 5, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 3) & "00000"
    End If
    
    If Mid(TempOutcome, 6, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 2) & "000000"
    End If
    
    If Mid(TempOutcome, 7, 1) = ":" Then
        TempOutcome = Right(TempOutcome, 1) & "0000000"
    End If
    
    GetExchangeRate = CDbl(TempOutcome / 1000000)
    
End Function

De bovenstaande wijzigingen zijn nog niet doorgevoerd in de versie die je op mijn Downloads-pagina kunt downloaden!

Heb jij wel eens te maken met aanpassingen in jouw spreadsheets?

error

Valutaschommelingen

Toen Geldnerd en Vriendin verhuisden naar het Verre Warme Land, kregen we te maken met de lokale valuta aldaar. Die was met een vaste wisselkoers gekoppeld aan de Amerikaanse Dollar. Vriendin kreeg in Nederland in Euro’s betaald, en ik in het Verre Warme Land in de lokale valuta. Dat maakte ons huishoudboekje afhankelijk van koersschommelingen, daar heb ik wel eens over geschreven. We hebben in die 2,5 jaar de waarde van € 1,00 zien fluctueren tussen US$ 1,05 en US$ 1,38.

 

Ook tegenwoordig heb ik nog last van de bewegingen van de dollarkoers. Ik houd de waarde van mijn beleggingen (en van mijn vermogen) bij in Euro’s. Maar een deel van mijn beleggingsfondsen is genoteerd in Amerikaanse Dollars. Soms zit het mee, en soms zit het tegen. De afgelopen periode zat het niet mee. De meeste beurzen stegen naar recordhoogte, maar dat zie ik niet terug in mijn portefeuille. Tenminste niet als ik naar de Eurootjes kijk.

Op 1 januari 2017 was € 1,00 in US$ 1,0521 waard. Op dit moment is dat US$ 1,1401. Dat is een stijging van 8,4%, en mijn beleggingen worden dus evenredig minder waard. In onderstaande tabel heb ik de consequenties hiervan in beeld gebracht. Ik gebruik hiervoor de dollarbeleggingen die ik op 1 januari 2017 ook al had:

Omschrijving 01-01-2017 08-07-2017 Delta
Dollarbeleggingen in USD  14.569,78  15.458,09  +6,1%
Dollarkoers EUR 1,00 = USD  1,0521 1,1401
Dollarbeleggingen in EUR  13.848,28  13.558,54 -2,1%

Dat had ook anders kunnen zijn. Vergelijk het maar eens met de verschuiving van US$ 1,38 naar US$ 1,05 die we in het Verre Warme Land hebben meegemaakt.

Omschrijving 01-01-2017 08-07-2017 Delta
Dollarbeleggingen in USD  14.569,78 15.458,09 +6,1%
Als Dollarkoers zou zijn EUR 1,00 = USD  1,3800 1,0500
Dollarbeleggingen in EUR 10.557,81 14.721,99 +39,4%

Hoe gevoelig is jouw portefeuille voor valutaschommelingen?

error

Valutakoersen automatisch bijwerken

Update: In juni 2018 is de API aangepast. En mijn macro dus ook. De nieuwe versie vind je in dit bericht.

Geldnerd is eigenlijk heel lui. Maar werkt soms ook heel hard om die luiheid naar nieuwe hoogten te doen stijgen. Zo ook afgelopen week. Jullie kennen mijn voorliefde voor spreadsheets. Alles automatisch, met één druk op de knop. En daar ga ik steeds een stukje verder in.

Bij de eerste versie van mijn beleggingsspreadsheet moest ik elke transactie handmatig invoeren. Inmiddels experimenteer ik met een versie waarin ik gewoon de geldtransacties en beleggingstransacties importeer. Die kan ik downloaden bij mijn broker. De macro’s zijn nog niet 100% perfect, maar de meeste problemen zijn nu wel opgelost.

Daar zat nog wel één handmatig dingetje bij waar ik mij aan stoorde. Niet alle fondsen waar ik in handel zijn genoteerd in Euro’s. Er zijn er ook die in Amerikaanse dollars genoteerd zijn. Of nog in andere valuta. En omdat ik mijn beleggingen in Euro’s bijhoud, moest ik dan bij iedere transactie de actuele wisselkoers invullen. En die moest ik opzoeken. Gewoon, handmatig. Op een website zoals deze.

Tsja, en dat kan natuurlijk niet. Dat moet handiger. Automatisch. Het heeft me een uurtje of vier gekost, maar het is gelukt. Ik heb gezocht naar een website die via een API benaderbaar is. Een API is een Application Programmable Interface, oftewel een soort ‘stekkerdoos’ op een website die je door een ander programma (bijvoorbeeld mijn spreadsheet) kunt laten benaderen. Die zijn er verschillende. Maar ik zocht (uiteraard) naar een gratis en liefst open-source variant. Ik vond deze, fixer.io. Die verstrekt de gegevens in JSON format (JavaScript Object Notation), een relatief eenvoudige methode voor gegevensuitwisseling.

Dat is handig. Als je bijvoorbeeld de code

http://api.fixer.io/2017-05-12?symbols=USD

naar de website stuurt, krijg je de volgende respons:

{"base":"EUR","date":"2017-05-12","rates":{"USD":1.0876}}

In gewone mensentaal: op vrijdag 12 mei 2017 was de wisselkoers van € 1,00 in Amerikaanse dollars USD 1,0876. Ik heb eerst nog geprobeerd om die respons keurig in te lezen als JavaScript, maar dat werd me al gauw te ingewikkeld. Ik wil daar ook geen extra tooltjes of zo voor installeren, het moet gewoon werken in ‘standaard’ Excel. Dus heb ik besloten om het antwoord van de API gewoon als String in te lezen, en de koers eruit te ‘knippen’. In onderstaande code doe ik dat voor de duidelijkheid nog even in drie stappen, maar je kunt het ook in één stap doen.

Function GetExchangeRate(Datum As Date, toCurr As String) As Double

Dim TempDate As String
Dim qurl As String
Dim TempString As String
Dim TempString2 As String
Dim TempString3 As String

TempDate = CStr(Format(Datum, "yyyy-MM-DD"))
qurl = "http://api.fixer.io/" & TempDate & "?symbols=" & toCurr

TempString = Application.WorksheetFunction.WebService(qurl)
TempString2 = Right(TempString, 8)
TempString3 = Left(TempString2, 6)

GetExchangeRate = CDbl(TempString3 / 10000)

End Function

En dat werkt. Nu hoef ik niet meer handmatig naar valutakoersen te zoeken. Voor de “toCurr” kun je elke valuta gebruiken die Fixer accepteert. Mijn nerdhart is weer blij, ook al weet ik zelf ook wel dat ik uren heb besteed aan iets wat mij nog geen minuut per transactie kostte…

Heb jij nog mooie functies in elkaar geknutseld?

error

De beleggingsspreadsheet (3) – Analyses

Een tijdje geleden schreef ik over mijn verherbouwde beleggingsspreadsheet, en over de statistieken die ik voor mijn portefeuille en fondsen bereken. In de sheet heb ik ook een aantal analyses ingebouwd. Die analyses zie je vooral terug in de kleur van een aantal velden. Dat geeft mij een idee van de ‘stemming’ in mijn portefeuille en geeft mij ook verkoopsignalen.

201511BeleggenPivot3-Blur

Zo vergelijk ik de huidige koers van mijn fondsen automatisch met het 25-daags gemiddelde, het 50-daags gemiddelde en het 200-daags gemiddelde. Als de huidige koers boven respectievelijk beneden die gemiddeldes ligt dan zegt dat volgens mij iets over ‘de trend’. Is het fonds ‘happy’ en zit het in een positieve ‘flow’, zullen we maar zeggen. Vooral als een fonds beneden het 200-daags gemiddelde zakt moet ik op gaan passen.

Ook kijk ik naar de Stop/Loss (S/L). Dat zegt mij hoever een aandeel onder z’n hoogste koers zit (sinds het moment dat ik gekocht heb). Is de S/L nul, dan is de huidige koers de hoogste, hoera! Maar als de S/L onder de -10% zakt moet ik op gaan passen. Dan is ‘de trend’ voor dit fonds misschien wel omgekeerd, van een structureel stijgende lijn naar een dalende lijn. Zeker een combinatie met het 200-daags gemiddelde is voor mij een signaal om verkoop te overwegen.

Veel grote beleggers gebruiken dit soort analyses om ‘het systeem’ automatisch aankoop- en verkooporders uit te laten voeren op de beurs. Zover ga ik niet. Kopen of verkopen blijft altijd mijn eigen beslissing. Ik houd ook altijd goed bij wat de beurzen als geheel doen, wat de stemming van ‘de markt’ is. Maar mijn ingebouwde analyses helpen me wel om te kijken welke fondsen in mijn portefeuille wat extra aandacht nodig hebben. Dat is nuttig, zeker toen mijn portefeuille wat groter werd en meer verschillende fondsen bevatte.

Welke analyses gebruik jij om je beleggingen te volgen?

error

De beleggingsspreadsheet (2) – Indicatoren

Een tijdje geleden schreef ik over mijn verherbouwde beleggingsspreadsheet. Verschillende mensen hebben me gevraagd om wat meer toelichting te geven op de informatie over mijn portefeuille en fondsen. Dat doe ik uiteraard graag!

201511BeleggenPivot3-Blur

Het scherm bestaat eigenlijk uit twee delen. Het bovenste deel geeft me informatie over de portefeuille als geheel. Het onderste deel geeft statistieken per fonds. Het gaat dan alleen om fondsen die ik op dit moment in mijn portefeuille heb.

Bovenin vind je ook knoppen om de rapportage te vernieuwen en te zorgen dat alle velden het juiste format hebben. Die heb ik alleen nodig als er iets mis gaat, want de rapportage wordt automatisch bijgewerkt als ik mijn wekelijkse aandelenrapportage importeer. De slogan ‘Van winst nemen is nog nooit iemand arm geworden’ heb ik ooit ergens gelezen. Het is een reminder die ik af en toe nodig heb: winst wordt pas winst als ik de aandelen ook echt verkoop en het geld op mijn rekening heb staan. Zoals ik recent gedaan heb.

Bovenin zie ik verder de datum waarop de meest recente rapportage verwerkt is. En voor de portefeuille als geheel zie ik de volgende statistieken

  • Waarde EUR – de actuele totale waarde van mijn portefeuille in Euro’s
  • Saldo EUR – het actuele saldo op mijn Euro-beleggingsrekening
  • Saldo USD – het actuele saldo op mijn Dollar-beleggingsrekening
  • Verdiend Totaal
  • Verdiend YTD (Year-to-Date, dus sinds 1 januari van dit jaar)
  • Since Last – de procentuele verandering van de portefeuille ten opzichte van de vorige rapportage
  • ROI Total en YTD – de Return on Investment
  • XIRR Total en YTD – de Interne Rentabiliteit. SpaarOlifantje heeft hier ooit een goed stukje over geschreven.
  • Realised Total en YTD – de ‘Realised Gains’, de gerealiseerde, geïncasseerde winst of verlies.
  • Unrealised Total en YTD – de ‘Unrealised Gains’, de winst die of het verlies dat ik nog niet geïncasseerd heb, die ik zou hebben als ik mijn hele portefeuille nu zou verkopen.
  • Delta Jaar – het bedrag dat ik dit jaar aan mijn beleggingen heb toegevoegd of onttrokken

En per fonds zie ik de volgende statistieken:

  • Position – het aantal aandelen wat ik in portefeuille heb van dat fonds
  • Waarde – de totale waarde van de aandelen op dit moment, in Euro
  • Realised – de totale ‘Realised Gains’ voor dit fonds, de gerealiseerde, geïncasseerde winst of verlies.
  • Unrealised – de totale ‘Unrealised Gains’, de winst die of het verlies dat ik nog niet geïncasseerd heb, die ik zou hebben als ik dit fonds nu zou verkopen.
  • Koers – de koers van de aandelen op dit moment, in de fondsvaluta
  • Hoogste – de hoogste koers van het fonds sinds ik het gekocht heb
  • Laagste – de laagste koers van het fonds sinds ik het gekocht heb
  • S/L – de Stop/Loss, door mij gedefinieerd als: hoe ver beneden de hoogste koers staat de koers nu? Is dus 0 als de huidige koers de hoogste is (maar dat is op dit moment bij geen enkel fonds het geval…).
  • AVG200 – het 200-daags voortschrijdend gemiddelde van de koers van dit fonds. Dit is een belangrijke indicator voor technische analyses, waarover in een volgende post meer.
  • Since Last – de procentuele verandering van het fonds ten opzichte van de vorige rapportage
  • ROI Total en YTD – de Return on Investment.
  • XIRR Total en YTD – de Interne Rentabiliteit.
  • Dagen – het aantal dagen dat ik het fonds in de portefeuille heb.

Ik heb ook een aantal analyses ingebouwd in de sheet. Maar daarover meer in een volgende blogpost.

Welke indicatoren gebruik jij om je beleggingen te volgen?

error

Achtbaanritje op de beurs

De afgelopen dagen voelde ik het al een beetje aankomen. Het was een dramatische week op de aandelenbeurzen. En toen ik vanochtend mijn wekelijkse beleggingsrapportage verwerkte werd het bevestigd. Het rendement op mijn aandelenportefeuille voor 2015 is nu 2,9%. 4,4% gedaald in een week tijd (8% in twee weken tijd). De achtbaanrit is te zien in onderstaande grafiek. Mijn portefeuille staat nog hoger dan op 1 januari 2015, maar dat komt deels ook omdat ik tussentijds heb bijgekocht. Sommige fondsen in mijn portefeuille zijn in een week tijd meer dan 5,0% gedaald.

Tsja, dit is het risico van beleggen. Hopelijk komt er de komende weken nog wel iets van een Eindejaarsrally. Naar boven dan.….

Hoe gaat het met jouw beleggingen?

20151212-Portfolio-YTD-Blur

error
« Older posts

© 2019 Geldnerd.nl

Theme by Anders NorenUp ↑