Strasmore Research
Edukacja Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-07-24

Jak mierzy się miesięczne stopy zwrotu z akcji

Miesięczna stopa zwrotu zależy od wybranych cen, uwzględnienia dywidend oraz korekty o split. Analiza metodologii na podstawie rzeczywistych danych rynkowych.

Zapytanie o to, jak dana akcja „zachowała się w czerwcu”, może przynieść różne wyniki w zależności od źródła — wszystkie mogą być poprawne. Miesięczna stopa zwrotu z akcji zależy od czynników, które zazwyczaj pozostają niezauważone: które dwie ceny wyznaczają granice miesiąca, czy uwzględniono dywidendy oraz czy szereg cenowy został skorygowany o split. Niniejsza strona zestawia ze sobą różne konwencje na podstawie rzeczywistych danych rynkowych, aby wyjaśnić przyczyny powstających różnic.

Close-to-close: standardowa konwencja

Konwencja stosowana przez dostawców indeksów, w arkuszach danych funduszy oraz na większości stron z kwotowaniami: stopa zwrotu z miesiąca liczona jest od ostatniej ceny zamknięcia z poprzedniego miesiąca (sesja regulaminowa) do ostatniego zamknięcia w bieżącym miesiącu. Ostatnie zamknięcie maja stanowi punkt startowy dla czerwca. Obliczenia są proste — cena końcowa minus cena początkowa, podzielone przez cenę początkową. Przykład uproszczony: akcja, która kończy maj na poziomie 50,00 USD, a czerwiec na poziomie 53,50 USD, wygenerowała zwrot (53,50 − 50,00) ÷ 50,00 = 0,07, czyli 7% w skali miesiąca. Każda konwencja opisana na tej stronie dostarcza inne dane wejściowe do tego samego wzoru. Oto zestawienie dla czerwca 2026 roku, obok głównej alternatywy:

ZapytanieCzerwiec 2026: porównanie close-to-close vs open-to-close, NVDA i SPY
Dokładny kod SQL dla każdej liczby
SELECT ticker,
       round(argMaxIf(cl, day, day <= '2026-05-31'), 2) AS may_final_close,
       round(argMinIf(op, day, day >= '2026-06-01'), 2) AS june_first_open,
       round(argMaxIf(cl, day, day <= '2026-06-30'), 2) AS june_final_close,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
             / argMaxIf(cl, day, day <= '2026-05-31'), 2) AS close_to_close_pct,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
             / argMinIf(op, day, day >= '2026-06-01'), 2) AS open_to_close_pct,
       round(abs(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
                 / argMinIf(op, day, day >= '2026-06-01')
             - 100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
                 / argMaxIf(cl, day, day <= '2026-05-31')), 2) AS convention_gap_points
FROM (
    SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
)
GROUP BY ticker
ORDER BY ticker

Czerwiec dla NVDA wyniósł -5.39% w ujęciu close-to-close — ale -7.4% w ujęciu od pierwszego otwarcia sesji regulaminowej w czerwcu do ostatniego zamknięcia. Ta sama akcja, ten sam miesiąc, 2.01 punktów procentowych różnicy między tymi poprawnymi wynikami. Cała różnica wynika z jednego okna czasowego (noc + weekend): NVDA zamknęła maj na poziomie $211.15, a otworzyła czerwiec na poziomie $215.73 — ten skok należy do "czerwca" w konwencji open-to-close i do granicy w konwencji close-to-close. SPY wykazuje podobną strukturę w łagodniejszym ujęciu: -1.33% close-to-close kontra -1.2% open-to-close.

Żadna z tych liczb nie jest błędna. Close-to-close odpowiada na pytanie: "czego doświadczył inwestor utrzymujący pozycję przez granicę miesięcy?". Open-to-close odpowiada na pytanie: "jaki wynik dał handel w danym miesiącu osobie, która kupiła akcje na otwarciu w czerwcu?". Wyniki różnią się zawsze, gdy na granicy miesięcy występuje luka cenowa — a luki nocne są zjawiskiem rutynowym, a nie rzadkim.

Dywidendy: stopa zwrotu z ceny vs stopa zwrotu całkowita

