matlab值得,看涨期权中V值得matlab编程

x=load('C:\Users\admin\Desktop\12.txt');

n=length(x);

result=zeros(n-1,1);

logresult=zeros(n-1,1);

for i=2:n

result(i-1)=x(i)/x(i-1);

end

for i=1:n-1

logresult((i))=log(result(i));

end

sige=std(logresult);

e=load('C:\Users\admin\Desktop\123.txt');

r=load('C:\users\admin\desktop\2.txt');

f=load('C:\users\admin\desktop\21.txt');

m=length(e);

e=zeros(m,1);

r=zeros(m,1);

f=zeros(m,1);

for i=1:m

sigv=sige;

T(i,1)=1;

v(i,1)=fsolve(@(v)myfun(v,f,sigv,e,r,T),[1000000;0.1]);

end

v(i,1);

这是我的运行程序

m文件总的程序为:

Function y=myfun(v,f,sigv,e,r,T)

d1=(log(v/f)+(r+0.5*sigv^2)*T)/sigv*sqrt(T);

d2=d1-sigv*sqrt(T);

y=v*normcdf(d1,0,1)-f*exp(-rT)*normcdf(d2,0,1)-e;

出现的错误为:

??? Attempt to execute SCRIPT myfun as a function.

Error in ==> fsolve at 180

fuser = feval(funfcn{3},x,varargin{:});

求各位大神指点!非常感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值