poniedziałek, 12 lutego 2024

Stopa zwrotu - logarytmiczna stopa zwrotu

Kontynuacja wpisu: https://kamilkondrat.blogspot.com/2024/02/stopa-zwrotu-zaczynamy.html

Ta praca odzwierciedla zainteresowanie autora analizą finansową i wykorzystaniem narzędzi informatycznych w jej realizacji. Niniejszy blog nie ma na celu dostarczania porad finansowych, lecz stanowi konstruktywne podejście autora do dzielenia się wiedzą. Autor widzi w tym sposobność do rozwijania swoich umiejętności i zachęcania do wzajemnej dyskusji. Należy pamiętać, że wnioski wynikające z analiz prezentowanych na tym blogu nie powinny być bezpośrednio stosowane do podejmowania decyzji finansowych. Nawet jeśli analizy są dokładne, stanowią one tylko fragment potrzebnych informacji do podjęcia w pełni świadomej decyzji. Brak szerszego kontekstu, w którym znajduje się potencjalny inwestor lub decydent, może prowadzić do niepełnych wniosków.

Zajmiemy się logarytmicznym zwrotem z inwestycji. Pozwala on na obliczenie wartości naszej inwestycji po określonym czasie. Dzięki odjęciu wartości początkowej od wartości końcowej i ujęciu tego względem wartości początkowej uzyskujemy współczynnik zmiany wartości z inwestycji, a po pomnożeniu przez 100% można wyrazić procentowy zwrot z inwestycji.

Aby obliczyć to na danych na których pracujemy (jeśli ktoś nie ma zaczytanych danych, to sugeruję cofnąć się do poprzedniego wpisu po odpowiednią instrukcję która to zrobi). Jeśli aktualnie te dane macie już zaczytane, to przejdźmy do kolejnego kroku:

Potrzebny nam będzie moduł "numpy", który zawiera w sobie funkcje do obliczeń od tych prostszych i bardziej pospolitych po zaawansowane i naukowe. A w tym interesującą nas funkcję, obliczającą logarytm.

import numpy as np

Następnie użyjmy kodu do obliczenia logarytmicznego zwrotu.

df['log_return'] = np.log(df['Adj Close'] / df['Adj Close'].shift(1))

W tej sytuacji korzystamy z bliźniaczego kodu służącego do obliczenia zwykłej stopy zwrotu z tą różnicą, że wynik dzielenia ceny zamknięcia z wartością przesuniętą o jeden wiersz w dół będącą z poprzedniego dnia jeszcze dodatkowo logarytmujemy (a dokładnie: obliczamy logarytm naturalny) przy użyciu gotowej funkcji z biblioteki numpy:"np.log()".

Logarytmiczna stopa zwrotu pokazuje, tak samo jak zwykła stopa zwrotu, względne zmiany w wartości inwestycji. Różnicą jest to, że dzieje się to w ujęciu logarytmicznym, a to sprawia, że te współczynniki mogą być używane w innych kompatybilnych modelach matematycznych opartych o logarytm naturalny, a tego typu modele istnieją i pozwalają uzyskać zaawansowane rezultaty.

Jeszcze inną cechą logarytmicznej stopy zwrotu jest tzw. addytywność. Znaczy to tyle, że jeśli mielibyśmy obliczone dwie logarytmiczne stopy zwrotu z dwóch kolejnych lat oddzielnie, to moglibyśmy je do siebie dodać i mieć jeden wynik z dwóch lat trwania inwestycji łącznie. Dlatego też logarytmiczna stopa zwrotu ma dla nas znaczenie i zostaje odnotowana na tym blogu.

Addytywność jest istotną właściwością przy analizie szeregów czasowych, do której zamierzam się w przyszłości dokładniej przyjrzeć na tym blogu.

Brak komentarzy:

Prześlij komentarz

Analiza sentymentów - wpisy na mediach społecznościowych (podział danych)

Ten wpis zaczniemy od stworzenia DataFrame z danymi treningowymi train_df = pd.read_csv('train.csv', encoding='ISO-8859-1')....