Analiza danych

Odzyskać czas analityka

Analityk giełdowy · Finanse / analiza inwestycyjna

Fragment wykresu analitycznego 'kółko i krzyżyk

Wyzwanie

Wyobraźmy sobie analityka giełdowego i jego najcenniejsze narzędzie – autorską metodę analizy spółek, dopracowywaną latami. A teraz wyobraźmy sobie, że ta metoda jest uwięziona w kilkudziesięciu osobnych plikach Excela. Każda aktualizacja notowań to godziny żmudnej, ręcznej pracy: otwórz plik, pobierz dane, wklej, sprawdź, zamknij. I tak kilkadziesiąt razy.

Taka była rzeczywistość mojego klienta. Genialny system analityczny tonął w morzu nieefektywności. Czas, który powinien iść na analizę i decyzje, uciekał na walkę z arkuszami – z ryzykiem kosztownych pomyłek. Moim zadaniem nie było napisanie kolejnego makra, ale przeprojektowanie całego procesu od podstaw.

Co zrobiłam

Architektura: od chaosu do ekosystemu. Dziesiątki plików-wysp nie potrafiły ze sobą rozmawiać. Zbudowałam zintegrowany ekosystem „master-slave”: jeden plik-matka jako centrum dowodzenia (zarządza całym portfelem, operacje hurtowe, kluczowe dane w jednym miejscu) i pliki-córki – każda spółka ma swój plik analityczny, przebudowany i podłączony do matki. Zamiast otwierać dziesiątki plików, klient zarządza wszystkim z jednego panelu.

Inteligentna aktualizacja. Zamiast za każdym razem ściągać pełną, wieloletnią historię notowań, każdy plik-córka najpierw sprawdza, jaka jest ostatnia data w arkuszu, łączy się ze źródłem (Stooq.pl) i pobiera tylko brakujące dane – od następnego dnia do dziś. Proste, ale genialne: czas aktualizacji jednego pliku spadł z minut do sekund.

Sub AktualizujDane_Stooq()
    ' Inteligentna aktualizacja danych ze Stooq.pl
    Dim symbol As String, wsDane As Worksheet, ostatniWiersz As Long
    Dim dataOd As String, dataDo As String
    Set wsDane = ThisWorkbook.Worksheets("Dane")
    symbol = ThisWorkbook.Worksheets("Panel").Range("Symbol_Spolki").Value
    ostatniWiersz = wsDane.Cells(wsDane.Rows.Count, "A").End(xlUp).Row
    If ostatniWiersz < 2 Then ' arkusz pusty -> pobierz 10 lat
        dataOd = Format(DateAdd("yyyy", -10, Date), "yyyymmdd")
    Else ' są dane -> pobierz tylko od ostatniego dnia
        dataOd = Format(wsDane.Cells(ostatniWiersz, "A").Value + 1, "yyyymmdd")
    End If
    dataDo = Format(Date, "yyyymmdd")
    PobierzIDopiszNoweDane symbol, dataOd, dataDo, wsDane
End Sub

Efekt

Proces, który potrafił zająć kilka godzin, sprowadza się teraz do kilku minut i dwóch kliknięć. Ryzyko błędu przy kopiowaniu – wyeliminowane. Ale najważniejszy efekt jest ludzki: klient odzyskał swój najcenniejszy zasób – czas. Może go poświęcić na to, co jest istotą jego pracy: analizę i świadome decyzje. Przestał być niewolnikiem narzędzia – teraz narzędzie pracuje dla niego.

Ten projekt pokazuje, że moja praca to nie pisanie pojedynczych skryptów, ale projektowanie systemów, które realnie zmieniają sposób pracy. Nawet w tak powszechnym narzędziu jak Excel drzemie moc do budowania zaawansowanych aplikacji biznesowych.

Post scriptum: bo świat się zmienia

Stan na 6 lipca 2026.

Jakiś czas po wdrożeniu Stooq zmienił sposób autoryzacji swojego API – i część pobierania danych przestała działać. To zupełnie normalne: zewnętrzne serwisy się zmieniają, a każda aplikacja, która z nich korzysta, prędzej czy później wymaga drobnej korekty. Trzeba było przepisać fragment odpowiedzialny za łączenie ze źródłem i dopasować go do nowych zasad.

Dobrze o tym pamiętać, planując własne narzędzie: to nie jest jednorazowy strzał, tylko coś, co żyje razem ze światem wokół. Właśnie po to jest utrzymanie – żeby taka zmiana była kwestią krótkiej poprawki, a nie powrotu do ręcznej roboty.

Wróć do realizacji

Masz projekt do omówienia?

Napisz, o co chodzi - nie musi być technicznie, od tego jestem ja. Odezwę się i powiem wprost, czy i jak mogę pomóc.