lördag 19 oktober 2013

Helgens hjälte

Ibland kliver någon fram med det där tipset som besparar en många trista minuter i livet. Igår tipsade Indexeraren om en funktion i Google Docs som sparar mig så fantastiskt mycket tid att jag måste bjuda tillbaka till hans blogg med lite trafik: ta gärna en titt på Indexinvestering som säkert kan leta sig in i blogglistan om aktiviteten kommer upp till en rimlig nivå.

Snillen i T-shirts
Funktionen? Jo i ett Google Spreadsheet som man enkelt skapar i Google Drive (jag äger inga aktier längre, tipset kommer numera från hjärtat) kan man skriva in följande:

  GoogleFinance(symbol, attribute)

... där symbol är en ticker eller en valutakursnyckel. Funktionen returnerar sedan senaste kursen i den valuta aktien är noterad i. Den uppdateras också live medan man tittar på kalkylarket och omvandlar alltså kalkylarket till en extremt skräddarsydd börsskärm.

Parametern attribute har jag inte använt ännu, den är valfri. Den används för att hämta andra data för aktien, annat än kursen alltså (tack Anonym).

Några exempel på användningsområde jag själv använder:

 =GoogleFinance("STO:HM-B")

... ger aktuell kurs i HM. Vad tickern heter listar man enklast ut genom att gå till Google Finance och söka på bolaget. I dropdown-listan står börskoden längst till höger (STO exempelvis) och tickern längst till vänster (HM-B).

 =GoogleFinance("CPH:MAERSK-A")*GoogleFinance("CURRENCY:DKKSEK")

... ger aktuell kurs i Maersk A-aktie omvandlat till svenska kronor. "CURRENCY:USDSEK" ger dollarkursen och "CURRENCY:EURSEK" ger eurokursen. Både valutakurserna och aktiekurserna uppdateras alltså live.

 =Min(GoogleFinance("STO:INDU-A"),GoogleFinance("STO:INDU-C"))

... ger den lägsta kursen av Industrivärdens aktier (i praktiken alltid C-aktiens kurs) vilket jag använder för bevakningslistan.