Druga opcja: czy gotówka wypłacona przez akcje w danym miesiącu jest uwzględniana? Stopa zwrotu z ceny ją pomija; stopa zwrotu całkowita ją dolicza. W przypadku większości pojedynczych miesięcy różnica jest niewielka — płatnik kwartalny wypłaca około jednej czwartej swojej rentowności na kwartał — jednak w skali lat różnica ta narasta do ogromnych rozmiarów, a czerwiec 2026 roku był miesiącem wypłat dla SPY:

ZapytanieSPY czerwiec 2026 — price return vs total return (z uwzględnieniem dywidendy czerwcowej)
Dokładny kod SQL dla każdej liczby
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2026-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS jun_close
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
    )
    WHERE ticker = 'SPY'
),
dv AS (
    SELECT sum(cash_amount) AS div_per_share
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2026-06-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(may_close, 2) AS may_final_close,
       round(jun_close, 2) AS june_final_close,
       round(div_per_share, 4) AS june_dividend_per_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS price_return_pct,
       round(100 * div_per_share / may_close, 2) AS dividend_contribution_pct,
       round(100 * ((jun_close + div_per_share) - may_close) / may_close, 2) AS total_return_pct
FROM px CROSS JOIN dv

Czerwcowa stopa zwrotu z ceny dla SPY wyniosła -1.33%; po dodaniu dystrybucji w wysokości $1.9035 na akcję, która miała miejsce po dacie ex-dividend w tym miesiącu, stopa zwrotu całkowita wzrasta do -1.08% — co stanowi 0.25% wkładu z gotówki. Rodziny indeksów publikują oba rodzaje (cytowany "S&P 500" to zazwyczaj indeks ceny), strony z wynikami funduszy mają obowiązek wykazywać stopę zwrotu całkowitą, a skanery dowolnie mieszają oba wskaźniki. Gdy dwa źródła różnią się o kilka dziesiątych w przypadku miesiąca płatnika dywidend, dywidenda jest pierwszym podejrzanym — data ex-dividend decyduje o tym, do którego miesiąca przypisana jest płatność.

Pojedynczy czerwiec to zaledwie dziesiąte procenta. To horyzont czasowy oddziela obie konwencje — oto ta sama arytmetyka rozciągnięta na pięć lat:

ZapytanieSPY w ciągu pięciu lat, czerwiec 2021 – czerwiec 2026 — price return vs return z dywidendami
Dokładny kod SQL dla każdej liczby
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= '2021-06-28 04:00:00' AND window_start < '2021-07-01 08:00:00')
        OR (window_start >= '2026-06-26 04:00:00' AND window_start < '2026-07-01 08:00:00'))
    GROUP BY day
),
px AS (
    SELECT argMaxIf(cl, day, day <= '2021-06-30') AS start_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS end_close
    FROM daily
),
dv AS (
    SELECT round(sum(cash_amount), 2) AS divs_per_share,
           count() AS payments
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2021-07-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(start_close, 2) AS june_2021_close,
       round(end_close, 2) AS june_2026_close,
       divs_per_share AS dividends_paid_per_share,
       payments AS dividend_payments,
       round(100 * (end_close - start_close) / start_close, 2) AS five_year_price_return_pct,
       round(100 * ((end_close + divs_per_share) - start_close) / start_close, 2) AS five_year_return_with_divs_pct,
       round(100 * divs_per_share / start_close, 2) AS dividend_points_added
FROM px CROSS JOIN dv

Od zamknięcia w czerwcu 2021 roku na poziomie $428.07 do zamknięcia w czerwcu 2026 roku na poziomie $746.32, pięcioletnia stopa zwrotu z ceny SPY wynosi 74.35%. W tym samym okresie wypłacono 20 dystrybucji o łącznej wartości $34.07 na akcję; uwzględnienie tej gotówki podnosi wynik do 82.3% — co daje 7.96 punktów różnicy przed reinwestycją pojedynczej dywidendy. Prawdziwy indeks stopy zwrotu całkowitej reinwestuje każdą płatność w dniu ex-date, a reinwestowane akcje jeszcze bardziej powiększają tę różnicę. W przypadku dojrzałych płatników "duże marże" nie są jedynie zwrotem retorycznym; jest to domyślny efekt wieloletnich kwartalnych wypłat gotówki.

Cena zamknięcia skorygowana vs. cena zamknięcia surowa: pułapka podziału akcji

Większość narzędzi wykresowych — Yahoo Finance, Google Finance, większość aplikacji maklerskich — podaje cenę zamknięcia skorygowaną: historyczną serię cen, w której przeszłe notowania zostały podzielone zgodnie z podziałami akcji (a na niektórych platformach również skorygowane o dywidendy), aby umożliwić porównywanie danych w czasie. Nasza baza danych przechowuje kursy w formie rzeczywistych notowań. W typowym miesiącu obie wartości są zgodne. W miesiącu, w którym następuje podział akcji, dane te wskazują na skrajnie różne wyniki — przykładem jest podział akcji NVDA w stosunku 10-do-1, który miał miejsce 10 czerwca 2024 roku:

ZapytanieNVDA czerwiec 2024 — surowa stopa close-to-close vs stopa po korekcie o split
Dokładny kod SQL dla każdej liczby
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2024-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2024-06-30') AS jun_close
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMaxIf(toFloat64(close), window_start,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= '2024-05-29 04:00:00'
          AND window_start < '2024-07-01 08:00:00'
        GROUP BY day
    )
),
sp AS (
    SELECT split_to / split_from AS ratio
    FROM global_markets.stocks_splits
    WHERE ticker = 'NVDA'
      AND execution_date >= '2024-06-01'
      AND execution_date <= '2024-06-30'
)
SELECT round(may_close, 2) AS may_final_close_raw,
       round(jun_close, 2) AS june_final_close_raw,
       toInt32(ratio) AS shares_after_split_per_old_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS raw_price_change_pct,
       round(may_close / ratio, 2) AS may_close_split_adjusted,
       round(100 * (jun_close - may_close / ratio) / (may_close / ratio), 2) AS adjusted_return_pct
