BSM期权定价python代码



```python

class optionPrice:
    def _init_(self,flag,S0,K,r,T,sigma):
        import numpy as np
        if flag not in ['call','put','c','p']:
            print('Choose one of call/put/c/p to be flag!' )
        self.flag = 1 if (flag == 'call' or flag == 'c')
                            else -1
        self.S0 = float(S0)
        self.K = float(K)
        self.r = float(r)
        self.T = float(T)
        self.sigma = float(sigma)
        self.d1 = (np.log(self.S0/self.K)+(self.r+self.sigma**2/2)*self.T)/(self.sigma*np.sqrt(self.T))
        self.d2 = self.d1-self.sigma*np.sqrt(self.T)
    def bsmPrice(self,dec=-1):
        import numpy as np
        import scipy.stats as ss
        result = self.flag*self.S0*ss.norm,cdf(self.flag*self.d1)-self.flag*self.K*np.exp(-self.r*self.T)*ss.norm.cdf(self.flag*self.d2)
        if int(dec)>0:
            return round(result,int(dec))
        else:
            return result
 这第六行代码报错说无效语法,谁能帮忙更改解答呀 self.flag = 1 if (flag == 'call' or flag == 'c')
                                                                                                 else -1

确少:

语法错误:修改为:

        if (flag == 'call' or flag == 'c'):
             print('ssss')
        else:
            print('ssa')

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^