Lokale Volatilität [Monte-Carlo-Simulation]

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
doki1994
User
Beiträge: 9
Registriert: Montag 31. August 2020, 20:28

Hey Leute kann mir vielleicht jemand helfen ?
Ich habe die Standard Monte-Carlo-Simulation implementiert und muss dies durch die lokale Volatilität ersetzen.
Ich hatte eine feste volatilität die ich mit stdev gesetzt habe.
Ich muss aber jetzt die konstante volatilität durch (stdev+ 0.001*S_{t}) ersetzen S_{t} sind die Werte aus data.

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
Antworten