Przeglądając ostatnio blogi inwestycyjne natrafiłem na super funkcję do ściągania danych finansowych o różnych instrumentach inwestycyjnych dostępną w ramach Arkuszy Google. Funkcją to jest GOOGLEFINANCE(). Z jej pomocą można ściągać aktualne dane w zakresie: aktualnej ceny, wielkości obrotu w danym dniu, średnich kroczących i wiele innych. Zawsze sporo czasu zajmowało mi sprawdzanie danych finansowych poszczególnych spółek w różnych serwisach internetowych i niejednokrotnie brakowało mi ich ujęcia w formie tabeli. Aż tu nagle, powstał pomysł aby zbudować arkusz, automatycznie się odświerzający, z dostępnymi danymi ułatwiającymi proces podejmowania decyzji inwestycyjnych na rynku kapitałowym. Mając taką funkcjonalność można w znacznym stopniu zaoszczędzić czas spędzany na zbieranie i analizę danych jak również śledzenie zmienności wyceny naszego portfela inwestycyjnego. W tym wpisie zaprezentuję jak stosować funkcje goolefinance() oraz jak samodzielnie przygotować arkusz google z wykorzystaniem tej funkcji.
Na początek mała zajawka do czego można zastosować arkusze google z zastosowaniem goolefinance(). Przykładem może być prowadzenia arkusza z własnym portfelem instrumentów finansowych – akcje, ETF, waluta i inne.
W arkuszu takim możemy zapisać:
– listę posiadanych instrumentów finansowych [kolumna 1] – za pomocą ticker’s
– aktualną cenę oraz walutę w jakiej jest wyceniany dany instrument + przelicznik [kolumna 3, 4, 5]
– dzienna zmiana % [kolumna 6]
– pola kalkulowane w zakresie wartości zakupu i aktualnej wyceny oraz procentowy wskaźnik wzrostu lub straty [kolumna 10, 11, 12]
– średnie kroczące MA60 i MA100 [kolumna 13, 14]
– wykres liniowy SPARKLINE()
Przekład takiego arkusza z automatyczną aktualizacją wygląda jak poniżej. Można go pobrać i dowolnie modyfikować pod swoje indywidualne potrzeby. Link do pliku.
Przechodząc do szczegółów zacznijmy od definicji funkcji googlefinance() i co możemy dzięki niej uzyskać. Funkcja googlefinance() działa w arkuszach Google i tylko tam jest aktualizowana. Ściągnięcie pliku na dysk lokalny powoduje, że funkcja przestaję się aktualizować. Funkcja ma składnię:
=GOOGLEFINANCE(symbol_giełdowy; [atrybut]; [data_początkowa]; [data_końcowa|liczba_dni]; [interwał])
Funkcja składa się z 4 części. Poniżej prezentuje dokładny opis każdego z jej elementów:
1. symbol_giełdowy to ticker danego instrumentu finansowego np. spółka CD Projekt ma ticker: WSE:CDR gdzie WSE oznacza nasza polska GPW a CDR to krótka forma nazwy tej spółki, spółka Apple notowane na NYSE będzie miała ticker AAPL. Nie natrafiłem na listę dostępnych tickers na rynkach światowych, ja stosuję metodę wyszukania w google po nazwie spółki – wystarczy w przeglądarce wpisać nazwę spółki + stock i dostajemy szukany parametr np. dla spółki KGHM wpisujemy „KGHM stock” i dostajemy wynik jak poniżej. Z otrzymanej informacji możemy się dowiedzieć, że jej ticker pod googlefinance() to WSE:KGH.
2. atrybut parametr, który umożliwia zdefiniowanie rodzaju danych jakie chcemy pobierać do naszego arkusza. Jest ich dostępnych spora ilość. Pełna lista znajduje się na stronie support.google. Ponizej prezentuje kilka z nich które stosuje w moich arkuszach:
– „price” – cena w czasie rzeczywistym opóźniona maksymalnie o 20 minut. Można ją łączyć z dodatkowym atrybutem określającym cenę: otwarcia, zamknięcia, max, min. Zapisuje się wtedy ten dodatkowyatrybut jako: „priceopen”, „close”, „high”, „low”
– „currency” – waluta, w której wyceniany jest papier wartościowy. Waluty nie są objęte oknami transakcyjnymi, więc wartości open, low, high i volume nie są zwracane w przypadku tego argumentu.
– „changepct” – zmiana procentowa ceny od zamknięcia poprzedniego dnia sesji giełdy.
– „change” – zmiana ceny od zamknięcia poprzedniego dnia sesji giełdy.
– „volume” – wielkość obrotów w bieżącym dniu.
– „marketcap” – kapitalizacja rynkowa akcji.
– „datadelay” – opóźnienie danych w czasie rzeczywistym.
– „volumeavg” – średnie obroty w ciągu dnia.
– „eps” – Earnings Per Share – zarobki na jednej akcji.
– „high52” – cena maksymalna w okresie 52-tygodni.
– „low52” – cena minimalna w okresie 52-tygodni.
– „shares” – liczba pozostałych akcji.
3. data_początkowa i data_końcowato parametry daty w przypadku gdy chcemy żeby googlefinance() zwróciło nam dane historyczne. Temat będzie omówiony dokładnie poniżej we wpisie.
4. interwał to parametr dający możliwość prezentacji danych w okresach: dziennych lub tygodniowych
Przechodząc do realnych przykładów jak zapisać funkcje googlefinance() w arkuszu Google. Poniżej zaprezentuje 2 przykładowe arkusze. Jeden będzie zawierał zastosowanie tej funkcji w ujęciu tabelarycznym, natomiast drugi będzie pokazywał jak czytać i analizować dane historyczne.
Przykład 1 – przygotowania arkusza Google w formie tabelarycznej z zastosowaniem powyżej wymienionych atrybutów. W formie podstawowej funkcja googlefinance() zawiera 2 elementy: ticker oraz atrybut np.
– w celu sciągania ceny aktualnej danego instrumentu finansowego, funkcje musimy zapisać =GOOGLEFINANCE(„WSE:KGHM”;”price”)
– w celu sciągania zmiany % w danym dniu danego instrumentu finansowego, funkcje musimy zapisać =GOOGLEFINANCE(„WSE:KGHM”;”changepct”)
– w celu sciągania aktualnej wartości wskaźnika Earnigs Per Share – EPS danego instrumentu finansowego, funkcje musimy zapisać =GOOGLEFINANCE(„WSE:KGHM”;”EPS”)
Funkcje googlefinance() możemy również łączyć z innymi funkcjami w ramach arkuszy Google takimi jak funkcja MAX, MIN, AVERAGE. W tym celu niezbędne jest zastosowanie funkcji INDEX, która umożliwia tworzenie wirtualnej tabeli do zdefiniowania wymaganego parametru. Dla zapisania tych trzech opcji, funkcja będzie wyglądała:
– dla wyliczenia wartości maksymalnej z notowań za okres ostatnich 60 dni funkcja będzie przybierało postać
=MAX(INDEX(GoogleFinance(„WSE:KGHM”;”all”;WORKDAY(TODAY();-60);TODAY());;5))- gdzie 5 jest parametrem definiującym cenę zamknięcia. Całościowo jest dostępnych 6 możliwości, gdzie:
– 1 – data
– 2 – price open
– 3 – price high
– 4 – price low
– 5 – price close
– 6 – volume
– dla wyliczenia wartości minimalnej z notowań za okres ostatnich 60 dni funkcja będzie przybierało postać
=MIN(INDEX(GoogleFinance(„WSE:KGHM”;”all”;WORKDAY(TODAY();-60);TODAY());;5))
– dla wyliczenia wartości średniej kroczącej z notowań za okres ostatnich 60 dni funkcja będzie przybierało postać
=AVARAGE(INDEX(GoogleFinance(„WSE:KGHM”;”all”;WORKDAY(TODAY();-60);TODAY());;5))
Przykładowy arkusz z zastosowaniem prezentowanych powyżej funkcji dostępny jest pod poniższym linkiem.
Przykład 2 – przygotowanie arkusza Google do analizy danych historycznych. Funkcja googlefinance() daje również możliwość czytania i wyświetlania danych historycznych.
– zapisując funkcje w postaci
=GOOGLEFINANCE(„AAPL”;”close„;today()-100;today(); „daily„)
w wyniku dostajemy tabelę z cenami na zamknięcie sesji spółki Apple, w formacie jak zaprezentowaną poniżej w „Sposobie 1” – daty zapisujemy bezpośrednio w atrybutach.
– zapisując funkcje w postaci
=GOOGLEFINANCE($G$4;”close„;$G$6;$G$7;”daily„)
w wyniku dostajemy tabelę cenami na zamknięcie sesji spółki MBank, w formacie jak zaprezentowaną poniżej w „Sposobie 2” – przy czym dla ticker jest zrobiony odnośnik do komórki G4 jak również dla dat od i do są zastosowane odpowiednie odnośniki do komórek odpowiednio G6 i G7.
Poniżej wersja z automatyczną aktualizacją:
Jak widać z przedstawionych powyżej przykładów funkcja googlefinance() może zostać wykorzystana w dwóch przypadkach:
1. Do prezentowania pojedynczych danych dla interesującego na instrumentu finansowego takich jak: cena, zmiana dzienna ceny, EPS, obroty i inne.
=GOOGLEFINANCE(„ticker”;”price”)
=GOOGLEFINANCE(„ticker”;”EPS”)
2. Do prezentowania danych historycznych dla interesującego nas instrumentu finansowego takich jak: historia wyceny, historia obrotów.
=GOOGLEFINANCE(„ticker”;”close”;today()-60;today(); „daily”)
=GOOGLEFINANCE(„ticker”;”volume”;today()-60;today(); „daily”)
Stosowanie funkcji googlefinance() w znacznym stopniu moze skrócić czas przygotowania danych do regularnej analizy interesujących nas instrumentów finansowych.
Arkusze z zaprezentowanymi przykładami można pobierać i dowolnie modyfikować wg własnych potrzeb.
Jeśli chcesz dostawać powiadomienia o nowych wpisach na blogu be PRO active to zachęcam do zapisania się do listy dystrybucyjnej oraz o dołączenie do mediów społecznościowych powiązanych z blogiem be PRO active.
KG
Fajna prezentacja tematu łącznie z dostępnymi przykładami. Dziękuję. Na pewno zaoszczędziłam sporo czasu sama próbując ustawić taki arkusz.
Ela