微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 tkinter 滑块输入来计算 Black Scholes 期权价格,使用 lambda 不起作用

如何解决使用 tkinter 滑块输入来计算 Black Scholes 期权价格,使用 lambda 不起作用

我试图在 jupyter notebook 中使用以下代码来使用 tkslider 改变 blackscholes 价格的输入。但是,计算按钮似乎不起作用 - 我只是得到一个显示 3 张幻灯片的 GUI 窗口和一个不打印 blackscholes 价格的计算按钮。

import numpy as np
from tkinter import *


def blackscholes(F,K,T,sigma,Type="p"):
    d1 = (np.log(F/K)+((sigma**2)/2)*T)/(sigma*np.sqrt(T))
    d2 = d1-sigma*np.sqrt(T)
    try:
        if Type=="p":
            price = F*norm.cdf(d1,1)-K*norm.cdf(d2,1)
        elif Type=="r":
            price = K*norm.cdf(-d2,1)-F*norm.cdf(-d1,1)
        return price
    except:
        print("rrr")

window = Tk()

def calculate_values(Strike):
    F = Fscale.get()
    sigma=sigmascale.get()
    T = Tscale.get()
    l.configure(text=blackscholes(F,Strike,"p"))

l=Label(window,text='')
    
Fscale=Scale(window,from_=1,to=1000,orient=HORIZONTAL,label="F")
Fscale.pack()

sigmascale=Scale(window,label="sigma")
sigmascale.pack()

Tscale=Scale(window,to=100,label="T")
Tscale.pack()

blackscholes_button=Button(window,text='Calculate',command=lambda: calculate_values(Strike=10))

blackscholes_button.pack()

window.mainloop()

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