yscapital 发表于 2016-12-18 20:14 
非常感谢楼上两位大侠,我按照你们的思路把代码换成年化数据,还是不能求出来:
call 的下界是S-Kexp(-rT)=0.256, 你的input price0.253已经低于下界了,所以算不出来,看我下面不断减小波动率得到的结果。如果你是用的实际data,一般很少有人用价内的期权去算隐含波动率,如果你有同样strike的价外put option可以试试。
>> blsprice(Price, Strike, Rate, Time, 0.3, 0)
ans =
0.2649
>> blsprice(Price, Strike, Rate, Time, 0.2, 0)
ans =
0.2573
>> blsprice(Price, Strike, Rate, Time, 0.1, 0)
ans =
0.2560
>> blsprice(Price, Strike, Rate, Time, 0.01, 0)
ans =
0.2560
>> blsprice(Price, Strike, Rate, Time, 0.001, 0)
ans =
0.2560
>> blsprice(Price, Strike, Rate, Time, 0.0001, 0)
ans =
0.2560