[PYTHON] Analyse von Finanzdaten durch Pandas und deren Visualisierung (2)

Rückgabeindex und kumulative Rendite

Von Gestern werden wir weiterhin Finanzdaten analysieren.

Bei der Analyse eines Aktienportfolios geben die Renditen normalerweise eine prozentuale Änderung des Vermögenspreises an. Die prozentuale Änderung des Aktienkurses gegenüber dem Aktienkurs von Apple finden Sie in Yahoo! Finance.

Pandas-Datenrahmen verfügen über leistungsstarke Funktionen zur Frequenzumwandlung.

Funktion Erläuterung
resample Konvertieren Sie Daten in feste Frequenzen
reindex Weisen Sie Daten einem neuen Index zu

Weitere Datenrahmenfunktionen finden Sie in der Referenz (http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.html).

[Angepasster Schlusskurs](http://www.yahoo-help.jp/app/answers/detail/p/546/a_id/45316/~/%E8%AA%BF%E6%95%B4%E5%BE % 8C% E7% B5% 82% E5% 80% A4% E3% 81% A8% E3% 81% AF) (Adjusted Closing Values) ist ein Split, um Daten kontinuierlich vor und nach einem Aktiensplit oder einer Dividende zu erfassen. Es wird auf den späteren Wert eingestellt.

Der Renditeindex ist ein Index, der die Wertentwicklung unter Berücksichtigung der Dividende der Aktie anzeigt und Zeitreihendaten enthält, deren Wert die Anlageeinheit darstellt. Apples Rückgabeindex wird nach der Cumprod-Methode berechnet.

import pandas as pd
import pandas.io.data as web

#Erworbener bereinigter Schlusskurs der Apple-Aktie seit 2010
price = web.get_data_yahoo('AAPL', '2009-12-31')['Adj Close']
returns = price.pct_change()
ret_index = (1 + returns).cumprod() #Berechnung des Renditeindex
ret_index[0] = 1 #1, weil die erste Zeile NaN ist.Auf 0
print ( ret_index )
# => 
# Date
# 2009-12-31    1.000000
# 2010-01-04    1.015602
# 2010-01-05    1.017330
# 2010-01-06    1.001136
# 2010-01-07    0.999309
# 2010-01-08    1.005974
# 2010-01-11    0.997087
# 2010-01-12    0.985731
# 2010-01-13    0.999654
# 2010-01-14    0.993828
# 2010-01-15    0.977239
# 2010-01-19    1.020490
# 2010-01-20    1.004789
# 2010-01-21    0.987410
# 2010-01-22    0.938432
# ...
# 2014-02-19    2.653155
# 2014-02-20    2.622445
# 2014-02-21    2.593315
# 2014-02-24    2.604671
# 2014-02-25    2.577565
# 2014-02-26    2.554310
# 2014-02-27    2.605263
# 2014-02-28    2.598203
# 2014-03-03    2.605708
# 2014-03-04    2.622889
# 2014-03-05    2.628419
# 2014-03-06    2.620470
# 2014-03-07    2.618939
# 2014-03-10    2.621309
# 2014-03-11    2.646835

#Berechnen Sie die kumulierte Rendite
m_returns = ret_index.resample('BM', how='last').pct_change()
print( m_returns['2014'] ) #Show 2014
# =>
# Date
# 2014-01-31   -0.107696
# 2014-02-28    0.057514
# 2014-03-31    0.018718

#Die kumulative Rendite kann auch durch erneutes Abtasten während der Aggregation berechnet werden.
m_returns = (1 + returns).resample('M', how='prod', kind='period') - 1
print( m_returns['2014'] ) #Show 2014(Gleiches Ergebnis)

Wenn Sie die Informationen eines großen Datenrahmens drucken (), werden diese automatisch weggelassen und Anfang und Ende werden angezeigt.

Berechnung der kumulativen Rendite und Visualisierung des Aktienportfolios jedes Unternehmens

Lassen Sie uns die Kursentwicklung des Aktienportfolios im Finanz- und IT-Sektor darstellen und uns dabei auf die drei Jahre seit 2010 konzentrieren, insbesondere nach dem Erdbeben bis zum 11. März dieses Jahres.

def get_px(stock, start, end):
    return web.get_data_yahoo(stock, start, end)['Adj Close']

names = ['AAPL', 'GOOG', 'MSFT', 'DELL', 'GS', 'MS', 'BAC', 'C']
px = pd.DataFrame( {n: get_px(n, '1/1/2010', '3/11/2014') for n in names} )

px = px.asfreq('B').fillna(method='pad')
rets = px.pct_change()
result = ((1 + rets).cumprod() - 1)

plt.figure()
result.plot()
plt.show()
plt.savefig("image.png ")

image.png

Von hier aus können Sie die Rendite Ihres Portfolios über einen bestimmten Zeitraum berechnen und Ihre Strategie mit verschiedenen Visualisierungen testen.

Durch den Umgang mit Finanzdaten in einem Datenrahmen, der einfach zu visualisieren ist und über zahlreiche Funktionen verfügt, haben wir festgestellt, dass Ad-hoc-Analysen ohne Verwendung teurer und kostenpflichtiger Software durchgeführt werden können.

Referenz

Einführung in die Datenanalyse mit Python-Datenverarbeitung mit NumPy und Pandas http://www.oreilly.co.jp/books/9784873116556/

Recommended Posts

Analyse von Finanzdaten durch Pandas und deren Visualisierung (2)
Analyse von Finanzdaten durch Pandas und deren Visualisierung (1)
Praxis der Datenanalyse durch Python und Pandas (Tokyo COVID-19 Data Edition)
Visualisierung von Daten nach Präfektur
Visualisierung von Daten anhand einer erklärenden Variablen und einer objektiven Variablen
Visualisierung und Analyse von Stava Twitter-Datenstandortinformationen
Implementieren Sie "Data Visualization Design # 3" mit Pandas und Matplotlib
Berechnung der technischen Indikatoren durch TA-Lib und Pandas
Emotionale Analyse umfangreicher Tweet-Daten durch NLTK
Datenvisualisierung mit Pandas
Übersicht und Tipps von Seaborn mit statistischer Datenvisualisierung
Geschichte der Bildanalyse von PDF-Dateien und Datenextraktion
[Regelungstechnik] Visualisierung und Analyse der PID-Regelung und der Sprungantwort
Analyse der Messdaten (2) -Hydrobacter und Anpassung, lmfit Empfehlung-
Überblick über die Verarbeitung natürlicher Sprache und ihre Datenvorverarbeitung
Visualisierungsnotiz von Pandas, Seaborn
Datenanalyse mit Python-Pandas
Negative / positive Beurteilung von Sätzen und Visualisierung von Gründen durch Transformer
Negative / positive Beurteilung von Sätzen durch BERT und Visualisierung von Gründen
Visualisierung der von numpy erstellten Matrix
Beginn der Niko Niko Encyclopedia Analysis ~ JSON und berühren Sie die bereitgestellten Daten ~
Erste Satellitendatenanalyse von Tellus
Empfohlene Bücher und Quellen für die Datenanalyseprogrammierung (Python oder R)
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Automatische Erfassung von Genexpressionsdaten durch Python und R.
Wissenschaftlich-technische Berechnung mit Python] Zeichnen und Visualisieren von 3D-Isoplanes und deren Querschnittsansichten mit Mayavi
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Impressionen von Touch, einem von Python erstellten Datenvisualisierungstool
10 Auswahlen der Datenextraktion durch pandas.DataFrame.query
Animation von Geodaten durch Geopandas
Empfehlung zur Datenanalyse mit MessagePack
Zeitreihenanalyse 3 Vorverarbeitung von Zeitreihendaten
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Aggregation und Visualisierung akkumulierter Zahlen
Datenverarbeitung 2 Analyse verschiedener Datenformate
Stellen Sie das Verhältnis von Topcoder, Codeforces und TOEIC nach Bewertung grafisch dar (Pandas + Seaborn).
Vorverarbeitung von Wikipedia-Dump-Dateien und gemeinsame Nutzung großer Datenmengen mit MeCab
Visualisierung von Breiten- / Längenkoordinatendaten (unter der Annahme meteorologischer Daten) unter Verwendung von Cartopy und Matplotlib
[In-Database Python Analysis-Lernprogramm mit SQL Server 2017] Schritt 3: Erkunden und Visualisieren von Daten
Zusammenfassung der Wahrscheinlichkeitsverteilungen, die häufig in Statistiken und Datenanalysen vorkommen
Python-Visualisierungstool für die Datenanalyse
Eine kleine Überprüfung von Pandas 1.0 und Dask
Beispiel einer dreidimensionalen Skelettanalyse von Python
Regressionsmodell mit Scikit-Learn und dessen Visualisierung
Korrelationsvisualisierung der Merkmalsmenge und der Zielvariablen
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Trennung von Design und Daten in matplotlib
Empfehlung von Altair! Datenvisualisierung mit Python
Analyse des Röntgenmikrotomographiebildes durch Python
Beispiel für eine effiziente Datenverarbeitung mit PANDAS
[Python] Von der morphologischen Analyse von CSV-Daten bis zur CSV-Ausgabe und Diagrammanzeige [GiNZA]
Schöne Grafikzeichnung mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 1
[Python] Vergleich der Theorie und Implementierung der Hauptkomponentenanalyse durch Python (PCA, Kernel PCA, 2DPCA)
Die Bildanalyse war mit den von Microsoft COCO bereitgestellten Daten und der API einfach
Wunderschönes Zeichnen mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 2
Vorhersage kurzlebiger Arbeiten von Weekly Shonen Jump durch maschinelles Lernen (Teil 1: Datenanalyse)