freight rate_知道日波动率怎么算年波动率

2022-11-15 10:41:35 浏览数 (1)

第12节 EWMA估计日波动率

  • 12.1 简介
  • 12.2 EWMA估计波动率算法
  • 12.3 算法Python代码实现
  • 12.4 计算示例
  • 12.5 参考资料

12.1 简介

EWMA模型

考虑一市场变量,如股票,我们有其从第0天至第 N N N天每天末的数据 S 0 , S 1 , . . . , S N S_0, S_1, …, S_N S0​,S1​,...,SN​。定义 σ n sigma_n σn​ 为于第 n − 1 n-1 n−1天末所估计的市场变量在第 n n n天的波动率, σ n 2 sigma_n^2 σn2​为方差率。定义连续复利收益率 u n = ln ⁡ S n S n − 1 ≈ S n − S n − 1 S n u_n =ln{frac{S_n}{S_{n-1}}}approx frac{S_n-S_{n-1}}{S_n} un​=lnSn−1​Sn​​≈Sn​Sn​−Sn−1​​。 则在指数加权移动平均模型 Exponentially Weighted Moving Average (EWMA) 模型下, σ n 2 sigma_n^2 σn2​的变化过程为: σ n 2 = λ σ n − 1 2 ( 1 − λ ) u n − 1 2 ,        0 < λ < 1    . sigma_n^2 = lambda sigma_{n-1}^2 (1-lambda)u_{n-1}^2, ;; ; 0 < lambda < 1;. σn2​=λσn−12​ (1−λ)un−12​,0<λ<1. σ n 2 sigma_n^2 σn2​也可以直接由 u i 2 u_i^2 ui2​表示为: σ n 2 = ( 1 − λ ) ∑ i = 1 m λ i − 1 u n − i 2 λ m σ n − m 2 ,        1 < m < n    . sigma_n^2 = (1-lambda)sum_{i=1}^mlambda^{i-1}u_{n-i}^2 lambda^msigma_{n-m}^2, ;;;1<m<n; . σn2​=(1−λ)i=1∑m​λi−1un−i2​ λmσn−m2​,1<m<n. 相对于 σ n 2 sigma_n^2 σn2​的简单估计 σ n 2 = 1 m ∑ i = 1 m u n − i 2 sigma_n^2 = frac{1}{m}sum_{i=1}^mu_{n-i}^2 σn2​=m1​∑i=1m​un−i2​,EWMA模型下, σ n 2 sigma_n^2 σn2​中每个 u i 2 u_i^2 ui2​的权重随时间距离的增加而指数衰减。这里的 m m m都为一选定的截断距离。 所以给定 S 0 , S 1 , . . . , S N S_0, S_1, …, S_N S0​,S1​,...,SN​,我们可以先由 u n = S n − S n − 1 S n u_n=frac{S_n-S_{n-1}}{S_n} un​=Sn​Sn​−Sn−1​​计算出 u 1 , u 2 , . . . , u N u_1, u_2, …, u_N u1​,u2​,...,uN​,然后设初始日方差率 σ 2 2 = u 1 2 sigma_2^2 = u_1^2 σ22​=u12​,由 σ n 2 = λ σ i − 1 2 ( 1 − λ ) u i − 1 2 sigma_n^2 = lambda sigma_{i-1}^2 (1-lambda)u_{i-1}^2 σn2​=λσi−12​ (1−λ)ui−12​,计算出 σ 2 2 , σ 3 2 , . . . , σ N 1 2 sigma_2^2, sigma_3^2, …, sigma_{N 1}^2 σ22​,σ32​,...,σN 12​。即为EWMA模型给出的每天方差率/波动率的估计结果。

最大似然估计确定最佳 λ lambda λ