FROM px CROSS JOIN sp

W danych surowych cena NVDA „spadła” w czerwcu z $1097.46 do $123.41 — był to -88.75% spadek. Do takiej sytuacji nie doszło: w dniu realizacji podziału każda stara akcja stała się 10 nowymi akcjami, a cena została odpowiednio podzielona, co zachowało wartość kapitału każdego posiadacza. Po podzieleniu ceny zamknięcia z maja przez ten sam wskaźnik — $109.75 w ujęciu skorygowanym o podział — czerwiec 2024 roku wykazuje 12.45%, czyli wzrost. Każde źródło podające dane skorygowane raportuje wartość zbliżoną do drugiej liczby; naiwne obliczenia na surowych notowaniach wskazują pierwszą. Cena zamknięcia skorygowana jest najczęstszą przyczyną drastycznych rozbieżności między dwoma źródłami w zakresie historycznej stopy zwrotu w miesiącu — jeśli dana wartość wydaje się niemożliwie wysoka w dowolnym kierunku, w pierwszej kolejności należy sprawdzić kalendarz podziałów akcji.

Która cena „zamknięcia” jest właściwa?

W konwencjach kryje się kolejna granica: sama cena zamknięcia. Liczba używana w każdym arkuszu danych to oficjalny wynik z aukcji zamknięcia — pojedyncza cena ustalona przez aukcję zamknięcia o godzinie 16:00 ET. Handel trwa jednak po sesji regulowanej, a ostatni kurs z sesji rozszerzonej może odbiegać od oficjalnego zamknięcia:

ZapytanieSPY 30 czerwca 2026 — oficjalne zamknięcie vs cena po sesji rozszerzonej
Dokładny kod SQL dla każdej liczby
SELECT round(argMaxIf(toFloat64(close), window_start, rth), 2) AS regular_session_close,
       round(argMax(toFloat64(close), window_start), 2) AS last_extended_print,
       round(100 * (argMax(toFloat64(close), window_start) - argMaxIf(toFloat64(close), window_start, rth))
             / argMaxIf(toFloat64(close), window_start, rth), 3) AS after_hours_drift_pct
FROM (
    SELECT window_start, close,
           toTimeZone(window_start, 'America/New_York') >= toDateTime('2026-06-30 09:30:00', 'America/New_York')
           AND toTimeZone(window_start, 'America/New_York') < toDateTime('2026-06-30 16:00:00', 'America/New_York') AS rth
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2026-06-30 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
)

