Python jupyter笔记本中的交互功能和滑块问题
我在使用interact函数将滑块与函数绑定时遇到了一个奇怪的错误。我知道这个函数可以正确地处理输入,但是当interact调用它时,它就会停止工作。下面是重现错误的代码:Python jupyter笔记本中的交互功能和滑块问题,python,jupyter-notebook,widget,interactive,figure,Python,Jupyter Notebook,Widget,Interactive,Figure,我在使用interact函数将滑块与函数绑定时遇到了一个奇怪的错误。我知道这个函数可以正确地处理输入,但是当interact调用它时,它就会停止工作。下面是重现错误的代码: %matplotlib inline # Import libraries import matplotlib.pyplot as plt import numpy as np import scipy.stats as stats import math from ipywidgets import widgets f
%matplotlib inline
# Import libraries
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
import math
from ipywidgets import widgets
from ipywidgets import interact, interactive, fixed
from IPython.display import display
# Libraries
from scipy.stats import norm
# Other example: Black-Scholes-Merton
def d1f(St, K, tau, r, sigma):
d1 = (np.log(St/K) + (r + 0.5*sigma**2)*tau)/ \
(sigma*np.sqrt(tau))
return d1
def BSM_call_value(St=100,K=100,tau=60,r=0.05/252,sigma=0.2/np.sqrt(252)):
d1 = d1f(St, K, tau, r, sigma)
d2 = d1 - sigma*np.sqrt(tau)
call_value = St*norm.cdf(d1) - np.exp(-r*tau)*K*norm.cdf(d2)
return call_value
# Sliders
s_slider = widgets.IntSlider(
value=100,
min=90,
max=110,
step=1,
description='Price'
)
k_slider = widgets.IntSlider(
value=100,
min=90,
max=110,
step=1,
description='Strike'
)
tau_slider = widgets.IntSlider(
value=60,
min=30,
max=180,
step=15,
description='Maturity'
)
r_slider = widgets.IntSlider(
value=0.05/252,
min=0.01/252,
max=0.20/252,
step=0.005,
description='Maturity'
)
sigma_slider = widgets.IntSlider(
value=0.2/np.sqrt(252),
min=0.05/np.sqrt(252),
max=0.5/np.sqrt(252),
step=0.01/np.sqrt(252),
description='Volatility'
)
interact(d1f, St=s_slider, K=k_slider, tau=tau_slider,
r=r_slider, sigma=sigma_slider)
我知道上面的d1f是有效的。你可以检查我为滑块提供的网格中的任何点,我不明白为什么它不起作用。所有的输入都必须是严格正的,如果你使用它,正如名字所暗示的,这是布莱克-斯科尔斯-默顿模型中看涨期权价格的一部分。我最终想用它制作交互式图形,但我需要先完成这一步
所以,为了清楚起见,我用互动和数字来标记这一点,因为这是最终目标。我只是错过了一个包装器函数来输出一个带有BSM_call_值的正确绘图,但是当我调用这个函数时,d1f出现了一个错误,因此这篇文章