45 kommentarer:

  1. Helt fantastiskt ju! Många tack :)

    SvaraRadera
  2. Finns många parametrar att stoppa in i den funktionen... hehe, jag tog nästan för givet att du kände till funktionen när du publicerade din bevakningslista via Google Docs.

    Hur som helst, här finns en sammanfattning över vilka parametrar du kan använda i funktionen: https://support.google.com/drive/answer/54198

    Det som är mest intressant kan vara EPS och P/E. Utdelning går dock inte att hämta, vilket är liiiite synd :|

    SvaraRadera
    Svar
    1. Nej för mig har Docs Spreadsheet alltid varit en gratis lättvariant av Excel, hade ingen aning om den typen av tjänstekopplingar. Kul upptäckt i alla fall :-)

      Radera
    2. Kan tilläggas att detta går att göra i Excel också; finns inbyggt genom s.k. smart tags.

      Radera
  3. Tusen tack för det tipset (made my day ) :-) för den som vill vara petig kan man tillägga att det står längst ned att kursen är fördröjd med 20 minuter.

    SvaraRadera
  4. Excel-varianten fungerar inte med Mac tydligen. Synd.

    SvaraRadera
  5. Briljant ju!
    Tackar för tipset!

    /TE

    SvaraRadera
  6. Hej Lundaluppen

    Jag har nyligen börjat investera i aktier och har därför inte allt för mycket erfarenhet. Jag tycker att din strategi för att motivera till köp/sälj samt vilka bolag man bör bevaka låter vettigt.

    Har funderat lite på nyckeltal och beräkningar av dessa. Jag vill själv lära mig räkna ut nyckeltalen och läser därför rapporter som företagen publicerar. En del företag väljer att på sina egna hemsidor (ex Investor) göra det möjligt för besökare att räkna ut nyckeltalen och även visar dessa i förändring över X-antal år.

    Nu frågar jag dig som har räknat med nyckeltalen och jämfört dessa under längre tid, är företagensnyckeltal att lita på? Jag använder din bevakningslista som något slags facit/rättningsmall för att se så jag själv inte hamnar helt tokigt.

    Ha en trevlig helg!
    /Wonderweiss

    SvaraRadera
    Svar
    1. När det gäller väldefinierade nyckeltal kan man lita på företagen på samma sätt som man måste lita på deras räkenskaper.

      Vissa nyckeltal är dock svagt definierade och då gäller det att titta på hur det enskilda bolaget definierar det. Vilken tidsperiod talar man om? Inklusive/exklusive skatt? Med eller utan ändringar i marknadsvärderingar av egendom? Detta är typiska frågor man får ställa sig i många fall.

      Radera
  7. Snyggt! Kan du publicera din bevakningslista med dessa funktioner? t.ex så den lista du har publicerat via google drives idag uppdaterar aktuell kurs automatiskt? Det vore riktigt uppskattat!

    SvaraRadera
    Svar
    1. Jag vet inte riktigt hur det fungerar när man publicerar listan vidare, ska ta och undersöka.

      Radera
  8. Fungerar också i openoffice genom tilläggsprogrammet "getquote".

    SvaraRadera
    Svar
    1. Tack, och tack lundaluppen, ska kolla upp bada.

      Radera
    2. Kollade upp och det oppnade upp en helt ny varld for mig och insag Googles riktiga varde :) Kanner mig lite insnoad men tusen tack.

      Radera
  9. Märkligt att man inte kan hämta hem kurser för tyska bolag men man kan hämta svenska och danska bolag t.ex. Någon som vet hur man hämtar tyska bolag?

    SvaraRadera
    Svar
    1. Mmm, jag testade med FRA:TLX och fick felmeddelandet "FRA-utbytet kan inte användas". Kanske något i avtalet mellan Frankfurtbörsen och Google?

      Radera
    2. Ja, fick något liknande när jag försökte med Oslo...

      Radera
    3. Om ni endast är intresserade av senaste pris så kan man hämta data från Yahoo. Jag skrev en funktion för att kunna hämta för några norska aktier (funkar även för andra börser):

      function getPrice(ticker, data) {
      if (data == 'Google') {
      return FinanceApp.getStockInfo(ticker).price;
      } else if (data == 'Yahoo') {
      var content = UrlFetchApp.fetch("http://finance.yahoo.com/d/quotes.csv?s=" + ticker + "&f=l1").getContentText();
      var replaced = content.replace(/"/g, '');
      return parseFloat(replaced);
      }
      }

      Scriptet ovan lägger du in via Tools -> Script Editor -> Create New Project -> Blank Project -> Klistra in koden -> Spara (ctrl+s).

      Anropa från ditt dokument ex: =getPrice("GJF.OL", "Yahoo")

      Radera
  10. Kämpade för att få fram utdelningar men hittade en guide efter lite letande.

    =REGEXextract(REGEXreplace(index (importhtml("https://www.google.com/finance?q=STO:HM-b", "table", 2), 1, 2); "[()]"; "") ; "([^/]*)/")

    Fråga mig inte hur den funkar men den ger iaf hm-b:s utdelning (9.5) i cellen.

    Tack för en bra blogg!

    SvaraRadera
    Svar
    1. Funkar säkert, men eftersom man parsar en tabell är det förmodligen inte superrobust; om antalet kolumner/rader eller liknande ändras så slutar det säkert funka.

      Radera
    2. Dessutom är man begränsad till att anropa ImportHTML max 50 gånger i ett dokument, så det är ingen optimal lösning för den som har stora bevakningslistor..

      Radera
  11. En fråga som inte hör till just detta ämne, men är det någon som har några synpunkter på Addtech? Är det ett företag som passar i "Luppenportföljen"?

    SvaraRadera
    Svar
    1. Den här kommentaren har tagits bort av skribenten.

      Radera
    2. Skrev fel i tidigare inlägg.

      Du kan läsa mer under ett tidigare inlägg där Lundaluppen motiverar vilka företag som är av intresse och varför:

      http://lundaluppen.blogspot.se/2010/03/investeringsstrategi-val-av-foretag-och.html

      Radera
  12. Oj, vilken grej! Trodde aldrig att jag skulle få figurera i ett lundaluppenilägg. Dessutom under rubriken "helgens hjälte".

    Det var onekligen roligt. Kul också att jag fått några kommentarer på min blogg. Känns uppmuntrande och jag ska försöka få ut något inlägg eller två under veckan.

    SvaraRadera
  13. Jag märker inget bra sätt att få typ prognoser för intjäning (EPS) för framtiden in i Excel. Funkar 4-traders eller likande?

    Använder för nuvarande ett macro som gör detta arbete. Har testat Google och Smart Tags i Excel. Inget löser svenska innehav något vidare.

    Vilket sätt är bäst för att visa nordiska aktieinnehav?

    Alla amerikanska aktier verkar fungera väldigt bra.

    SvaraRadera
  14. För att hämta data från över 50 företag på yahoo kan man göra så här i google docs

    Cell B2
    =ImportData("http://finance.yahoo.com/d/quotes.csv?s="&A2&"+"&A3&"+"&A4&"+"&A5&"+"&A6&"+"&A7&"+"&A8&"+"&A9&"+"&A10&"+"&A11&"+"&A12&"+"&A13&"+"&A14&"+"&A15&"+"&A16&"+"&A17&"+"&A18&"+"&A19&"+"&A20&"+"&A21&"+"&A22&"+"&A23&"+"&A24&"+"&A25&"+"&A26&"+"&A27&"+"&A28&"+"&A29&"+"&A30&"+"&A31&"+"&A32&"+"&A33&"+"&A33&"+"&A35&"+"&A36&"+"&A37&"+"&A38&"+"&A39&"+"&A40&"+"&A41&"+"&A42&"+"&A43&"+"&A44&"+"&A45&"+"&A46&"+"&A47&"+"&A48&"+"&A49&"+&f=nsd1c4l1b2b3ghcd")

    Cell B3 =CONTINUE(B2, 1, 2)
    Cell B4 =CONTINUE(B2, 1, 3)
    Cell C2 =CONTINUE(B2, 2, 1)
    Cell C3 =CONTINUE(B2, 2, 2)

    Sedan får man bygga ut rutnätet.

    Kolumn a innehåller t.ex. HM-B.ST

    SvaraRadera
  15. Det är rätt kul att leka med dessa funkioner och få ett levande dokument. Det gjorde mitt dokument väldigt levande att få realtids kurserna oxo. Tack luppen! Kul att man kan ha flera skript i samma cell.jag la in att bakgrunds färgen ändrades när kursen var lägre eller högre än mitt inköpspris.kul som f-n mvh Dacce

    SvaraRadera
  16. Detta är ju finfint. Men jag får inte kursen för Industrivärden C att hämtas in. Får bara felmeddelande.

    SvaraRadera
    Svar
    1. Funkar bra för mig: =GoogleFinance("STO:INDU-C")

      Radera
    2. Ja, idag fungerar det för mig med. Jag skrev som du. Exakt som jag gjorde för de andra aktierna. Tack.

      Radera
  17. Någon som vet om detta även funkar för fonder? Eller för bolag listade på FN?

    Tack på förhand
    mvh

    SvaraRadera
    Svar
    1. Med hjälp av ImportData() kan man hämta åtminstone småbolagskurser från Yahoo.

      ImportData("http://finance.yahoo.com/d/quotes.csv?s=BON.OL&f=l1&dummytext")

      Radera
    2. Tack herr Lupp!

      Radera
    3. Varsågod fru, fröken eller herr Anonym ;-)

      Radera
  18. ..nu har jag försökt att få till dendära koden i en evighet känns det som. Men det blir bara error..

    Hur ska jag skriva för att få aktuell kurs för Bonheur i mitt lilla excel-ark?

    Skulle vara snällt att få lite hjälp.

    SvaraRadera
  19. Hej någon som vet hur man få kurs data att spara i en ny cell automatiskt tidsupplösning typ 15min eller vad man nu vill ha!

    SvaraRadera
  20. Jag skulle vilja kunna lägga in fonder från Avanza, jag har hittat följande kodsnipp =IMPORTXML("https://www.avanza.se/ab/fonder/lista/filter?name="& C17 &"&page=1&activeTab=overview", " //td[@class='overview fundListNav noSort']") men den retunerar det som en textsträng som är omöjlig att formatera. Några tankar?

    SvaraRadera

  21. Jag skulle vilja kunna lägga in fonder från Avanza, jag har hittat följande kodsnipp =IMPORTXML("https://www.avanza.se/ab/fonder/lista/filter?name="& C17 &"&page=1&activeTab=overview", " //td[@class='overview fundListNav noSort']") men den retunerar det som en textsträng som är omöjlig att formatera. Några tankar?

    SvaraRadera
    Svar
    1. Den här kommentaren har tagits bort av skribenten.

      Radera
  22. Skrev fel.

    Använd detta kalkylark och bygg vidare på för hämtning av data från Avanza.

    https://docs.google.com/spreadsheets/d/1meDz1Sx1EWc_mD5qa1ajxPYo5RwXWfRec0uQztth6eY/edit?usp=drivesdk

    SvaraRadera
    Svar
    1. Hej Rikard, tack för att du delar ditt kalkylark! Dock verkar det inte som funktionen azGet() kommer med när man kopierar arket. Kan du dela denna funktion på något sätt?

      Radera
    2. Tjena,

      Uppdaterad variant.
      https://docs.google.com/spreadsheets/d/15jujzwEpgG6vfW0AJdHhCSxfFmTt8DfljB3NESZOFcc/edit?usp=drivesdk


      Dock har kalkylarken ett generellt problem att inte vilja uppdatera sig automatiskt.
      Enklast är att ändra MA under inställningar, spara och sen ändra tillbaka till det värdet du vill ha så uppdaterar det sig.

      Är det fortfarande någon rad som inte hänger med så ta en kopia på arket då hoppar det igång.

      Radera

Obs! Endast bloggmedlemmar kan kommentera.