楼主: WenshanQi07
11552 21

[学科前沿] 【求助】matlab程序-欧式期权定价之显式/隐式有限差分法 [推广有奖]

11
shihang0724 发表于 2012-7-17 21:28:52
WenshanQi07 发表于 2012-7-17 21:04
谢谢!
我已经将显式和隐式的代码分别copy到m文件里了 也保存和命名了
但是当我在外部调用的时候 还是出 ...
我不太清楚你错误报告中的Y是何物?
你可不可以试一下把最后一个形参改为“CALL”而不是小写?
另外如果能够输出1*M的向量作为option price(假设名称为optprice),同时有1*M的向量Spot Price(假设名称为sptprice),只要写plot(sptprice,optprice,'-')就可以画出你想看到的那种图。

12
WenshanQi07 发表于 2012-7-17 23:20:12
shihang0724 发表于 2012-7-17 21:28
我不太清楚你错误报告中的Y是何物?
你可不可以试一下把最后一个形参改为“CALL”而不是小写?
另外如果 ...
太感谢了!!!
我终于把价格给弄出来了 和你说的一模一样 把我原先的call改成大写的CALL就可以了

对于我要的那种图 怎样才能够输出1*M的向量呢?求指导啊 谢谢!!!

13
WenshanQi07 发表于 2012-7-17 23:24:59
xuruilong100 发表于 2012-7-17 11:16
FDM建立在一个股票价格和时间构成的矩形网格上,
Svec和tvec就是要求使用者输入该网格的“节点”,
例如S ...
之前一直没在意 所以都用的小写的call 才导致总是有错误 得不到价格
后来把小写的call改成大写的CALL,就成功了

但是 matlab只是给出了价格 并没有给出图像
请问 怎样才能把图像也给弄出来呢?

14
shihang0724 发表于 2012-7-18 00:11:41
WenshanQi07 发表于 2012-7-17 23:20
太感谢了!!!
我终于把价格给弄出来了 和你说的一模一样 把我原先的call改成大写的CALL就可以了
取M个spot price,run M次这个程序,即可得到相应的M个option price

15
WenshanQi07 发表于 2012-7-18 20:49:00
shihang0724 发表于 2012-7-18 00:11
取M个spot price,run M次这个程序,即可得到相应的M个option price
谢谢!
你说的取M个spot price 这个M的值是可以我自己随便定的吗?
我自己随便取了10个不同的spot price,然后分别得到了10个相对应的option price 如下所示
>> finDiffExplicit(60,40,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

    0.1441

>>  finDiffExplicit(60,45,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

    0.5795

>>  finDiffExplicit(60,50,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

    1.6209

>>  finDiffExplicit(60,55,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

    3.4961

>>  finDiffExplicit(60,60,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

    6.2529

>>  finDiffExplicit(60,65,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

    9.7624

>>  finDiffExplicit(60,70,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

   13.7997

>>  finDiffExplicit(60,75,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

   18.1233

>>  finDiffExplicit(60,80,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

   22.5200

>>  finDiffExplicit(60,85,0.05,0.2,0:1:100,0:0.001:1,'CALL')

ans =

   26.8197

然后分别把10个spot price命名为sptprice,10个option price命名为optprice      如下所示
>>  optprice=0.1441,0.5795,1.6209,3.4961,6.2529,9.7624,13.7997,18.1233,22.5200,26.8197

optprice =

    0.1441


ans =

    0.5795


ans =

    1.6209


ans =

    3.4961


ans =

    6.2529


ans =

    9.7624


ans =

   13.7997


ans =

   18.1233


ans =

   22.5200


ans =

   26.8197

>> sptprice=40,45,50,55,60,65,70,75,80,85

sptprice =

    40


ans =

    45


ans =

    50


ans =

    55


ans =

    60


ans =

    65


ans =

    70


ans =

    75


ans =

    80


ans =

    85

最后plot(sptprice,optprice,'-'),可是出来的图不是我想要的那种呀 出来一个只有横坐标(从39到41,间隔0.2)和纵坐标(-1到1.5,间隔0.5)的完全没有任何曲线的图 就是图是空白的 只有横纵坐标 如下所示
>> plot(sptprice,optprice,'-')

到底怎样才能做出我想要的图呢?

16
shihang0724 发表于 2012-7-19 03:21:52
optprice=[0.1441,0.5795,1.6209,3.4961,6.2529,9.7624,13.7997,18.1233,22.5200,26.8197]
sptprice=[40,45,50,55,60,65,70,75,80,85]
plot(sptprice,optprice,'-')
请这样再试一下吧。

另外现在取点的间距很稀疏,如果你想得到option price那条抛物曲线,M要多取些,建议写个for循环。



17
WenshanQi07 发表于 2012-7-19 06:03:07
shihang0724 发表于 2012-7-19 03:21
optprice=[0.1441,0.5795,1.6209,3.4961,6.2529,9.7624,13.7997,18.1233,22.5200,26.8197]
sptprice=[40,4 ...
谢谢!
按照你说的做的 图像终于出来了
但这个图像的缺点也像你说的一样 M取值太少了 能麻烦你再帮我写个for循环吗?
如果方便的话 能告诉我你的手机号吗 我给你充点儿话费吧 真的很感谢你不怕麻烦的帮我这个matlab无能者 不然我的论文就死定了

18
WenshanQi07 发表于 2012-7-19 06:23:21
shihang0724 发表于 2012-7-19 03:21
optprice=[0.1441,0.5795,1.6209,3.4961,6.2529,9.7624,13.7997,18.1233,22.5200,26.8197]
sptprice=[40,4 ...
另外 我想在图像上加上虚线的网格 应该怎么做呢?

19
shihang0724 发表于 2012-7-20 05:16:03
WenshanQi07 发表于 2012-7-19 06:03
谢谢!
按照你说的做的 图像终于出来了
但这个图像的缺点也像你说的一样 M取值太少了 能麻烦你再帮我写 ...
不好意思,我现在在美国读书。恐怕充话费这个难以实现了。。。不过我私信告诉你我的邮箱吧。

for循环可以这样写:

grid on    %加虚线网格
sptprice = zeros(100,1);
optprice = zeros(100,1);
for(i = 1:100)
    sptprice(i,1) = i;
    optprice(i,1) = finDiffExplicit(60,sptprice(i,1),0.05,0.2,0:1:100,0:0.001:1,'CALL');
end
plot(sptprice,optprice,'-')

你先试一下,我现在手上的电脑没有matlab,所以我没运行不知道对不对。最近一直用r和java编程,不同的语言有很多基本编写习惯不一样,再加上我有半年没碰matlab了,所以可能有错,如果有问题我们再联系。

20
WenshanQi07 发表于 2012-7-20 06:16:59
shihang0724 发表于 2012-7-20 05:16
不好意思,我现在在美国读书。恐怕充话费这个难以实现了。。。不过我私信告诉你我的邮箱吧。

for循环 ...
太感谢了!
没想到你也不在国内呀 我在英国读书 缘分啊 大家都是在外漂泊的孩纸呀

你写的for循环很完美 图像顺利的出来了
就是grid on貌似没有用 因为图像中只有横纵坐标和抛物线 完全没有网格 输入grid on和没输入grid on效果是一样的 好奇怪呀

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-27 03:51