Dnia 30 czerwca różnica między nimi wynosiła -0.003% — tego wieczoru była niewielka, jednak podczas publikacji wyników finansowych pojedynczej spółki sesja rozszerzona może generować zmiany rzędu procentów, które oficjalna miesięczna stopa zwrotu przypisze do następnego miesiąca. Handel po sesji i przed sesją szczegółowo opisuje tę granicę. Inny powiązany przypadek brzegowy: granice miesięcy czasami przypadają na skrócone sesje świąteczne, gdzie dzień regulowany kończy się o 13:00 ET, a oficjalne zamknięcie następuje podczas wczesnej aukcji zamknięcia — ich wykaz znajduje się w harmonogramie świąt giełdowych.

Składanie dwunastu miesięcy w rok

Roczna stopa zwrotu nie jest sumą dwunastu miesięcznych stóp zwrotu — jest iloczynem tych wartości. Wzór łączący: należy zamienić każdy miesiąc na czynnik wzrostu (1 + stopa zwrotu), pomnożyć przez siebie dwanaście czynników, a następnie odjąć 1. Miesiąc o wartości −5% połączony z miesiącem o wartości +5% daje w sumie zero, ale po skomponowaniu wynosi 0,95 × 1,05 − 1 = −0,25%. Oto rzeczywista ścieżka miesięczna SPY w ciągu dwunastu miesięcy kończących się w czerwcu 2026:

ZapytanieMiesięczne stopy zwrotu SPY close-to-close — 12 miesięcy kończących się w czerwcu 2026, prosta i log
Dokładny kod SQL dla każdej liczby
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           formatDateTime(month_start, '%Y-%m') AS month,
           round(month_close, 2) AS month_final_close,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
)
SELECT month,
       month_final_close,
       round(r, 2) AS simple_return_pct,
       round(100 * log(1 + r / 100), 2) AS log_return_pct
FROM rets
WHERE isFinite(r)
ORDER BY month_start

Dwanaście miesięcy (cena zamknięcia do zamknięcia), od 2.28% w 2025-07 do -1.33% w 2026-06 — ostatni wiersz to ta sama wartość SPY za czerwiec 2026, którą zmierzono w pierwszym panelu. Należy prawidłowo połączyć dwanaście miesięcy i porównać wynik ze skrótem polegającym na samym dodawaniu procentów:

ZapytanieSuma vs procent składany — 12 miesięcznych stóp zwrotu SPY zestawionych na trzy sposoby
Dokładny kod SQL dla każdej liczby
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
),
ends AS (
    SELECT argMin(month_close, month_start) AS base_close,
           argMax(month_close, month_start) AS final_close
    FROM monthly
)
SELECT count() AS months_linked,
       round(sum(r), 2) AS simple_sum_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1), 2) AS geometric_compound_pct,
       round(100 * (any(final_close) / any(base_close) - 1), 2) AS direct_twelve_month_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1) - sum(r), 2) AS compounding_gap_points,
       round(sum(100 * log(1 + r / 100)), 2) AS sum_of_monthly_log_returns_pct,
       round(100 * log(any(final_close) / any(base_close)), 2) AS twelve_month_log_return_pct
FROM rets CROSS JOIN ends
WHERE isFinite(r)

Suma dwunastu miesięcy wynosi 19.83%, ale po skomponowaniu daje 20.79% — bezpośrednie obliczenie od zamknięcia w czerwcu 2025 do zamknięcia w czerwcu 2026 daje 20.79%, co odpowiada wartości skomponowanej, a nie sumie. Różnica wynosi tutaj 0.96 punktów w ciągu jednego stosunkowo spokojnego roku; różnica ta rośnie wraz ze zmiennością i horyzontem czasowym. Dodawanie miesięcznych procentów to powszechny błąd w arkuszach kalkulacyjnych, który prowadzi do błędnych wyników.

Dwie ostatnie kolumny pokazują konwencję stworzoną do dodawania: stopę logarytmiczną, czyli naturalny logarytm czynnika wzrostu, ln(1 + stopa zwrotu). Miesięczne stopy logarytmiczne sumują się do 18.89% — jest to wartość identyczna z dwunastomiesięczną stopą logarytmiczną wynoszącą 18.89%, co jest powodem, dla którego analitycy i modele ryzyka ich używają. Dla małych wartości oba podejścia niemal się nie różnią (2025-11: 0.21% prosta, 0.21% logarytmiczna); im większy miesiąc, tym większa rozbieżność (2026-04: 10.49% prosta, 9.97% logarytmiczna). Dokumenty typu fund fact sheet podają proste stopy zwrotu; stopy logarytmiczne są stosowane w pracach badawczych i matematyce zmienności.

