【发布时间】:2018-12-19 19:05:56
【问题描述】:
我正在尝试使用 python 设置 Vasicek 校准例程。我认为最好使用 scipy.optimize ,但我正在努力编写代码。我有下面的整体表格。
有人在 python 中实现了 Vasicek 校准吗?初始数据表如下。
tau = 和 zeroBond =
更新:给定,这个公式: B = (1 - np.exp(-kappatau)) / kappa A = np.exp((theta-(sigma2)/(2(kappa2))) * (B-tau) - (sigma2)/(4* kappa)(B2)) Vasicek = Anp.exp(-r0 * B)
有什么 Python 函数,可以迭代求解“kappa”,使变量 Vasicek 达到某个值?
def py_exact_zcb_Vas_Table(theta, kappa, sigma, tau, zeroBond, r0 = 0):
length = len(tau)
B = np.zeros(length)
A = np.zeros(length)
Vasicek = np.zeros(length)
kappa_calib = np.zeros(length)
theta_calib = np.zeros(length)
Vasci_calib = np.zeros(length)
for i in range(0, length, 1):
B[i] = (1 - np.exp(-kappa*tau[i])) / kappa
A[i] = np.exp((theta-(sigma[i]**2)/(2*(kappa**2))) * (B[i]-tau[i]) - (sigma[i]**2)/(4*kappa)*(B[i]**2))
Vasicek[i] = A[i]*np.exp(-r0 * B[i])
#do while (zeroBond[i] - Vasci_calib[i]) <> 0:
# change kappa[i] such that I match Vasci_calib[i] with zeroBond[i]
return pd.DataFrame({'B':B, 'A':A, 'Vasicek':Vasicek, 'kappa':kapp_calib})
【问题讨论】:
-
如果您提供了minimal, complete and verfiable example(例如,您还没有定义
xw),并且如果您问了一个更具体的问题(“我在挣扎如何编码”并不是一个真正的问题)。 -
这样更好吗?更新:所以给出了这个公式:B = (1 - np.exp(-kappatau)) / kappa A = np.exp((theta-(sigma2)/(2) (kappa2))) * (B-tau) - (sigma2)/(4*kappa)(B2)) Vasicek = Anp.exp(-r0 * B) 有什么 python 函数,迭代求解'kappa'这样变量 Vasicek 是否达到某个值?
标签: python-3.x scipy mathematical-optimization modeling calibration