在EWMA模型中只有一个自由未确定的变量 λ lambda λ,我们希望 λ lambda λ的选取可以使得 { σ i 2 } {sigma_i^2} { σi2​}的估计在某种定义下最优。这里我们假设每天的连续复利收益率 u i u_i ui​的数据抽样取值在给定当天隐含方差率为 σ i ∗ 2 {sigma_i^ast}^2 σi∗​2的情况下服从正态分布,对应概率密度函数 f ( u i ) = 1 σ i ∗ 2 π exp ⁡ − u i 2 2 σ i ∗ 2 = P ( u i ∣ σ i ∗ ) = p i f(u_i)= frac{1}{sigma_i^astsqrt{2pi}}exp{-frac{u_i^2}{2{sigma_i^ast}^2}}=mathbb P(u_ivert sigma_i^ast) = p_i f(ui​)=σi∗​2π ​1​exp−2σi∗​2ui2​​=P(ui​∣σi∗​)=pi​。考虑我们选取一个具体的 λ lambda λ数值,由已知市场变量数据 S 0 , S 1 , . . . , S N S_0, S_1, …, S_N S0​,S1​,...,SN​,我们先用EWMA模型计算出 σ 2 ( λ ) , σ 3 ( λ ) , . . . , σ N 1 ( λ ) sigma_2(lambda), sigma_3(lambda), …, sigma_{N 1}(lambda) σ2​(λ),σ3​(λ),...,σN 1​(λ),然后假如这些波动率即为对应日期隐含波动率 σ i ∗ sigma_i^ast σi∗​,就可以计算出 p 2 , p 3 , . . . , p N p_2, p_3, …, p_N p2​,p3​,...,pN​。 记: P ( λ ) = ∏ i = 2 N p i ( λ ) = ∏ i = 2 N P ( u i ∣ σ i ( λ ) )    . P(lambda) = prod_{i=2}^N p_i(lambda) = prod_{i=2}^N mathbb P(u_ivert sigma_i(lambda));. P(λ)=i=2∏N​pi​(λ)=i=2∏N​P(ui​∣σi​(λ)). 这里的 P ( λ ) P(lambda) P(λ)可以解释为,在每天的 u i u_i ui​服从独立正态分布的假设下,考虑EWMA模型时,当选取该 λ lambda λ和初始条件 σ 2 = u 1 sigma_2 = u_1 σ2​=u1​后,市场变量的连续复利收益率的历史数据正好为 u 1 , u 2 , . . . , u N u_1, u_2, …, u_N u1​,u2​,...,uN​的概率,也可以记为 P ( u 1 , . . . , u N ∣ λ ) mathbb P(u_1, …, u_Nvert lambda) P(u1​,...,uN​∣λ)。 最大似然估计法的想法是选取使得该 P ( λ ) P(lambda) P(λ)达到极大值的 λ lambda λ作为模型的最优参数估计。即 λ = A r g max ⁡ λ P ( λ )    . lambda = Argmax_lambda{P(lambda)}; . λ=Argλmax​P(λ). 其中Arg max是”return the arguments that maximize the function”,即指计算出可以使后面方程值达到最大的参数。具体表示为 λ = A r g max ⁡ λ ∏ i = 2 N 1 σ i 2 π exp ⁡ − u i 2 2 σ i 2    . lambda = Argmax_lambda {prod_{i=2}^Nfrac{1}{sigma_isqrt{2pi}}exp{-frac{u_i^2}{2sigma_i^2}}};. λ=Argλmax​i=2∏N​σi​2π ​1​exp−2σi2​ui2​​. 等价于, λ = A r g min ⁡ λ ∑ i = 2 N [ ln ⁡ σ i 2 u i 2 σ i 2 ]    . lambda = Argmin_lambda {sum_{i=2}^Nleft[ln{sigma_i^2} frac{u_i^2}{sigma_i^2}right]};. λ=Argλmin​i=2∑N​[lnσi2​ σi2​ui2​​]. 并记 L ( λ ) = ∑ i = 2 N [ ln ⁡ σ i 2 u i 2 σ i 2 ]    . mathcal L (lambda) = {sum_{i=2}^Nleft[ln{sigma_i^2} frac{u_i^2}{sigma_i^2}right]};. L(λ)=i=2∑N​[lnσi2​ σi2​ui2​​]. 由于这里希望确定的参数只有一个,我们可以通过穷举法简单地求出其最优值。

