Metodologie

Dlaczego złoto, dlaczego kwartał, jak liczone są sygnały i co jest policzone na tej migawce, a co pozostaje koncepcją.

Dlaczego złoto jako miara

Złoty i dolar są jednostkami zmiennej wartości. Złoto liczone w gramach jest tu miarą, nie walutą: cena spółki w gramach złota mówi, czy jej wartość rośnie względem aktywa, które samo w sobie nie generuje zysku ani odsetek, tylko trzyma się jako punkt odniesienia. Stąd na każdym wykresie porównawczym pozioma linia 1 000 g Au.

cena_w_zlocie(t) = cena_PLN(t) ÷ cena_zlota_PLN_za_gram(t)

Liczę przykład z wczytanej migawki...

-

Dlaczego kwartał

Sygnał liczony na świecach miesięcznych zmienia znak dużo częściej niż ten sam sygnał na świecach kwartalnych, na tych samych danych. Więcej zmian sygnału oznacza więcej decyzji, więcej obrotu i więcej prowizji do zapłacenia za ten sam kierunek. Okno decyzyjne raz na kwartał jest wyborem częstotliwości, nie estetyki.

Zmiany M
-
Zmiany Q
-
Stosunek
-

Zmiany znaku sygnału trend (close > SMA4) na miesiącach wobec kwartałów, per spółka, największe różnice.

Sygnały techniczne

Trend

Cena zamknięcia świecy kwartalnej w złocie jest wyżej niż jej własna średnia krocząca z 4 ostatnich kwartałów (rok).

trend = close(Q) > SMA4(close(Q))

Momentum 12 minus 1

Zwrot z ostatnich 12 miesięcy w złocie, liczony na świecach miesięcznych, licznik i mianownik to zamknięcia miesięcy sprzed 1 i sprzed 12 miesięcy od bieżącej daty. Gdy historia miesięczna jest za krótka, zastępczo bierzemy zwrot 4 kwartałów wstecz na świecach kwartalnych.

momentum12_1 = close_M(t−1) ÷ close_M(t−12) − 1
fallback: close_Q(t) ÷ close_Q(t−4) − 1

Wybicie, kanał Donchiana 8 kwartałów

Zamknięcie bieżącego kwartału przebija maksimum ze szczytów (high) ośmiu poprzednich kwartałów, bez uwzględnienia bieżącego.

breakout = close(Q) > max(high(Q_t-8 .. Q_t-1))

Ocena, 0 do 3

Suma trzech testów binarnych: trend, momentum dodatnie, wybicie. Do koszyka wchodzą spółki z oceną powyżej progu ustawionego w laboratorium i w ustawieniach (domyślnie 2).

score = [trend] + [momentum12_1 > 0] + [breakout], score ∈ {0,1,2,3}

RSI kwartalne, pomocniczo

RSI metodą Wildera liczone na 4 kwartałach zamknięć (nie standardowe 14 okresów, bo tu okresem jest kwartał), pokazywane jako dodatkowa informacja, nie wchodzi do oceny 0 do 3. Liczone tylko gdy jest co najmniej 6 zamknięć kwartalnych w historii.

RSI = 100 − 100 ÷ (1 + średni_zysk / średnia_strata), n = 4

Weto fundamentalne

Zasada: weto tylko blokuje wejście do koszyka, nigdy go nie wymusza. Spółka z dobrą oceną techniczną, ale zawetowana fundamentalnie, jest pomijana; brak weta niczego nie kupuje samo z siebie, decyduje wciąż sygnał techniczny.

Pola planowane pod weto: wskaźnik cena do zysku (C/Z), poziom zadłużenia, polityka dywidendowa.

Sprawdzam dane...

Okno decyzyjne i plomba

Okno jest otwarte przez 7 dni kalendarzowych od pierwszej sesji giełdowej po zamknięciu kwartału. W tym oknie aplikacja pokazuje bieżące sygnały i proponowaną alokację do zatwierdzenia. Poza oknem sygnały są policzone, ale zaplombowane, w bloku wyszarzonym z ikoną kłódki, do dnia kolejnej decyzji. Dane dzienne i miesięczne są cały czas widoczne, ale jako zwijany "szum", nie jako podstawa decyzji.

Liczę stan okna...

Czego nauczyły nas OpenBB, Qlib i vnpy

Ranking po gwiazdkach z api.github.com, stan 20.09.2026 (spec sekcja 11).

OpenBB

★ 73 274 licencja: własna (w API GitHub: NOASSERTION)
  • Najbliżej naszej wyceny w innym aktywie: moduł relative_rotation.py dzieli cenę przez benchmark.
  • Jedyne z trzech z interwałem kwartalnym dla świec (przez yfinance, 1Q).
  • 25 ustandaryzowanych endpointów fundamentalnych, wzorzec dla filtra warunkowego, czyli naszego weta.
  • Przenosimy: składany pulpit z niezależnych widżetów.

Microsoft Qlib

★ 48 679 licencja: MIT
  • Operator ChangeInstrument pozwala zbudować cechę $close/ChangeInstrument('GOLD',$close), najbliżej naszej idei wyceny w złocie.
  • Freq zna min/day/week/month, nie zna kwartału jako częstotliwości decyzji.
  • Alpha158/Alpha360 to wyłącznie cena i wolumen, brak pojęcia weta fundamentalnego.
  • Przenosimy: panel pięciu metryk (zwrot roczny, obsunięcie, IC, obrót, information ratio).
  • Kandydat na silnik badawczy na później, po zbudowaniu własnego magazynu danych GPW ze złotem jako instrumentem, do makiety nie jest potrzebny.

vnpy

★ 45 448 licencja: MIT
  • SpreadData.price_formula liczy iloraz przez eval, najbliższy odpowiednik dzielenia przez inne aktywo.
  • BarGenerator zna tylko minuty, godziny i dni, nie zna kwartału.
  • Nie zna pojęcia weta fundamentalnego.
  • Brak dedykowanego providera GPW, sprawdzone na około 81 repozytoriach organizacji.
  • Przenosimy: kartę statystyk backtestu z krzywą kapitału i obsunięcia, log decyzji jak LogMonitor, bezpiecznik limitu wartości zlecenia.

Co jest koncepcją, a co policzone

Policzone, z danych na tej migawce

  • Sygnały techniczne (trend, momentum, wybicie, ocena, RSI kwartalne) liczone funkcją AURUM.universeSignals.
  • Backtest kwartalny i miesięczny, krzywe kapitału, statystyki i decyzje, funkcją AURUM.backtest.
  • Koszt szumu, liczba zmian sygnału M wobec Q, funkcją AURUM.noise.

Koncepcja, poza zakresem makiety

  • Weto fundamentalne: mechanizm zaprojektowany, pola danych jeszcze nie istnieją w migawce.
  • Rynek USA: architektura danych ma pole "giełda" pod rozbudowę, dane i pobieranie nie są podłączone.
  • Egzekucja zleceń u brokera, powiadomienia i logowanie: świadomie poza zakresem tej makiety.