Lokale Volatilität Python

Neue Frage »

doki1994 Auf diesen Beitrag antworten »
Lokale Volatilität Python
Meine Frage:
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
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.
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
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.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »