1

私はmatlabを始めたばかりで、質問は簡単ですか?

次の入力パラメーターを使用してコール オプションの価格を取得する Black&Scholes 式を取得しました。

コール オプションの価格は で与えられます。

C(S,K,r,t,sigma) = S *N(d1) - K e^-rT *N(d2)
d1 = (1/sqrt(T))*(ln(S/K)+(r+0.5*sigma^2)*T)
d2 = d1 - sigma*sqrt(T)

この関数に問題はありませんが、ブラック ショールズのボラティリティを取得する必要があります。

私は入力として持っています:S, K , r , T , BlackScholesPriceシグマを返したいです。

「syms sig; solve ("blackscholesequation"==blacksholesprice, sig);」で試してみました しかし、何もすることはありません。常にエラーが発生します

"Error using symfun>validateArgNames (line 211)
Second input must be a scalar or vector of unique symbolic variables.

Error in symfun (line 45)
            y.vars = validateArgNames(inputs);

Error in sym/subsasgn (line 762)
                C = symfun(B,[inds{:}]);

Error in normcdf>localnormcdf (line 100)
    p(sigma==0 & x<mu) = 0;

Error in normcdf (line 46)
[varargout{1:max(1,nargout)}] = localnormcdf(uflag,x,varargin{:});

Error in BlackScholesInverse (line 3)
solve(S0*normcdf((log(S0/K)+(r+0.5*sig*sig)*T)*(1/(sig*sqrt(T))))-K*exp(-r*T)*normcdf((log(S0/K)+(r+0.5*sig*sig)*T)*(1/(sig*sqrt(T)))-sig*sqrt(T))==
prixBS,sig)"

誰かがアイデアを得たら、それは素晴らしいことです。ありがとうございます

4

1 に答える 1