Lista kontrolna służąca do uzgadniania danych z dwóch źródeł

W przypadku rozbieżności między dwoma miesięcznymi wskaźnikami stopy zwrotu, przyczyny niemal zawsze leżą w jednym z czterech czynników:

  1. Punkty końcowe — close-to-close (standard) lub open-to-close (handel w ramach danego miesiąca). Wyniki różnią się, gdy występuje luka cenowa na granicy okresów.
  2. Dywidendy — price return lub total return. Wyniki różnią się w każdym miesiącu, w którym wystąpiła data ex-dividend.
  3. Korekta — surowe dane lub szeregi adjusted-close. Wyniki znacząco się różnią w każdym miesiącu, w którym doszło do splitu.
  4. Sama cena zamknięcia — oficjalna cena aukcyjna (standard) versus ostatnia transakcja, która może obejmować godziny pozagiełdowe.

Zastosowanie tych samych parametrów dla obu źródeł eliminuje rozbieżności. Porównanie funduszu z indeksem jest poprawne tylko wtedy, gdy oba wskaźniki opierają się na tych samych czterech ustawieniach; błąd w jednym z nich sprawia, że porównanie mierzy zmianę parametrów, a nie faktyczną stopę zwrotu. Nasze podsumowanie za czerwiec 2026 określa przyjęte konwencje z tego właśnie powodu — każda miesięczna wartość opiera się na metodzie close-to-close, oficjalnych cenach zamknięcia oraz price return.

FAQ dotyczące stóp zwrotu miesięcznych

Czym jest stopa zwrotu close-to-close?

Procentowa zmiana między ceną zamknięcia z ostatniej sesji regulaminowej poprzedniego okresu a ceną zamknięcia z bieżącego okresu. Jest to standardowa konwencja stosowana dla dziennych, miesięcznych i rocznych stóp zwrotu akcji w arkuszach danych oraz raportach indeksów.

Dlaczego dwie witryny pokazują różne stopy zwrotu dla tej samej akcji i miesiąca?

Zazwyczaj wynika to z jednej z czterech konwencji: różnych punktów końcowych (close-to-close vs open-to-close), uwzględnienia lub nieuwzględnienia dywidend, cen surowych względem cen skorygowanych o split, lub korzystania z innego źródła cen zamknięcia. W przypadku NVDA za czerwiec 2026 r. pomiary -5.39% lub -7.4% występują już przy pierwszej zmianie.

Czy split akcji zmienia obliczenia miesięcznej stopy zwrotu?

Nie powinno — split zmienia jednocześnie liczbę akcji i ich cenę, co nie wpływa na wartość pozycji — jednak zaburza wszelkie obliczenia wykonane na cenach surowych. Wynik NVDA za czerwiec 2024 r. wynosi -88.75% przy cenach zamknięcia surowych, natomiast po uwzględnieniu splitu 10-do-1 wynosi 12.45%.

Czy miesięczne stopy zwrotu akcji obejmują dywidendy?

Tylko stopy całkowite (total returns) je obejmują. Stopy cenowe — w tym główny poziom indeksu S&P 500 — je wykluczają. W czerwcu 2026 r. dywidenda dodała 0.25% do miesięcznego wyniku SPY, co stanowi różnicę między stopą cenową a stopą całkowitą.

Czy miesięczna stopa zwrotu mojego portfela jest obliczana w ten sam sposób?

Nie, gdy pojawiają się przepływy pieniężne. Stopy zwrotu pojedynczych instrumentów, takie jak te na tej stronie, są ważone w czasie; rachunek z depozytami i wypłatami wymaga obliczeń ważonych kapitałem (wewnętrzna stopa zwrotu), w przeciwnym razie przepływy pieniężne mogą fałszować wyniki. Większość brokerów raportuje wskaźnik ważony w czasie właśnie po to, aby wyeliminować wpływ depozytów na wynik.


Każda powyższa wartość jest przechowywaną, wersjonowaną zapytaniem daną z rzeczywistego rejestru transakcji — rozwiń kod SQL dowolnego panelu lub sprawdź miesięczny wynik dowolnego tickera według dowolnej konwencji na terminalu Strasmore.

#returns#conventions#dividends#splits#education