Blog
27.8.2020

Funkcja Google Finance i web scraping

Spis treści:
Tagi:
No items found.
Klient:
Autor:
Mateusz Różański

Coraz częściej sięgamy po dane zewnętrzne, które dostępne są w sieci. Proces pozyskiwania tych danych nazywa się potocznie web scraping lub web crawling. Do tego celu można użyć wielu rozwiązań, ale dziś chcę przedstawić całkowicie darmowe i bardzo proste (code free) rozwiązania, które oferuje Google, a dokładnie funkcja Google Finance.

Moim celem było zbudowanie modelu danych w pliku Google Sheets, a następnie wizualizacja zmiany cen akcji w Tableau Public. Dlaczego akurat na takie rozwiązanie się zdecydowałem odpowiem na końcu artykułu. Wymagania co do danych, to cena zamknięcia z notowań od początku roku 2020 wszystkich spółek z indeksu WIG30. Google Sheets posiada wbudowaną funkcję Google Finance, która pobiera aktualne lub historyczne informacje o papierach wartościowych z biblioteki Google Finance.

Funkcja Google Finance – jak pozyskać dzięki niej dane?

Zatem otwieram nowy arkusz i pobieram historyczne ceny indeksów z WIG30, służy do tego oczywiście funkcja GOOGLEFINANCE.

Funkcja GOOGLEFINANCE – składnia:

=GOOGLEFINANCE(ticker, [attribute], [start_date], [num_days|end_date], [interval])

[ticker]: Symbol tickera dla bezpieczeństwa do rozważenia.

[attribute]: (Opcjonalnie) – cena domyślnie – atrybut pobiera informacje o tickerze z Google Finance.

[start_date]: (Opcjonalnie) – Data rozpoczęcia pobierania danych historycznych.

[end_date|num_days]: (Opcjonalnie) – Data końcowa pobierania danych historycznych lub liczba dni od start_date, za którą należy zwrócić dane.

[interval]: (Opcjonalnie) – Częstotliwość zwracanych danych; DZIEŃ lub TYGODNIOWO.

Listę dopuszczalnych atrybutów i przykładów znajdziecie oczywiście w dokumentacji Google Sheets.

Po wprowadzeniu odpowiednich parametrów zaczynają pojawiać się dane. Jako ticker wprowadziłem przedrostek WSE: tak aby funkcja odwołała się do notowań GPW, a nie domyślnie NYSE.

Parametry danych z tickerem „WSE:”

Okazuje się jednak, że baza Google Finance jest niekompletna i nie zwraca notowań spółki CCC. Z pomocą przychodzi kolejna funkcja z rodziny IMPORT.

Jeśli nie korzystałeś/aś nigdy z funkcji IMPORT w arkuszach Google to koniecznie musicie się z nimi zapoznać. Są bardzo użyteczne jeśli chcemy pobrać plik, tabelę, listę, zakres arkusza do pliku.

Google Sheets zawiera dokładnie 5 funkcji typu IMPORT

IMPORTDATA

Importuje dane z danego adresu URL w formacie .csv (wartości rozdzielane przecinkami) lub .tsv (wartości rozdzielane tabulatorami).

IMPORTFEED

Importuje kanał informacyjny RSS lub ATOM.

IMPORTHTML

Importuje dane z tabeli lub listy w obrębie strony html.

IMPORTRANGE

Importuje zakres komórek z określonego arkusza kalkulacyjnego.

IMPORTXML

Importuje dane z różnych typów danych strukturalnych, w tym XML, HTML, CSV, TSV oraz kanałów informacyjnych RSS i ATOM XML

Na stronie biznesradar.pl znalazłem notowania spółki CCC w formacie tabeli, który idealnie nadaje się do pobrania dzięki funkcji IMPORTHTML.

W osobnym arkuszu wprowadziłem funkcję:

=IMPORTHTML(„https://www.biznesradar.pl/notowania-historyczne/CCC”;”table”;1)

Aktualnie wyświetlana tabela zawiera tylko określoną liczbę rekordów, ale dzięki paginacji jestem w stanie pobrać cały zakres danych, który mnie interesuje.

zastosowanie paginacji przy pobieraniu danych

Na koniec procesu przygotowania danych, oczywiście pozostaje scalenie obu arkuszy w jedną tabelę. Można to zrobić dzięki funkcji IMPORTRANGE.

Wystarczy podać odwołanie do pliku podając jego URL i adres zakresu w arkuszu. W moim przypadku będzie to zakres od komórki B3 do końca zakresu danych w kolumnie B. Pozwoli to dociągać nowe dane.

odwołanie do pliku z jego URL

Wizualizacja modelu zmian WIG30

Osobnym tematem jest przygotowanie wizualizacji, która finalnie prezentuje się następująco. Wykorzystanym tutaj technikom poświęcę osobny artykuł.

Na koniec odpowiem na pytanie dlaczego akurat wybrałem Google Sheets. Powodem jest możliwość automatycznej synchronizacji danych między Google Sheets, a wizualizacją opublikowaną na Tableau Public. Dashboard będzie prezentował dane aktualne zawsze na dzień poprzedni (Google Finance aktualizuje bazę raz na dobę). Publikując dashboard na Tableau Public wystarczy zaznaczyć ten mały box.

Publikacja dashboardu na Tableau Public

Aktualnie jest to jedyne dostępne rozwiązanie na automatyczną aktualizację danych w darmowej wersji Tableau. Dzięki tandemowi Google Sheets w połączeniu z darmowym narzędziem BI możemy stworzyć bezobsługowe narzędzie analityczne. Arkusze Google dają szerokie możliwości w zbieraniu i przetwarzaniu danych dlatego jeszcze nie raz po nie sięgniemy w naszych artykułach. Szczególnie teraz w czasie kryzysu na rynkach finansowych, który spędza sen z powiek posiadaczom walorów giełdowych, ale daje też możliwość dokonania okazjonalnych zakupów. Ten przykład dashboardu do analizy zmienności cen akcji polskich blue chip-ów ułatwia szybkie wyciągnięcie wniosków z danych. Wszystko jest widoczne na jednej stronie, polecam tzw. one pager w połączeniu z danymi z sieci. Buduję dashborady gdy chcę odzyskać orientację, niezależnie od tego czy interesują mnie dane giełdowe czy jakiekolwiek inne dane open source, dobrze je mieć pod ręką.

Jeżeli potrzebujesz wizualizacji w Looker Studio, Tableau czy Power BI możemy się tym zająć. Jeżeli potrzebujesz dowiedzieć się jak sprawić by Twoja wizualizacja danych z Google Sheets czy innego zbioru danych, odpowiadała na nowe, coraz liczniej napływające pytania, zarejestruj swój udział w bezpłatnej konsultacji. Możesz przygotować nurtujące Cię pytania do danych, a my pokażemy Ci na przykładzie, jak w prosty sposób ulepszyć Twoją wizualizację. Przed konsultacją rozważ też pobranie bezpłatnej wersji próbnej – Tableau trial.

Jeżeli chcesz dowiedzieć się więcej o możliwościach Business Intelligence w zakresie analizy finansowej, to sprawdź artykuł na naszym blogu.

,
No items found.