优化问题

问题描述 投票:-1回答:1

我正在尝试建立优化器以优化Black-Sholes Monte Carlo模型中的系数。我在正确的公式中添加了一些名为vvbar的参数。因此,我希望对它们进行优化,但是它们没有改变(因为输入v = 0.5, vbar = 0.7完全没有改变),哪里可能有问题?谢谢!


import numpy as np
import scipy as sp
from scipy.optimize import least_squares
from scipy import log,exp,sqrt,stats, zeros, shape

S0 = 40
X = 40
T = 0.5
r = 0.05
sigma = 0.2
n_steps = 100

implied_MC = 0.2
c = 2.7554914310722474
mc = 3.2242474967730352

def bs_MC_opt(S, X, T, r, sigma, n_steps, *parms):

    v, vbar = parms

    sp.random.seed(1) # fix those random numbers
    n_simulation = 20 # number of simulation
    dt = T / n_steps
    call = sp.zeros([n_simulation], dtype = float)
    x = range(0, int(n_steps), 1)

    for j in range(0, n_simulation):
        sT = S
        for i in x[:-1]:
            e = sp.random.normal()
            sT *= sp.exp((r - (0.5 + v) * sigma * sigma) * dt + sigma * e * sqrt(dt)) - vbar
            call[j] = max(sT - X,0)
    all_price = sp.mean(call) * sp.exp(-r * T)
    return all_price

def implied_vol_MC(S0, X, T, r, c, *parms):
    for i in range(200):
        sigma = 0.005 * (i + 1)
        diff = mc - bs_MC_opt(S0, X, T, r, sigma, n_steps, *parms)
        if abs(diff) <= 0.01:
            return sigma
    return sigma

def optimizer(chromo):
    v = chromo[0] #v0
    vbar = chromo[1] #theta

    diffs = implied_MC - implied_vol_MC(S0, X, T, r, c, v, vbar)
    return diffs

p0 =  np.array([0.5,  0.7])
plsq = least_squares(optimizer, p0, bounds = (0, 1))
print(plsq.x)
parms = plsq.x
python optimization least-squares
1个回答
0
投票

您的配方中有某些问题。加载代码并进行修改后,我得到:

In [18]: optimizer([0.5, 0.7])                                                                                       
Out[18]: -0.8

In [19]: optimizer([0.8, 0.9])                                                                                       
Out[19]: -0.8

In [20]: optimizer([0.0, 0.1])                                                                                       
Out[20]: -0.8

因此,求解器可能正在运行,而对于您输入的替代值,没有得到任何不同的结果。您是否已独立测试所有功能以确保它们正在执行您想要的工作?

© www.soinside.com 2019 - 2024. All rights reserved.