2016-06-12

MyDividends steg för steg-instruktion

När jag sitter och bygger mina verktyg så blir man lätt hemmablind och jag gissar att alla inte tycker att det är så enkelt att få ihop det.

Så detta inlägg syftar till att redogöra steg för steg hur man går tillväga för att kunna skapa portföljrapport med mitt verktyg MyDividends.

1. Se till att du har ett Google-konto samt är inloggad.

2. Öppna Google spreadsheet mallfil MyDividendDataExtended https://docs.google.com/spreadsheets/d/1iFrcqYhdm8agn-XwrGYfqeKzuX21rQ5dmMP7zBKVy-s/edit#gid=855161220

3. Skapa en kopia och döp den till lämpligt namn. Se även fliken ReadMe för detaljer om inställningar.



4. Kopiera nu nyckelvärdet från webbadressen för ditt nya spreadsheet (kommer vara ett annat värde än i exemplet nedan).



5. Klicka på
och ange nu ditt nyckelvärde i verktygets webbadress efter ?sheet= och innan &sheetname=Portfolio.


6. Fungerar det med den nya webbadressen? Spara gärna som ett bokmärke eller motsvarande.

7. Nu är det dags att ersätta med eget data men man kan låta allt befintligt data vara kvar i fliken StockData om man vill (rekommenderas).

8. Om du har ett spreadsheet redan från de tidigare versionerna av verktyget så är det nog säkrast att lägga till rad för rad på nytt då datamodellen har ändrats något och den nya är lite "smartare" så att man slipper ange samma data på fler ställen.

OBS! En ny aktie måste in i bokstavsordning på rätt rad för att rätt data ska kunna hittas i fliken Portfolio sen. Detta för att prestandan på funktionerna blir bättre.

9. Här följer ett exempel om hur man lägger till amerikanska aktien Staples (SPLS).

a. Leta upp rätt rad i fliken StockData för SPLS i alfabetisk ordning. I vårt fall blir det T (AT&T) och välj Insert 1 above:

b. Kopiera data från raden ovan eller annan rad med liknande data (valuta, utdelningsfrekvens etc) för att få med alla funktioner.

c. Ändra nu till SPLS motsvarande data i kolumner med svart textfärg (det som är i grått beräknas automatiskt).

d. Ange utdelningsdata från lämplig källa och om det är exempelvis kvartalsutdelning så är det den man anger i kolumnen Current Div samt förväntad kvartalsutdelning nästa år i Expected Div. Om aktien har udda utdelningsmönster får man hårdkoda värden för respektive utdelningsdatum.

e. När man är färdig i StockData så kan man lägga in aktien i fliken Portfolio på valfri rad via Insert 1 above.

f. Kopiera sedan data från raden ovan eller annan lämplig.

g. Ange nu aktienamnet (måste matcha exakt från StockData) och antal och vips så ska allt data fyllas i automatiskt!

h. Anropa verktyget med din webbadress från punkt 6 ovan och verifiera att data från din aktie visas korrekt (SPLS i detta exempel).


10. Repetera punkt 9 för hela din portfölj och njut sedan :-)

Denna instruktion är sannolikt inte perfekt så lämna gärna feedback i kommentarsfältet nedan så förbättrar jag inlägget löpande sedan.

Lycka till!


