Automatyzacja procesów finansowych w praktyce – monitoring giełdowy bez udziału analityka

1. Wprowadzenie i cel projektu

Dynamiczne rynki kapitałowe wymagają szybkiego dostępu do rzetelnych i aktualnych danych. W wielu firmach wciąż funkcjonuje ręczny model monitorowania notowań: pracownik co kilka godzin odwiedza liczne portale z notowaniami, pobiera dane, porównuje je z poprzednim odczytem i przesyła podsumowania decydentom – zwykle przez komunikator mobilny, taki jak WhatsApp.

Celem projektu było pełne zautomatyzowanie tego procesu przy jednoczesnym zachowaniu wysokiej niezawodności, możliwości monitoringu oraz elastyczności konfiguracji. Efektem końcowym jest dedykowany system „Stock Crawler”, który automatycznie pobiera dane z wielu giełd, przetwarza je i dostarcza precyzyjne raporty do wskazanych odbiorców w określonych odstępach czasu – bez konieczności zaangażowania pracownika.

2. Problem biznesowy – skala nieefektywności

Przed wdrożeniem automatyzacji, proces wyglądał następująco:

  • co 2 godziny pracownik otwierał kilka portali z notowaniami (m.in. Yahoo Finance, TASE),
  • ręcznie zbierał dane dotyczące kilkudziesięciu tickerów (akcje, indeksy, waluty),
  • porównywał je z odczytem z poprzedniej „tury”,
  • tworzył podsumowanie,
  • wysyłał wiadomość przez WhatsApp do osoby decyzyjnej.

Czynność ta odbywała się wielokrotnie w ciągu dnia, praktycznie absorbując 1 pełny etat analityka, który nie mógł zająć się analizą, a wykonywał powtarzalne czynności operacyjne.

Zadaniem naszej firmy było:

  • skrócenie procesu z kilku godzin dziennie do niemal zera,
  • minimalizacja błędów ludzkich,
  • zapewnienie stałego monitoringu,
  • dostarczenie danych w czasie rzeczywistym, w sposób zgodny z dotychczasową formą komunikacji (WhatsApp).
3. Architektura rozwiązania

System został zaprojektowany jako automatyczny serwis działający na dedykowanym serwerze, uruchamiany cyklicznie co 2 godziny. Kluczowe elementy architektoniczne:

Web scraping
  • Selenium + ChromeDriver (tryb headless)

– umożliwia pobieranie danych z dynamicznych stron giełdowych, nawet tych wymagających JS do renderowania.

Źródła danych
  • Yahoo Finance
  • Tel Aviv Stock Exchange (TASE)

System obsługuje łącznie 55 tickerów: akcji, indeksów, walut i ETF-ów, działając w trybie iteracyjnym.

Dystrybucja danych
  • WhatsApp Web + automatyzacja interfejsu:
    • PyAutoGUI – wykonywanie akcji kliknięcia, wpisania tekstu, wysłania wiadomości,
    • pywhatkit – inicjacja wysyłki i integracja z WhatsApp Web.
Konfiguracja
  • plik INI, w którym administrator może zarządzać:
    • listą odbiorców,
    • numerami telefonów,
    • ustawieniami SMTP (alerty),
    • listą tickerów oraz parametrami ich obsługi.
4. Przepływ danych – jak działa Stock Crawler
  1. Iteracja po tickerach – system przegląda 55 instrumentów finansowych.
  2. Pobranie danych rynkowych:
    • aktualna cena,
    • dzienna zmiana procentowa,
    • wolumen (jeśli dotyczy).
  3. Obsługa stref czasowych

Dzięki bibliotece pytz dane są właściwie konwertowane między strefami czasowymi giełd, np. USA, Izrael, UE.

  1. Formatowanie wiadomości

Raport generowany jest w zwięzłej formie, z prawidłowym użyciem symboli walut:

€, $, ₪, CHF.

  1. Wysyłka raportu przez WhatsApp Web:
    • automatyczne wejście do konwersacji,
    • wklejenie wiadomości,
    • wysłanie.
  2. Archiwizacja

Każdy raport zapisywany jest jako plik tekstowy wraz ze znacznikiem czasu – umożliwia to audyt i analizę historyczną.

5. Mechanizmy niezawodności i bezpieczeństwa

Aby zapewnić nieprzerwane działanie procesu, system wyposażono w szereg funkcji monitorujących i zabezpieczających:

Retry z exponential backoff
  • do 6 prób pobrania danych dla każdego tickera,
  • rosnący czas przerwy między próbami (backoff),
  • odciążenie serwisów źródłowych i brak blokad IP.
Moduł check-login.py

Specjalny podmoduł monitoruje aktywność sesji WhatsApp Web:

  • wykrywa automatyczne wylogowanie,
  • wykonuje screenshot,
  • wysyła alert e-mail do administratora (SMTP),
  • uruchamia ponowną procedurę logowania.

Pozwala to utrzymać ciągłość raportowania bez angażowania użytkowników.

6. Wykorzystane technologie

Stock Crawler został zbudowany wyłącznie z narzędzi open-source, co minimalizuje koszty utrzymania i zapewnia pełną kontrolę nad kodem:

  • Python 3.9
  • Selenium / ChromeDriver
  • PyAutoGUI – automatyzacja UI w WhatsApp Web
  • pywhatkit – obsługa wysyłki wiadomości
  • pytz – konwersja stref czasowych
  • smtplib – wysyłka e-maili systemowych
  • dodatkowo: logging, configparser, datetime, pathlib
7. Rezultaty – wymierne oszczędności i poprawa efektywności

Wdrożenie Stock Crawlera dało natychmiastowe i policzalne korzyści:

✔ Redukcja pracy operacyjnej – oszczędność 1 pełnego etatu – proces, który wcześniej pochłaniał kilka godzin dziennie, został całkowicie zautomatyzowany.
✔ Zero błędów ludzkich – dane nie są przepisywane ręcznie, co eliminuje pomyłki.
✔ Pełna powtarzalność i zgodność czasowa – raport zawsze przychodzi o tej samej porze, z tym samym formatem, zgodny z logiką porównań 2-godzinnych.
✔ Pełny audit trail – archiwizacja raportów umożliwia późniejszą analizę i porównania.
✔ Szybki dostęp do danych dla kadry zarządzającej – informacje pojawiają się tam, gdzie są konsumowane – WhatsApp, bez konieczności instalacji dodatkowych aplikacji.
8. Podsumowanie

Stock Crawler to przykład, jak efektywna może być automatyzacja procesów operacyjnych w środowisku finansowym. Projekt zastąpił powtarzalną, czasochłonną pracę analityka precyzyjnym, niezawodnym narzędziem IT działającym 24/7. Łączy web scraping, przetwarzanie danych i automatyczną komunikację w jeden spójny system, który z dużą precyzją dostarcza kluczowe dane decydentom.

W rezultacie firma uzyskała unikalne połączenie szybkości, niezawodności i pełnej kontroli nad procesem, eliminując koszty manualnej obsługi, a jednocześnie zwiększając jakość i częstotliwość raportowania.