Lokale Volatilität Python |
31.08.2020, 15:27 | doki1994 | Auf diesen Beitrag antworten » |
Lokale Volatilität Python Ich habe schon die Monte-Carlo-Simulation implementiert. Ich muss diese jetzt noch mit der lokalen Volatilität machen. Kann mir bitte jemand erklären wie das funktioniert ? Brauche keinen Code nur würde ich gerne den Sinn verstehen im Anhang. Meine Ideen: Siehe Anhang |
||
01.09.2020, 10:28 | HAL 9000 | Auf diesen Beitrag antworten » |
Irgendwas scheint in der Formel beim Copy+Paste schiefgegangen zu sein - ich vermute, da sollte eigentlich stehen. Zeitschritt sowie die Funktionen und sollten vorab bekannt sein - zwei mögliche Beispiele für sind ja sogar mit angegeben. Schlussendlich ist wohl der Zufallseinfluss - ich gehe mal davon aus, dass das unabhängig identisch standardnormalverteilte Zufallsgrößen sein sollen, oder? Damit ist an sich alles beisammen und du kannst loslegen. |
||
03.09.2020, 15:14 | doki1994 | Auf diesen Beitrag antworten » |
Vielen Dank für die Rückmeldung. Ich habe es jetzt verstanden, aber weiß nicht wie ich es in meinem Code integriere ... vola(S_{t}, t)= 0.02 + 0.0001*(S_{t})^2 In meinem Code ist vola als stdev definiert, wie kann ich S_{t} in meinem code optimieren somit wir für jedes t die vola berechnet wird :/ import numpy as np import pandas as pd from pandas_datareader import data as wb import matplotlib as mlp import matplotlib.pyplot as plt from scipy.stats import norm import statsmodels.api as sm import pylab ticker = 'LHA.DE' data = pd.DataFrame() data[ticker] = wb.DataReader(ticker, data_source='yahoo', start='2018-4-1', end='2019-4-1')['Adj Close'] log_returns = np.log(1 + data.pct_change()) log_returns.tail() u = log_returns.mean() u var = log_returns.var() var drift = u - (0.5 * var) drift stdev = log_returns.std() stdev type(drift) type(stdev) np.array(drift) drift.values stdev.values norm.ppf(0.95) x = np.random.rand(10, 2) x norm.ppf(x) Z = norm.ppf(np.random.rand(10,2)) Z ## m=1000 t_intervals = 252 iterations = 1000 daily_returns = np.exp(drift.values + stdev.values * norm.ppf(np.random.rand(t_intervals, iterations))) daily_returns S0 = data.iloc[-1] S0 price_list = np.zeros_like(daily_returns) price_list price_list[0] price_list[0] = S0 price_list for t in range(1, t_intervals): price_list[t] = price_list[t - 1] * daily_returns[t] price_list |
||
03.09.2020, 15:45 | HAL 9000 | Auf diesen Beitrag antworten » |
Ehrlich, das ist mir zu mühsam, mich durch deinen UNDOKUMENTIERTEN Code zu wühlen, um ihn langsam zu begreifen. Ich kann momentan jedenfalls überhaupt nicht erkennen, inwieweit da tatsächlich involviert sein soll - da habe ich ernste Zweifel, dass dem so ist. |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|