Skip to content

konjas/stooq-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stooq-proxy

Lekki serwer Node.js + SQLite pośredniczący między Stooq a PortfolioPerformance.

Problem który rozwiązuje

Stooq wyłączyło endpoint /q/l/ (używany przez PP jako JSON feed). Nowy endpoint /q/d/l/ zwraca CSV z kluczem API — ten serwis pobiera te dane i wystawia je jako JSON kompatybilny z PortfolioPerformance.


Szybki start

1. Uzyskaj API key ze Stooq

Otwórz w przeglądarce:

https://stooq.pl/q/d/?s=fcps&get_apikey

Rozwiąż captcha. Na dole strony pojawi się link do CSV zawierający apikey=XXXX. Skopiuj wartość klucza.

2. Wypełnij config

Edytuj stooq-proxy/config.yaml:

api_key: "TWÓJ_KLUCZ"
tickers:
  - fcps   # Cyfrowy Polsat futures
  - fcdp   # CD Projekt futures
  - fzab   # Żabka futures
  - fasb   # Asseco futures
  - fdin   # Dino futures

Symbole futures na GPW mają format F + skrót akcji (bez numeru serii — Stooq automatycznie zwraca front-month). Sprawdź symbol pod adresem https://stooq.pl/q/?s=SYMBOL.

3. Uruchom

docker compose up -d stooq-proxy

Przy pierwszym starcie (pusta baza) serwis automatycznie pobiera pełną historię.


API

GET /status

Health-check. Zwraca listę tickerów i czasy ostatniego odświeżania.

GET /quotes/:ticker

Główny endpoint dla PortfolioPerformance.

Parametry query:

Param Opis
from Data od (YYYY-MM-DD), opcjonalny
to Data do (YYYY-MM-DD), opcjonalny
refresh 1 = pobierz przed odpowiedzią

Przykład odpowiedzi:

{
  "ticker": "FCPS",
  "quotes": [
    { "date": "2025-01-02", "open": 14.50, "high": 14.80, "low": 14.30, "close": 14.65, "volume": 1200 },
    { "date": "2025-01-03", "open": 14.70, "high": 15.00, "low": 14.60, "close": 14.95, "volume": 980 }
  ]
}

GET /refresh/:ticker

Pobiera kurs dla jednego tickera (on-demand).

POST /refresh

Uruchamia pełne nocne odświeżanie natychmiast (bez body).


Konfiguracja PortfolioPerformance

Dla każdego kontraktu futures:

  1. Otwórz właściwości papieru wartościowego

  2. Zakładka Historical Prices

  3. Provider: JSON

  4. URL:

    http://stooq-proxy:8080/quotes/FCPS?refresh=1
    

    (z sieci hosta: http://localhost:8081/quotes/FCPS?refresh=1)

  5. Path to date: $.quotes[*].date

  6. Path to close: $.quotes[*].close

  7. Date format: yyyy-MM-dd

Dzięki ?refresh=1 PP automatycznie dociąga kurs bieżącego dnia przy każdym odpytaniu (nie tylko po nocnym odświeżaniu).


Harmonogram

  • Nocne odświeżanie: 02:30 Europe/Warsaw (konfigurowalne przez nightly_hour/nightly_minute w config.yaml)
  • On-demand: każde zapytanie z ?refresh=1

Struktura plików

stooq-proxy/
├── Dockerfile
├── server.js
├── package.json
├── config.yaml       ← edytujesz
└── data/             ← montowany jako volume, tu jest baza SQLite

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors