StockVS

Zasoby

Metodologia

Jak działa StockVS

StockVS działa w oparciu o zautomatyzowany potok danych: zbieranie danych, nocny build, automatyczne kontrole i publikację – każdy z tych etapów opisano poniżej.

Zbieranie danych

Dane rynkowe pochodzą z Yahoo Finance za pośrednictwem otwartoźródłowej biblioteki yfinance: dzienne ceny i wolumen, dywidendy, profile spółek i funduszy z kluczowymi statystykami, roczne rachunki zysków i strat dla akcji oraz największe pozycje w portfelu dla ETF-ów. Uwzględnione papiery wartościowe pochodzą z publicznych list spółek notowanych na giełdach amerykańskich i kanadyjskich; nagłówki wiadomości pochodzą z serwisu informacyjnego Finnhub. W przypadku kwitów depozytowych (ADR) kapitalizacja rynkowa to cena ADR pomnożona przez liczbę akcji równoważnych ADR, tak jak podaje ją Yahoo Finance; może się różnić od wartości spółki na jej rodzimym rynku, gdy ADR jest notowany z premią (na przykład TSM i SKHY).

Potok przetwarzania danych

Zadania zbierające zapisują ceny i profil każdego papieru wartościowego oraz nagłówki wiadomości dla akcji w bazie danych PostgreSQL. Każdej nocy build statycznej witryny renderuje każdą stronę na podstawie tej bazy danych, a automatyczne kontrole sprawdzają wynik; jeśli którakolwiek kontrola się nie powiedzie, nic nie jest wysyłane, a poprzednia wersja pozostaje online. Build, który przejdzie kontrolę, jest wysyłany do statycznego hostingu za siecią Cloudflare, po czym wczytywana jest losowa próbka nowych stron, aby potwierdzić, że odpowiadają.

Harmonogram aktualizacji

Ceny są zbierane każdego dnia sesyjnego po zamknięciu rynku, a nocny build zaczyna się, gdy zbieranie danych się zakończy, dzięki czemu strony zwykle pokazują tego samego wieczoru kurs zamknięcia z danego dnia; buildy weekendowe wykorzystują dane z ostatniej sesji. Profile spółek i kluczowe statystyki są odświeżane każdego dnia roboczego, skład portfeli ETF-ów oraz pełna historia cen ETF-ów co tydzień, a rachunki zysków i strat każdej spółki około raz na kwartał, przy nowej spółce w ciągu tygodnia od jej dodania. Nagłówki wiadomości dla akcji są odświeżane codziennie dla największych spółek, dla mniejszych co kilka dni. Jeśli zbieranie danych w dniu roboczym się nie powiedzie, build tego wieczoru się nie odbywa, poprzednia wersja pozostaje online, a system monitorujący wywołuje alarm.

Jak obliczane są wskaźniki

Stopy zwrotu za okresy kroczące, lata kalendarzowe i miesiące są obliczane na podstawie zapisanych dziennych kursów zamknięcia, skorygowanych przez Yahoo Finance o splity i dywidendy w momencie ich pobrania; zmienność to zannualizowane odchylenie standardowe dziennych stóp zwrotu. Kapitalizacja rynkowa, wskaźniki wyceny, marże, zysk na akcję i stopy dywidendy są pokazywane tak, jak podaje je Yahoo Finance, a wartość poza wiarygodnym zakresem nie jest wyświetlana. Wskaźniki zachowują swoją walutę sprawozdawczą, dolara amerykańskiego lub kanadyjskiego, i nigdy nie są przeliczane; sumy obejmujące obie waluty są podawane w rozbiciu na walutę. Porównania branżowe wykorzystują medianę branżową, a różnice między wartościami procentowymi są podawane w punktach procentowych.

Jak powstaje analiza

Analiza na stronach akcji i ETF-ów jest tworzona z wcześniej napisanych szablonów zdań w każdym obsługiwanym języku, wypełnianych liczbami z bazy danych. Brakujące dane powodują pominięcie zdania, a nie pozostawienie pustego miejsca. Szablony opisują dane oraz ich porównanie z medianą branżową, bez ocen, rekomendacji czy prognoz. Podczas budowania witryny nie działa żaden model językowy i żaden model nie pisze tekstu o pojedynczej akcji czy funduszu. Abstrakcyjne ilustracje przy niektórych nagłówkach wiadomości zostały jednorazowo wygenerowane przez model obrazu i nie przedstawiają treści tych wiadomości.

Kontrole jakości

Już podczas zbierania danych ceny są zapisywane tylko dla dni, w których był otwarty rynek właściwy dla danego papieru wartościowego, cena z danego dnia dopiero po zamknięciu sesji, a dzienna aktualizacja nie może zastąpić zapisanego kursu zamknięcia notowaniem na żywo. Skrócona nazwa z kanału danych nie może zastąpić zapisanej pełnej nazwy, a papiery wartościowe, które przestają dostarczać ceny, są oznaczane w raporcie z przebiegu. Na stronach cena, która nie jest już aktualna, pokazuje datę ostatniej transakcji, a spółki notowane podwójnie są liczone tylko raz.

Przed każdą nocną publikacją automatyczne kontrole odczytują gotową witrynę, stronę po stronie lub metodą próbkowania. Build musi być zbliżony rozmiarem do ostatniej opublikowanej wersji, zawierać co najmniej tyle stron, ile wymieniają jego mapy witryny, oraz mieć ceny na tyle aktualne, jak wymaga tego harmonogram. Dane strukturalne muszą być poprawnie sformułowane, daty cen muszą przypadać na dni sesyjne i nigdy w przyszłości, każda strona może mieć tylko jedną datę danych, a liczby i sumy muszą się zgadzać między stronami. Żadna tabela nie może wymieniać spółki dwa razy ani sumować różnych walut. Analiza i podsumowania list muszą być napisane w systemie pisma języka danej strony.

Znane ograniczenia

StockVS nie zapewnia notowań w czasie rzeczywistym: dane pochodzą z zamknięcia sesji, a niektóre strony mogą być spóźnione o jedną lub więcej sesji, gdy Yahoo Finance opublikuje kurs z opóźnieniem lub zbieranie danych się nie powiedzie. Wskaźniki są tylko tak dokładne, jak dane Yahoo Finance. Nie wszystkie wskaźniki finansowe są dostępne dla każdej akcji lub ETF-u. Dostępność danych historycznych różni się w zależności od tickera. Większość historii jest rozszerzana dzień po dniu, więc późniejsza korekta splitu lub dywidendy może nie sięgać starszych cen, a długoterminowe stopy zwrotu mogą różnić się od innych źródeł. Papiery wartościowe, które przestały być przedmiotem obrotu, zachowują swoje strony, a ostatnia cena jest oznaczona jako nieaktualna; opisy spółek pojawiają się tylko na angielskich stronach akcji.

Korekty

Błędy są wykrywane przez opisane wyżej automatyczne kontrole oraz podczas przeglądu opublikowanych stron. Każdy jest poprawiany u źródła – w danych, obliczeniach lub szablonie – a następna nocna przebudowa przenosi poprawkę na każdą dotyczącą jej stronę; korekty są odnotowywane w wewnętrznym systemie zgłoszeń projektu. Obecnie nie istnieje publiczny kanał do zgłaszania błędów.