59 kommentarer:

  1. Stort tack Stefan, grymt bra!

    SvaraRadera
  2. Underbart! Tack! Har tidigare känt mig en smula korkad och inte velat fråga för att verka ännu mera korkad så din guide kom som en skänk från ovan:) Om man nu bara kunde hitta lite ledig tid så ska jag sätta mig och pilla med mina innehav.

    MvH Pengaregn

    SvaraRadera
    Svar
    1. Var inte rädd för att fråga och lycka till!

      Radera
  3. Hej,
    Tack för bra verktyg men var lägger jag in mina inköpspriser för resp aktie?
    Det mesta är gråmarkerat som är med formler som jag inte vågar testa.

    Hans

    SvaraRadera
    Svar
    1. Som det nu så måste man välja mellan aktuell kurs eller GAV. Vill du ha det senare så får då hårdkoda in dina värden i kolumnen Price origin under fliken StockData.

      Tack för feedback!

      Radera
  4. Hej!
    Jag sitter och funderar på hur man hanterar olika inköp över tid i verktyget. Om jag köpt 100 st Johnson&Johnson i april och fått utdelning i maj så blir det ju en stapel som är korrekt. Men om jag sen köper 100 st till nu i juni och justerar volymen till 200 st i Portfolio så ändrar den även den gamla utdelningen till dubbelt..? Vad gör jag för fel?

    SvaraRadera
    Svar
    1. Verktyget har inte stöd för historiska händelser utan visar nuläget för portföljen och det närmsta året (baserat på senast kända utdelningsnivå). Att ha historik skulle göra komplexiteten för hög om åtminstone Avanza har ganska bra stöd för att visa historiska utdelningar.

      Tack för kommentar!

      Radera
  5. Hej,
    Vilket bra verktyg. Har dock svårighet att lägga in Kopparbergs. Som MTF-handlad finns den varken på google eller yahoo, vet du vilket sträng som behövs för att importera data från bloombergs där den finns?

    Tack!

    SvaraRadera
    Svar
    1. Tack!

      Efter en snabb efterforskning tror jag att vi är hemma!

      =IMPORTXML("http://www.bloomberg.com/quote/KOBRMTFB:SS","//div[@class='price']")

      Radera
    2. Tack för bra tips för just Kopparbergs som jag har stora problem med - MEN jag skulle också vilja få in andra uppgifter om Kopparbergs som EPS, högsta och lägsta kurs en viss dag etc. - Finns den infon tillgänglig för nedladdning på samma sätt som price? Mycket tacksam för svar.

      Radera
    3. Ja den finns på samma sida som ovan men det ser svårt ut att få till ett unikt xpath-uttryck för de uppgifter du önskar. Om du kan eller känner någon som är bra på HTML/Xpath så kan man laborera med uttrycket ovan och se vad som returneras i google spreadsheet. Har tyvärr inte riktigt tid själv att gräva djupare i fallet och jag nöjer mig med 'price' så länge.

      Radera
    4. Hej Anonym,

      För EPS:
      =IMPORTXML("https://www.bloomberg.com/quote/KOBRMTFB:SS";"//*[text()[contains(.,'Earnings per Share')]]/parent::div/div[@class='cell__value cell__value_']" )

      För day range:
      =IMPORTXML("https://www.bloomberg.com/quote/KOBRMTFB:SS";"(//*[text()[contains(.,'Day Range')]]/parent::div)[1]/div[@class='cell__value cell__value_']" )

      Du får själv lista ut hör du parsar low och high från den strängen.

      Radera
  6. Hej,

    Instämmer med ovanstående talare, ett enastående verktyg. Jag har dock ett problem och det är att min rapport enbart visar blankt. Fick det att fungera tidigare men nu då jag lade till resten var det något som gick galet. Ett par av mina papper (AQ, Star, UTG) går ej att finna, vilket leder till N/A i listan på ett par punkter. Kan det vara detta som spökar?

    Tack!

    SvaraRadera
    Svar
    1. Ber om ursäkt för sent svar, är problemet fortfarande aktuellt?

      Radera
  7. Hej Stefan,
    när man till google spreadsheet läst in kursen för Kopparbergs med ovan formel så får man visserligen kursen i rätt värde, men ett konstigt format (253.50.00) som jag sedan inte lyckas formatera om till ett tal (nummer) som jag kan räkna vidare med i mitt spreadsheet.
    Vet du hur man gör för att formatera det till ett användbart talformat?

    Vidare skulle jag även vilja läsa in t.ex aktiens kursutveckling idag procentuellt och i absoluta SEK, läsa ut P/E, EPS etc. Vet du vilken formel jag kan använda för det? Finns det en lista t.ex med vilka argument man ska mata formeln ovan med?
    Jag lyckas inte hitta en sådan.

    Stort tack på förhand.
    Mvh Stefan

    SvaraRadera
    Svar
    1. Ber om ursäkt för sent svar, är problemet fortfarande aktuellt?

      Radera
    2. Hej Stefan,
      sorry för sent svar av mig, ja tyvärr är det det för mig, har du någon lösning på min fråga ovan? Tack och Mvh Stefan

      Radera
    3. Prova den här för Kopperbergs:
      =IFERROR(IMPORTXML("http://www.bloomberg.com/quote/KOBRMTFB:SS","//div[@class='price']"),200)

      Radera
    4. Stort tack för grymt snabb respons :)
      Jo, såhär ligger det till: när jag i ett helt tomt google spreadsheet (alltså inte i dina sheets) använder:
      =importxml("http://www.bloomberg.com/quote/KOBRMTFB:SS";"//div[@class='price']")
      resulterar detta att cellens värde blir: 194.00.00
      Dvs kursen är korrekt uläst (194) men formatet blir så konstigt, gissar att det är någon form av textsträng man får tillbaka. Om jag då väljer att ändra formatet på denna cell till t.ex formatet "Tal" i google spreadsheet så får istället cellen värdet 8,08.

      Om jag istället använder ditt senaste tips:
      =IFERROR(IMPORTXML("http://www.bloomberg.com/quote/KOBRMTFB:SS","//div[@class='price']"),200)

      så får cellen just värdet 8,08.

      Men vad är detta för att värde? Det är ju inte aktiekursen för Kopparbergs iaf. Samma principiella resultat för jag vid utläsande av t.ex Nilörngruppen.
      Det verkar ju som att problemet kokar ned till att formatera det utlästa resultatet från kommandot, men hur gör jag det?

      Vad får du för resultat av ovan kommandon? Funkar det alltså för dig? Är det nån inställning i google spreadsheet som man först måste konfigurera för att ens kunna använda dessa kommandon?

      Mvh Stefan

      Radera
    5. Jag har cellen formaterad som Number vilket blir med 2 decimalers precision. Vidare använder jag Locale=United Kingdom under Spreadsheet settings så det kanske är det som gör skillnad? Om du utgår från min mallfil så borde det bli rätt oavsett kan man tycka.

      Radera
    6. Ok, jag ska testa att ändra land under spreadsheet settings och se vad som händer om det kan påverka.
      Vidare skulle jag även vilja läsa in t.ex aktiens kursutveckling idag procentuellt och i absoluta SEK. Vet du vilken formel jag kan använda för det? Kan man använda samma formel som ovan fast med någon annan parameter istf "price"?

      Radera
    7. Tackar för uppslag, yes detta funkar från Google finance, jag tänkte mer på när man vill läsa från Yahoo eller Bloomberg. Men det är mindre viktigt.
      Jag har nu löst ovan problem iaf. Det visar sig att genom att ändra land under spreadsheet settings så påverkar man fundamentalt vilket format inlästa data får. Jag har ingen aning om varför men så verkar det vara.
      Formlerna fungerar klockrent man anger United Kingdom och funkar inte alls om man anger Sweden.
      Kan vara bra att veta

      Radera
    8. Tack för info!

      Kanske denna xpath funkar för absolut förändring via Bloomberg: //*[@id="content"]/div/div/div[1]/div/div[4]/div[4]/div[1]/text()

      Kolla via Chrome inspection så ser du vad elementen heter på deras sajt

      Radera
  8. Vad ska man skriva in på ValueGoal DividendGoal MaxDebtRatio Inpayments Cash Debt? Tacksam för svar :)

    SvaraRadera
    Svar
    1. I nämnd ordning:

      Målnivå på portföljvärde
      Målnivå på utdelningar
      Maxnivå belåningsgrad
      Totalt inbetalt
      Kassa
      Bruttoskuld

      Radera
  9. Hej

    Äntligen har jag fått detta att fungera.
    Dock får jag varken in Balder Pref eller Akel Pref, tycker jag skriver in rätt men det vill ej fungera.
    Har du nån ide?

    tack för ett super verktyg.

    //Mattias

    SvaraRadera
    Svar
    1. Är det att du inte får kurshämtningen att fungera? Vissa aktier finns inte via Google Finance och då får man använda Bloomberg istället se kommentar ovan för exempel.

      Radera
  10. Hej, jag får inte inte till att den hämtar datan, står bara #SAKNAS! när jag skriver in trigger namnen.
    Såg exempel från kopparbergs ni skrivit lite om men vart menar du att man ska skriva in den raden ?

    SvaraRadera
    Svar
    1. Ledsen för sent svar, man anger kurs (via Google finance, Bloomberg eller hårdkodat värde) i kolumn G om det var det du menade?

      Radera
    2. Hej, OK.
      Men då skriver man alltså inget i kolumn J "ticker" eller?
      Jag skriver ju alla mina innehav med GAV pris och hårdkodar ju då som sagt in värdet i kolumn G, men skriver ju ändå alltid in korrekt ticker i kolumn J först och sen ändrar bara priset i kolumn G.
      Ursäkta att jag är lite trög i detta... =)

      Radera
    3. Hej och ledsen för sent svar. Om du anger priset direkt i G så borde det inte behövas något i J

      Radera
  11. Jag har problem redan vid punkten 6 då jag inte lyckas få upp något utan sidan bara står och tuggar. Har det med att jag inte gjort filen publik, testat detta men verkar inte bli bättre?

    SvaraRadera
    Svar
    1. Ditt sheet måste ha inställning "anyone who has the link can view"

      Radera
  12. Stefan, vad ar syftet med fliken Noob? Vad ska man fylla i där...

    SvaraRadera
  13. Det är min nybörjarportfölj som jag utmanar Avanza Zero med...

    SvaraRadera
  14. Vad ska man skriva för värden under kolumnerna Current Div och Expected Div?

    SvaraRadera
    Svar
    1. Current div är nuvarande utdelning och Expected vad man tror om kommande års nivå.

      Radera
  15. Hej! Tack så mycket för att du delar med dig av detta, tyvärr verkar jag inte få det att funka. Fastnar på punkt nr 6 även fast arket är inställt på att alla som har länken kan se.. Vad göra? MVH Richard

    SvaraRadera
    Svar
    1. Får du en kopia av mallfilen att funka utan att du lägger in egna aktier? Annars lägg länken till ditt google spreadsheet som en kommentar alt. använd kontaktformuläret till höger för att maila så kan jag felsöka lättare.

      Radera
  16. Hej Stefan, Tack för en fantastisk sida och att du hjälper till med dina mallar. Underlättat rejält! (Även om jag suttit snart i två dagar ;)
    Ser ovan att nån även hade problem med Kopparbergs aktien.

    Jag får även in aktiekursen med (=IMPORTXML("http://www.bloomberg.com/quote/KOBRMTFB:SS","//div[@class='price']") ... Men den uppdaterar inte resten av kolumnerna som "aktuellt värde", "total kostnad" etc. Den uppdaterar inte heller fliken "dividens" när jag har skrivit in antalet aktier. Kanske blev lite rörigt för dig nu, men hoppas du förstår och även kanske har svaret vad jag gjort för fel :)

    SvaraRadera
    Svar
    1. Skumt, jag behöver nog fler ledtrådar alt. se ditt ark. Kontakta mig via formuläret KONTAKTA MIG i högermenyn så kan vi sköta felsökning via mail.

      Radera
  17. Är det bara hos mig google sheet har börjat flippa ut helt och hållet? Även de skrivskyddade mallarna direkt från dig Stefan visar fel :/ (z2036 Global Dividend template). Hoppar från ena stunden till rätt till den andra fel. Felmeddelande "Google Ekonomi internt fel.

    SvaraRadera
    Svar
    1. Skumt, funkar för mig och inget jag känner igen - strular det hela tiden eller ibland?

      Radera
  18. Hej, när jag använder formeln ovan som ni tipsar om för att få in kurser från Bloomberg så får jag bara felmeddelandet #FEL. Byter jag ut kommatecknet mot ett semikolon så blir det i stället #SAKNAS. Någon idé om vad som kan göras annorlunda så att det funkar? Går det inte att skriva en formel för att hämta kurserna från Nasdaqs sida där även preffar finns som verkar saknas på Bloomberg-sidan?

    SvaraRadera
    Svar
    1. Felen kan bero på vilket decimaltecken du använder, jag kör punkt isf komma och då ska det funka. Testa denna =IFERROR(IMPORTXML("http://www.bloomberg.com/quote/FIRE:SS","//span[contains(concat(' ', @class, ' '), 'priceText__')]"),36)

      Radera
    2. Tack, nu blev det lite bättre men ändå inte... :-) Om jag byter ut kommatecknen mellan de olika delarna i din formel mot semikolon och byter ut FIRE:SS mot min akties ticker så får jag visserligen ett värde i cellen, men värdet blir ju 36 som det står i formeln? Måste man inte byta ut 36 mot något annat?

      Radera
    3. "36" är ett värde som du har valt och som bör väljas efter "dagens värde" när du skriver formeln. Det ska alltså i nödfall, när något går fel, ersätta det aktuella värdet som du borde ha fått från Bloomberg. Därav "IFERROR".

      Kommatecken eller semikolon beror på språkinställningar för ditt google-ark.

      Radera
    4. Funkar det med FIRE:SS ?

      Blir det 36 så innebär det att funktionen IMPORTXML kastar ett fel. Argumenten i funktionen måste separeras med kommatecken så det går inte att byta vad jag vet.

      Testa annars att byta till United Kingdom under Locale - Spreadsheet settings - File

      Radera
    5. Det blir 36 oavsett om jag skriver FIRE:SS eller någon annan ticker. Om jag inte byter ut kommatecknen mellan argumenten mot semikolon så får jag #FEL! och inte 36. Om jag ska fylla i ett värde manuellt så kan jag ju lika gärna göra det från början utan formeln, hela vitsen med formeln var för mig att slippa uppdatera manuellt. Jag tror jag får ge upp, men tack för era försök att hjälpa mig. Mvh Christina

      Radera
    6. Ja, det hjälper inte. Samma felmeddelande, tyvärr.

      Radera
  19. Ja, det hjälpte tyvärr inte.

    SvaraRadera
    Svar
    1. Skicka meddelande via mitt formulär till höger så kan du dela ditt sheet sen för felsökning.

      Radera
  20. Laddade ner MyDividendDataExtended, och tänkte uppdatera den med mina akter. Men insåg att ingen av importxml-länkarna verkade ta live data utan endast IfError data. Har ni andra samma problem?
    Ex: StockData G21 = 19

    SvaraRadera
    Svar
    1. Detta ska vara fixat nu i mallfilen, testa igen!

      Radera