Jak obliczać wskaźniki techniczne w BigQuery za pomocą SQL – średnie kroczące, RSI, MACD

Jak obliczać wskaźniki techniczne w BigQuery za pomocą SQL – średnie kroczące, RSI, MACD

Wykresy w Looker Studio
Wskaźniki techniczne są podstawowymi narzędziami, których używają traderzy i analitycy giełdowi próbując przewidzieć trendy cenowe, momentum i potencjalne punkty zwrotne na rynkach finansowych.
Większość z nich obliczana jest na podstawie danych historycznych, a konkretniej kursów zamknięcia spółek giełdowych z danego dnia.
Wskaźniki mogą ułatwić przewidywanie cen akcji lub kryptowalut oraz umożliwić ewentualną identyfikację fazy wykupienia lub wyprzedania rynku.
W tym wpisie mam zamiar wyjaśnić, jak oblicza się popularne wskaźniki techniczne w BigQuery za pomocą języka manipulacji danych SQL i omówić ich znaczenie w analizie giełdowej.

Spis treści

Zrozumienie wskaźników technicznych

Średnie kroczące, czyli Moving Averages (MA)

Średnia krocząca to jeden z najczęściej używanych wskaźników w analizie inwestycyjnej. Pozwalają uporządkować dane cenowe i zidentyfikować trendy występujące w danym okresie. Najpopularniejsze średnie kroczące to:
Średnia krocząca jest obliczana na podstawie średniego kursu zamknięcia akcji w określonej liczbie dni poprzedzających dzień, na który wskaźnik jest wyliczany.
Dla przykładu jeśli chcemy podać średnią krocząca na dzisiaj danego aktywa dodajemy ceny zamknięcia z siedmiu ostatnich dni poprzedzających dzień dzisiejszy i dzielimy przez 7.

Wskaźnik siły względnej, czyli RSI (Relative Strength Index)

Wskaźnik siły względnej (RSI) jest to oscylator momentum, który mierzy szybkość i zmiany ruchów kursu spółki. Oscyluje on w przedziale od 0 do 100 i służy zazwyczaj do identyfikacji stanów wykupienia i wyprzedania na rynku akcji.
RSI(24) jest obliczany w następujący sposób:
RSI(24) = 100 – (100 / (1 + (Średni zysk / Średnia strata)))
Gdzie:

Wskaźnik analizy zbieżności i rozbieżności średnich kroczących, czyli MACD (Moving Average Convergence Divergence)

MACD jest wskaźnikiem dynamiki trendów, który pokazuje związek pomiędzy dwiema średnimi kroczącymi. Na wskaźnik ten składają się następujące elementy:
MACD jest używany do identyfikowania zmian trendu oraz potencjalnych szans na kupno/sprzedaż.

Wstęgi Bollingera

Na wstęgi Bollingera składa się środkowa wstęga (MA) oraz dwie zewnętrzne wstęgi, które są odchyleniami standardowymi od środkowej. Rozchodzą się one i zbliżają w zależności od zmienności rynku. Wstęgi Bollingera są pomocne w identyfikowaniu wykupienia i wyprzedania rynków oraz potencjalnych przebić cenowych.

Znaczenie wskaźników technicznych w przewidywaniu cen akcji

Wskaźniki techniczne odgrywają istotną rolę w analizie i prognozowaniu odnośnie rynku akcji. Oto kilka kluczowych powodów, dla których są ważne:

Obliczanie wskaźników technicznych w BigQuery przy użyciu SQL

Aby móc obliczyć wskaźniki techniczne w pierwszej kolejności musimy się upewnić, że posiadamy odpowiednie dane.
Ja na potrzeby tekstu przygotowałem dane historyczne dla spółek Google oraz Microsoft pobrane z portalu Yahoo Finance.
Moja Tabela wsadowa posiada następujące dane:
Tabela BigQuery
Potrzebować więc będziemy wymiary: Nazwa Spółki oraz Data, oraz związane z nimi miary: kurs otwarcia, kurs zamknięcia, najwyższy i najniższy kurs z danego dnia, oraz wolumen obrotu.
Poniżej znajduje się gotowe zapytanie, które utworzy widok w Google BigQuery.
				
					create or replace view `primal-monument-358918.Blog.daily_indicators` as
WITH ceny AS
( SELECT   Stock,Date,Open,High,Low,Close,Volume,

AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS ma7,

AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 29 PRECEDING AND CURRENT ROW) AS ma30,

AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 99 PRECEDING AND CURRENT ROW) AS ma100,

AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 199 PRECEDING AND CURRENT ROW) AS ma200,

SUM(CASE WHEN Close > Open THEN Close - Open ELSE 0 END) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW) AS gain,

SUM(CASE WHEN Open > Close THEN Open - Close ELSE NULL END) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW) AS loss,

MAX(High) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW) AS highest,

MIN(Low) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW) AS lowest,

(AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 11 PRECEDING AND CURRENT ROW) - AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW)) AS macd

FROM `primal-monument-358918.Blog.ceny_gieldowe`),

wskazniki  AS (

SELECT stock,Close,volume,date,ma7,ma30,ma100,ma200,(100 - (100 / (1 + (gain / loss)))) AS rsi,Macd,
(CASE WHEN STDDEV_POP(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW) = 0 THEN NULL ELSE ((Close - AVG(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW)) / STDDEV_POP(Close) OVER (PARTITION BY stock ORDER BY date ROWS BETWEEN 23 PRECEDING AND CURRENT ROW)) END)

AS bollinger_band

FROM ceny)

SELECT

Stock,Close,volume,date,ma7,ma30,ma100,ma200,rsi,macd,bollinger_band,
ABS(ma200 - Close) ma200_reach,

ABS(ma100 - Close) ma100_reach,

ABS(ma30 - Close) ma30_reach,

ABS(ma7 - Close) ma7_reach,

FROM wskazniki

				
			
W pierwszej kolejności podzapytaniem “ceny” wyliczamy średnie ruchome używając funkcji typu window a następnie poszczególne wskaźniki na podstawie tych cen wyliczamy podzapytaniem “wskazniki”.
Końcowa część zapytania SELECT zbiera wszystkie obliczone wskaźniki i dodatkowe parametry do dalszej analizy.
Końcowy rezultat powinien wyglądać mniej więcej tak:
Tabela BigQuery
Kolejnym krokiem może być wizualizacja danych. Do tego rekomenduję Looker Studio – darmowe narzędzi typu Business Intelligence, w którym możecie stworzyć swoje własne portfolio inwestycyjne oraz arkusz do analizy technicznej, który pozwoli wam na bieżąco śledzić najważniejsze wskaźniki dla wybranej spółki.
Gotowe narzędzie do analizy
Mam nadzieję, że powyższy wpis pomógł wam lepiej zrozumieć czym są wskaźniki w analizie technicznej i przede wszystkim jak je wyliczyć w BigQuery.
Jeśli chcesz dowiedzieć się o tym jak nasza firma pomaga innym firmom tworzyć nowoczesny stack analityczny przy użyciu BigQuery – kliknij tutaj.
Ikona plików cookies

Ustawienia plików cookies

Używamy plików cookies, aby zapewnić Ci najlepsze wrażenia z korzystania z naszej strony. Możesz wybrać, które pliki cookies chcesz zaakceptować.
Ikona plików cookies

Informacje o plikach cookies

Szanujemy Twoją prywatność

Używamy plików cookies lub podobnych technologii w celu zapewnienia Ci dostępu do serwisu, usprawniania jego działania, profilowania i wyświetlania treści dopasowanych do Twoich potrzeb. W każdej chwili możesz zmienić ustawienia plików cookies lub podobnych technologii poprzez zmianę ustawień prywatności w przeglądarce bądź aplikacji lub zmianę swoich preferencji w zakładce Ustawienia cookies w stopce strony. Pamiętaj, że zmiana ta może spowodować brak dostępu do niektórych funkcji serwisu.
Dane osobowe dotyczące korzystania z serwisu, w tym zapisywane i odczytywane z plików cookies lub podobnych technologii będą przetwarzane w celu zapewnienia dostępu do serwisu, w celach marketingowych, w tym profilowania, w celach wewnętrznych związanych ze świadczeniem usług oraz prowadzeniem działalności gospodarczej, w tym dowodowych, analitycznych i statystycznych, wykrywania i eliminowania nadużyć oraz w celu wykonywania obowiązków wynikających z przepisów prawa.
Przysługuje Ci prawo do dostępu do danych, ich usunięcia, ograniczenia przetwarzania, przenoszenia, sprzeciwu, sprostowania oraz cofnięcia zgód w każdym czasie. Szczegółowe informacje dotyczące przetwarzania danych oraz przysługujących Ci uprawnień, informacje dotyczące plików cookies lub podobnych technologii, w tym dotyczące możliwości zarządzania ustawieniami prywatności, znajdują się w Polityce Prywatności.