12.2 EWMA估计波动率算法

  1. 由已知数据 S 0 , S 1 , . . . , S N S_0, S_1, …, S_N S0​,S1​,...,SN​,按 u i = S i − S i − 1 S i − 1 u_i =frac{S_i-S_{i-1}}{S_{i-1}} ui​=Si−1​Si​−Si−1​​计算出 u 1 , u 2 , . . . , u N u_1, u_2, …, u_N u1​,u2​,...,uN​。
  2. 在 [ 0 , 1 ] [0, 1] [0,1]区间内均匀地取 M M M个点,作为 λ lambda λ的尝试取值, λ i = i M lambda_i = frac{i}{M} λi​=Mi​。
  3. 计算出每个 λ i lambda_i λi​对应的 L ( λ i ) mathcal L(lambda_i) L(λi​):
    1. 设 σ 2 2 = u 1 2 sigma_2^2=u_1^2 σ22​=u12​,由 λ i lambda_i λi​和 u 1 , u 2 , . . . , u N u_1, u_2, …, u_N u1​,u2​,...,uN​,按照EWMA模型 σ n 2 = λ i σ n − 1 2 ( 1 − λ i ) u n − 1 2 sigma_n^2 = lambda_i sigma_{n-1}^2 (1-lambda_i)u_{n-1}^2 σn2​=λi​σn−12​ (1−λi​)un−12​计算出 σ 2 , σ 3 , . . . , σ N sigma_2, sigma_3, …, sigma_N σ2​,σ3​,...,σN​。
    2. 由 L ( λ i ) = ∑ j = 2 N ( ln ⁡ σ j 2 u j 2 σ j 2 ) mathcal L(lambda_i) = sum_{j=2}^N(ln{sigma_j^2} frac{u_j^2}{sigma_j^2}) L(λi​)=∑j=2N​(lnσj2​ σj2​uj2​​)计算出 L ( λ i ) mathcal L(lambda_i) L(λi​)。
  4. λ lambda λ的最优估计值即为最小的 L ( λ i ) mathcal L(lambda_i) L(λi​)所对应的 λ i lambda_i λi​。

12.3 算法Python代码实现

代码语言:javascript复制
import numpy as np
def EWMA(values, precision=1.e-3):
# 由给定精确度确定划分格点数。
M = int(1/precision)
values = np.array(values)
# 计算 {u_i}
U = (values[1:]-values[:-1])/values[:-1]
U_squared = U*U
opt_lbd = None
min_loss = float("inf")
# 穷举找最优lambda
for i in range(1, M):
lbd = float(i)/M
sigma_squared = U_squared[0]
loss = 0
for j in range(1, len(U_squared)):
loss  = np.log(sigma_squared) U_squared[j]/sigma_squared
sigma_squared = lbd * sigma_squared   (1-lbd)*U_squared[j]
if loss < min_loss:
min_loss = loss
opt_lbd = lbd
# 用最优lambda再计算出日方差率估计值。
Vars = [0, U_squared[0]]
for i in range(1, len(U_squared)):
Vars.append(Vars[-1]*opt_lbd (1-opt_lbd)*U_squared[i])
return (Vars, opt_lbd)

12.4 计算示例

我们考虑John Hull网站上的示例数据(欧元/美元汇率),原数据地址为John Hull网站上的原始示例数据 。这里用的是简化后的,欧元/美元汇率(在github, 可下载)。

代码语言:javascript复制
data = np.genfromtxt("EURUSDExchangerates.txt", skip_header=1, usecols=(1))
Vars, lbd = EWMA(data, precision=1.e-3)
print("EWMA最优lambda:", lbd)
代码语言:javascript复制
EWMA最优lambda: 0.958

12.5 参考资料

  1. 《期权、期货及其他衍生产品》,John C. Hull 著,王勇、索吾林译。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234619.html原文链接:https://javaforall.cn

0 人点赞