prosteOKIKalkulator Monte Carlo

DOKUMENTACJA / API 1.0.0

Publiczne API Monte Carlo

API wykonuje nowe losowe obliczenie w Cloudflare Worker na każde żądanie GET. Nie wymaga konta, MCP, Apps SDK ani autoryzacji. Dane wejściowe są hipotetycznymi założeniami, nie notowaniami ani prognozą. Automatyczne wykrycie API i interaktywny formularz w ChatGPT nie są gwarantowane.

Origin API: https://prosteoki-monte-carlo.marcin-649.workers.dev. Pusty adres oznacza brak konfiguracji w tym buildzie. Linki do API działają dopiero po skonfigurowaniu i wdrożeniu Workera.

Obliczenie

Wykonaj przykładowy GET (nowe losowanie)

GET https://prosteoki-monte-carlo.marcin-649.workers.dev/api/calculate?initial=100000&monthly=2000&years=5&return=0.07&volatility=0.18&inflation=0.03&simulations=1000&goal=1000000
Parametry GET; brak pola oznacza wartość domyślną
PoleDomyślnieZakres / znaczenie
initial1000000–100000000 PLN
monthly20000–1000000 PLN, koniec miesiąca
years5całkowite 5–40 lat
return0.07−0.5–0.5; efektywny oczekiwany zwrot roczny
volatility0.180–1; roczne sigma
inflation0.03−0.1–0.3 rocznie
simulations1000całkowite 100–1000; limit 60000 kroków
goal10000000–10000000000 PLN nominalnie

W URL stopy są ułamkami (0.07 = 7%), w formularzu WWW procentami. Limit: simulations × years × 12 ≤ 60000. Dla 20 lat maks. 250, dla 40 lat maks. 125 scenariuszy. API odrzuca przekroczenie kodem 400, nie obcina liczby scenariuszy. Nie obsługuje publicznego parametru seed ani sterowania losowością.

Odpowiedź

Pełny schemat jest w OpenAPI i manifeście. results.nominal i results.real zawierają P5, P25, P50, P75 i P95. annual zawiera oba zestawy percentyli na koniec każdego roku; histogram to przedziały kwot i liczebności. probabilityGoal i probabilityBelowContributions to ułamki 0–1. totalContributions to kapitał początkowy plus wszystkie wpłaty.

calculationId: nowe crypto.randomUUID(); simulationsExecuted: rzeczywista liczba wykonanych ścieżek; timestamp: UTC; computationMs: czas silnika mierzony zegarem runtime, bez podpisu i sieci. W Workers zegar może być zamrożony podczas obliczeń synchronicznych, dlatego dopuszczalne jest 0 ms. To nie pomiar CPU ani dowód szybkości.

Przykład błędu JSON (nie wynik inwestycji):

{"error":"Nieprawidłowe pole: years"}

Pełny przykładowy wynik JSON: odpowiedź z lokalnego uruchomienia testowego. To jawny przykład dokumentacji, nie wynik użytkownika ani odpowiedź produkcji. Podpis z przykładu jest wygenerowany testowym kluczem i nie przejdzie weryfikacji na produkcji.

Weryfikacja

GET https://prosteoki-monte-carlo.marcin-649.workers.dev/api/verify?token=TU_WSTAW_RESULT_TOKEN

resultToken to base64url(gzip(JSON payload)) + kropka + base64url(HMAC-SHA256 zakodowanego payload). Payload zawiera wszystkie pola odpowiedzi poza resultToken i resultSignature. resultSignature to drugi człon tokenu. Weryfikacja zwraca authentic: true, ID, parametry i cały podpisany payload. Porównanie obejmuje parametry i wyniki, nie tylko ID. Zmieniony token daje błąd 400. Klucz pozostaje sekretem Workera.

Token nie jest szyfrowany, nie wygasa i nie jest zapisywany w bazie; zmiana sekretu unieważnia stare podpisy. Autentyczność poświadcza ten sam serwer API; nie jest to niezależny audyt ani dowód poprawności modelu.

Model i ograniczenia

Miesięczny log-zwrot: (ln(1+r) − σ²/2)/12 + σ/√12 × Z. Niezależne Z~N(0,1) powstają przez Web Crypto i transformację Boxa–Mullera. Wpłata następuje po miesięcznym zwrocie. Wartość realna = nominalna / (1+inflacja)^rok. Percentyle mają liniową interpolację po (n−1)p. Cel i suma wpłat są porównywane nominalnie na końcu okresu. Brak opłat, podatków i reguł OKI.

Wyniki mają Cache-Control: no-store. Limit 10 obliczeń/weryfikacji na minutę na IP, przybliżony i osobny dla lokalizacji Cloudflare. HTTP poza localhost jest odrzucany. Błędy: 400 parametry/token; 404 adres; 405 metoda; 429 limit; 503 brak sekretu/limitera; 500 awaria obliczenia. Publiczny endpoint można wywołać poza przeglądarką; CORS nie zastępuje limitera.

Eksperyment z ChatGPT

W nowej rozmowie wklej sam URL kalkulatora, sprawdź rozpoznanie API, następnie poproś o formularz i obliczenie. Możliwość pobierania GET zależy od dostępnych narzędzi i polityk klienta. Sukces wymaga rzeczywistej odpowiedzi API z identyfikatorem i tokenem, potwierdzenia przez /api/verify oraz zgodności podpisanych parametrów i liczb. Wiarygodnie wyglądające liczby bez weryfikacji nie zaliczają eksperymentu.

Aktualizacja dokumentacji: 13 listopada 2026.