3. Przykłady zastosowań sieci neuronowych w zadaniach biznesowych

3.3. Prognozowanie sygnałów kupna i sprzedaży spółek na giełdzie

Celem zastosowania sieci neuronowej w tej aplikacji jest określenie prawdopodobnej zmiany kursów akcji na giełdzie na podstawie danych dostarczonych na wejście sieci. Analiza zmian kursu akcji w określonym horyzoncie czasowym umożliwi inwestorowi podjęcie decyzji dotyczącej kupna lub sprzedaży tych akcji na giełdzie. Na rys. 13.3 przedstawiono przykładowy wykres zmian kursu spółki giełdowej PKOBP w kolejnych 120 dniach roku (krzywa ciągła) oraz kursu uśrednionego po 3 dniach. Rysunek dolny przedstawia wykres zmian współczynników kierunkowych a1 zmian wartości uśrednionych akcji wyznaczonych na podstawie 7-elementowej próby.

Rys. 13.3 Wykres kursu spółki PKOBP oraz współczynników nachylenia zmian tego kursu
Rys. 13.4 Wykres górny: wynik prognozy, wykres dolny: różnica pomiędzy wartością prognozowaną a rzeczywistą

Sygnały transakcji (kupna lub sprzedaży akcji) znajdują się w punktach przecięcia krzywej nachylenia kursu z osią czasu. Sygnał sprzedaży akcji jest generowany w momencie przecięcia osi czasu z malejącą krzywą nachylenia kursu, natomiast sygnał sprzedaży z krzywą rosnącą. W analizowanym okresie widocznych jest 15 następujących po sobie sygnałów kupna i sprzedaży. Porównując ceny kupna i sprzedaży w kolejnych punktach można wyznaczyć zysk na transakcji.

Najistotniejszym czynnikiem decydującym o jakości działania predyktora jest wybór zmiennych wejściowych dla sieci. Najprostszym, choć jednocześnie najmniej dokładnym rozwiązaniem jest predykcja na podstawie jedynie kursów akcji spółki w określonym horyzoncie czasowym (np. 30 dni). Większą dokładność można uzyskać biorąc pod uwagę szerszy zbiór parametrów dotyczących giełdy i otoczenia giełdowego, w tym

  • kursy akcji w minionych sesjach giełdowych

  • wolumen obrotów akcjami danej spółki,

  • wartość obrotu wszystkimi akcjami na giełdzie,

  • wartość i zmiana wartości indeksu WIG,

  • aktualne zmiany indeksów giełdowych na giełdzie amerykańskiej i wybranych giełdach azjatyckich.

Dla zapewnienia porównywalności poszczególnych zmiennych wejściowych dane te powinny podlegać pewnej standaryzacji i normalizacji. W związku z powyższym zamiast bezpośrednich kursów akcji na wejście sieci neuronowej podaje się zwykle stopy zwrotu kt zamiast bezpośredniej wartości kursu akcji definiowane wzorem


 k_t=\ln \left(\frac{K_t}{K_{t-1}}\right) (13.5)


W równaniu tym  K_t  oznacza kurs akcji dla t-tej sesji giełdowej wyrażony w złotych. W przypadku wolumenu obrotów akcjami danej spółki bierze się zwykle pod uwagę logarytm naturalny z tego wolumenu, czyli


v_t=\ln \left(V_t\right) (13.6)


gdzie  V_t  oznacza wolumen obrotów akcjami spółki w trakcie trwania sesji t-tej, wyrażony w złotych.

W przypadku indeksu WIG bierze się pod uwagę logarytm z jego wartości lub stopę zmian tego indeksu w dwu kolejnych sesjach


w_t=\ln \left(\frac{W I G_t}{W I G_{t-1}}\right) (13.7)


W przypadku całkowitych obrotów zanotowanych w trakcie sesji giełdowych preferuje się logarytm wartości względnej definiowany w postaci


O_t=\ln \left(\frac{3 O_t}{O_{t-1}+O_{t-2}+O_{t-3}}\right) (13.8)


W wyrażeniu tym  O_t  oznacza całkowite obroty giełdy w trakcie trwania t-tej sesji wyrażone w złotych.

Wielkość wyjściowa podlegająca predykcji może być ustalana w różny sposób. Najbardziej oczywistym jest bezpośrednie przewidywanie stopy zwrotu, czyli przyjęcie sygnału wyjściowego sieci neuronowej równego przewidywanej na następną sesję wartości stopu wzrostu, czyli


y_t=\ln \left(\frac{K_{t+1}}{K_t}\right) (13.9)

Przy znanej wartości wyjściowej  K_t  wartość  y_t  pozwala natychmiast określić spodziewaną stopę wzrostu akcji na następnej sesji.