Zwroty finansowe

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Przegląd kursu

Naucz się analizować rozkłady zwrotów z inwestycji, budować portfele, ograniczać ryzyko i identyfikować kluczowe czynniki wpływające na wyniki portfela.

  • Ryzyko inwestycyjne — analiza jednowymiarowa
  • Inwestowanie portfelowe
  • Inwestowanie czynnikowe
  • Prognozowanie i ograniczanie ryzyka
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Ryzyko inwestycyjne

Czym jest ryzyko?

  • Ryzyko na rynkach finansowych to miara niepewności
  • Rozproszenie lub wariancja zwrotów finansowych

Jak zazwyczaj mierzy się ryzyko?

  • Odchylenie standardowe lub wariancja dziennych zwrotów
  • Kurtoza rozkładu dziennych zwrotów
  • Skośność rozkładu dziennych zwrotów
  • Historyczny drawdown
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Ryzyko finansowe

Zwroty

Prawdopodobieństwo

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Dwa rodzaje zwrotów

  • Zwroty są obliczane na podstawie cen akcji
  • Zwroty dyskretne (proste) są najczęściej stosowane i odzwierciedlają okresowe ruchy cen (np. dzienne, tygodniowe, miesięczne)
  • Zwroty logarytmiczne są często stosowane w badaniach akademickich i modelowaniu finansowym. Zakładają ciągłe kapitalizowanie.

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Obliczanie zwrotów z akcji

  • Zwroty dyskretne oblicza się jako zmianę ceny wyrażoną jako procent ceny z poprzedniego okresu

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Obliczanie zwrotów logarytmicznych

  • Zwroty logarytmiczne oblicza się jako różnicę logarytmów dwóch cen
  • Zwroty logarytmiczne agregują się w czasie, natomiast zwroty dyskretne agregują się między aktywami

 

$$ Rl = \ln(\frac{P_{t_2}}{P_{t_1}}) $$

lub równoważnie

$$ Rl = \ln(P_{t_2}) - \ln(P_{t_1}) $$

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Obliczanie zwrotów z akcji w Pythonie

Krok 1:

Wczytaj dane o cenach akcji i zapisz je jako DataFrame biblioteki pandas, posortowany według daty:

import pandas as pd 
StockPrices = pd.read_csv('StockData.csv', parse_dates=['Date'])
StockPrices = StockPrices.sort_values(by='Date')
StockPrices.set_index('Date', inplace=True)
Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Obliczanie zwrotów z akcji w Pythonie

Krok 2:

Oblicz dzienne zwroty na podstawie skorygowanych cen zamknięcia i dodaj je jako nową kolumnę w DataFrame.

StockPrices["Returns"] = StockPrices["Adj Close"].pct_change()
StockPrices["Returns"].head()

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Wizualizacja rozkładów zwrotów

import matplotlib.pyplot as plt
plt.hist(StockPrices["Returns"].dropna(), bins=75, density=False)
plt.show()

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Czas na ćwiczenia!

Wprowadzenie do zarządzania ryzykiem portfela w Pythonie

Preparing Video For Download...