Zwroty w ujęciu rocznym

Wprowadzenie do analizy portfela w Pythonie

Charlotte Werger

Data Scientist

Porównywanie zwrotów

  1. Zwrot roczny: Łączny zwrot osiągnięty w ciągu jednego roku kalendarzowego

  2. Zwrot w ujęciu rocznym: Roczna stopa zwrotu wyliczona dla dowolnego okresu

  3. Średni zwrot: Łączny zwrot z dłuższego okresu, równomiernie rozłożony na (krótsze) podokresy.

  4. Zwrot skumulowany (z procentem składanym): Zwrot uwzględniający efekt reinwestowania odsetek, dywidend i zysków kapitałowych.

Wprowadzenie do analizy portfela w Pythonie

Dlaczego annualizować zwroty?

$$ Tabela zwrotów z portfela

$$

  • Średni zwrot = (100 - 50) / 2 = 25%
  • Rzeczywisty zwrot = 0%, więc średni zwrot nie jest dobrą miarą wyników!
  • Jak porównywać portfele o różnych horyzontach czasowych?
  • Jak uwzględnić efekt procentu składanego w czasie?
Wprowadzenie do analizy portfela w Pythonie

Obliczanie zwrotów w ujęciu rocznym

$$

  • N w latach: $rate= (1 +Return)^{1/N} -1$

  • N w miesiącach: $rate= (1+Return)^{12/N} -1$

  • Przelicz dowolny okres na stopę roczną:

  • Return to łączny zwrot, który chcemy annualizować.
  • N to liczba dotychczasowych okresów.
Wprowadzenie do analizy portfela w Pythonie

Zwroty roczne w Pythonie

# Check the start and end of timeseries
apple_price.head(1)
date
2015-01-06    105.05
Name: AAPL, dtype: float64
apple_price.tail(1)
date
2018-03-29    99.75
Name: AAPL, dtype: float64
# Assign the number of months
months = 38
Wprowadzenie do analizy portfela w Pythonie

Zwroty roczne w Pythonie

# Calculate the total return
total_return = (apple_price[-1] - apple_price[0]) / 
                apple_price[0]

print (total_return)
0.5397420653068692
Wprowadzenie do analizy portfela w Pythonie

Zwroty roczne w Pythonie

# Calculate the annualized returns over months
annualized_return=((1 + total_return)**(12/months))-1
print (annualized_return)
0.14602501482708763
# Select three year period
apple_price = apple_price.loc['2015-01-01':'2017-12-31']
apple_price.tail(3)
date
2017-12-27    170.60
2017-12-28    171.08
2017-12-29    169.23
Name: AAPL, dtype: float64
Wprowadzenie do analizy portfela w Pythonie

Zwrot roczny w Pythonie

# Calculate annualized return over 3 years
annualized_return = ((1 + total_return)**(1/3))-1

print (annualized_return)
0.1567672968419047
Wprowadzenie do analizy portfela w Pythonie

Ćwiczmy!

Wprowadzenie do analizy portfela w Pythonie

Preparing Video For Download...