Black-Scholes

幾何布朗運動小時間步高波動性

  • July 28, 2021

我正在嘗試為一種資產生成一些範例幾何布朗運動路徑,該資產 24/7 不間斷交易並且高度波動(期權市場隱含波動率高達 150%)。

我目前正在使用這個腳本:https ://stackoverflow.com/a/13203189/5433929

我想生成具有任意解析度的範例路徑,例如一分鐘、一小時、一天或介於這些之間的任何解析度。我的理解是,如果我假設年化波動率為 150%,並且我想使用我連結的腳本生成每小時 GBM,我需要將這 150% 轉換為每小時波動率,這是通過將1.5/sqrt(number of hours in a year). 但是,當我這樣做時,在例如 30 天的時間範圍內生成的範例路徑根本不現實。根據漂移參數,它幾乎呈直線上升,在 +/- 0.1% 的極窄範圍內隨典型 GBM 特徵變化,根本不代表具有如此高波動性的資產。

我在這裡做錯了什麼?

提前致謝。

編輯:

由於@Kermittfrog 的要求,我正在粘貼我的特定腳本。

def generateGBM(T, mu, sigma, S0, dt):
   '''
   Generate a geometric brownian motion time series. Shamelessly copy pasted from here: https://stackoverflow.com/a/13203189

   Params: 

   T: time horizon 
   mu: drift
   sigma: percentage volatility
   S0: initial price
   dt: size of time steps

   Returns: 

   t: time array
   S: time series
   '''
   N = round(T/dt)
   t = np.linspace(0, T, N)
   W = np.random.standard_normal(size = N) 
   W = np.cumsum(W)*np.sqrt(dt) ### standard brownian motion ###
   X = (mu-0.5*sigma**2)*t + sigma*W 
   S = S0*np.exp(X) ### geometric brownian motion ###
   return t, S

我正在使用以下參數執行此操作:

#Initial reference market price
INITIAL_PRICE = 1100
#The desired annualized volatility
ANNUALIZED_VOL = 1.5
#The annual drift of the geometric brownian motion
DRIFT = 0.04
#The time horizon in days
TIME_HORIZON = 30
#The size of the time steps in days (20 minutes here)
TIME_STEPS_SIZE = 0.0138889

並通過除以一年內的時間步數的平方根來縮小年化波動率和漂移

N_timesteps = 365/dt
sigma_timestep = sigma/np.sqrt(N_timesteps)
mu = DRIFT/np.sqrt(N_timesteps)

結果是看起來不像人們對一個月內波動率為 150% 的資產的預期,除非我的預期真的錯了

給定您的程式碼,以下將產生您所追求的:

t,S = generateGBM(TIME_HORIZON/365, DRIFT, ANNUALIZED_VOL, INITIAL_PRICE, 1/365/24/3)

由於所有輸入都是年化的,因此您還必須以年分數為單位考慮:時間範圍是 30 天超過 365 天,時間步長為 20 分鐘,是一年以上365 * 24 * 3(在一個週期中有三個 20 分鐘的間隔)小時)。

另一方面,如果您想使用日常輸入,您可以執行:

t,S = generateGBM(TIME_HORIZON, DAILY_DRIFT, DAILY_VOL, INITIAL_PRICE, 1/24/3)

您可以將年波動率和年漂移量轉換為每日對應項

DAILY_VOL   = np.sqrt(1/365) * ANNUALIZED_VOL
DAILY_DRIFT =         1/365  * DRIFT

HTH?

引用自:https://quant.stackexchange.com/questions/66045