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:
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 tickerCzerwiec 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:
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 dvCzerwcowa 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:
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 dvOd 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:
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 spW 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:
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:
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_startDwanaś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:
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:
- 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.
- Dywidendy — price return lub total return. Wyniki różnią się w każdym miesiącu, w którym wystąpiła data ex-dividend.
- 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.
- 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.