先贴一些写的代码library("RQuantLib")
read.csv("E:\\data\\sk.csv")
列表: data TOP.10.TRADED..BY.VOLUME. O.Q.P..CLOSE underlying strike
1 2013/9/2 C 132 22175 22800
2 2013/9/3 C 123 22395 23000
3 2013/9/4 C 127 22326 23000
4 2013/9/5 C 137 22598 23200
5 2013/9/6 C 141 22621 25000
6 2013/9/9 C 84 22751 23400
7 2013/9/10 C 111 22977 23400
8 2013/9/11 C 111 22937 23400
9 2013/9/12 C 102 22954 23400
10 2013/9/13 C 138 22915 23200
11 2013/9/16 C 115 23252 23600
12 2013/9/17 C 81 23181 23600
13 2013/9/18 C 26 23117 24000
14 2013/9/19 C 96 23503 23800
15 2013/9/25 C 25 23210 23400
16 2013/9/26 C 41 23125 23200
17 2013/9/27 C 0 23207 23200
18 2013/9/30 C 680 22860 23000
19 2013/10/2 C 89 22984 23800
20 2013/10/3 C 200 23214 23600
21 2013/10/4 C 48 23139 24200
22 2013/10/7 C 120 22974 23600
23 2013/10/8 C 74 23179 24000
24 2013/10/9 C 94 23034 23800
25 2013/10/10 C 162 22951 23400
26 2013/10/11 C 89 23218 23800
27 2013/10/15 C 164 23337 23600
28 2013/10/16 C 130 23228 23600
29 2013/10/17 C 48 23095 23600
30 2013/10/18 C 165 23340 23400
31 2013/10/21 C 49 23438 23800
32 2013/10/22 P 77 23316 23000
33 2013/10/23 C 21 23000 23600
34 2013/10/24 C 34 22836 23200
35 2013/10/25 C 30 22698 23000
36 2013/10/28 C 27 22807 23000
37 2013/10/29 C 27 22847 23000
38 2013/10/30 C 0 23304 23000
39 2013/10/31 C 383 23206 23200
40 2013/11/1 C 81 23250 24000
41 2013/11/4 C 98 23190 23800
42 2013/11/5 C 70 23039 23800
43 2013/11/6 C 104 23037 23600
44 2013/11/7 C 21 22881 24000
45 2013/11/8 C 78 22744 23400
46 2013/11/11 C 152 23070 23400
47 2013/11/12 C 108 22901 23400
48 2013/11/13 C 41 22464 23400
49 2013/11/14 C 85 22649 23000
50 2013/11/15 C 108 23032 23400
51 2013/11/18 C 154 23660 24000
52 2013/11/19 C 90 23658 24200
53 2013/11/20 C 75 23701 24200
54 2013/11/21 C 30 23580 24200
55 2013/11/22 C 45 23696 24200
56 2013/11/25 C 31 23684 24200
57 2013/11/26 C 30 23681 24000
58 2013/11/27 C 69 23806 23800
59 2013/11/28 C 0 23789 24000
60 2013/11/29 C 475 23881 23800
61 2013/12/2 C 412 24039 24000
62 2013/12/3 C 337 23910 24000
63 2013/12/4 C 41 23729 25000
64 2013/12/5 C 174 23713 24200
65 2013/12/6 C 271 23743 24000
66 2013/12/9 C 33 23811 25000
67 2013/12/10 C 571 23744 24400
68 2013/12/11 C 77 23338 24000
69 2013/12/12 C 74 23218 23800
70 2013/12/13 C 131 23246 23600
71 2013/12/16 C 22 23115 24000
72 2013/12/17 C 101 23069 23400
73 2013/12/18 C 142 23144 23400
74 2013/12/19 C 33 22889 23400
75 2013/12/20 C 84 22812 23000
76 2013/12/23 C 92 22922 23000
77 2013/12/24 C 47 23180 23400
78 2013/12/27 C 31 23243 23400
79 2013/12/31 C 110 23490 24000
80 2014/1/2 C 96 23340 24000
81 2014/1/3 C 81 22817 23600
82 2014/1/6 C 90 22684 23400
83 2014/1/7 C 165 22713 23000
84 2014/1/8 C 131 22997 23400
85 2014/1/9 C 90 22787 23400
86 2014/1/10 C 152 22846 23200
87 2014/1/13 P 80 22889 22200
88 2014/1/14 C 57 22791 23400
89 2014/1/15 C 126 22902 23200
90 2014/1/16 C 131 22986 24400
91 2014/1/17 C 55 23133 23600
92 2014/1/20 C 38 22929 23400
93 2014/1/21 C 24 23033 23600
94 2014/1/22 C 96 23082 23200
95 2014/1/23 C 49 22734 23000
96 2014/1/24 C 33 22450 22800
97 2014/1/27 C 8 21976 22600
98 2014/1/28 C 72 21961 22000
99 2014/1/29 C 0 22142 22200
100 2014/1/30 C 222 22035 22400
risk.free.rate time.to.maturity
1 0.0087 0.1111
2 0.0087 0.1071
3 0.0087 0.1032
4 0.0087 0.0992
5 0.0087 0.0952
6 0.0087 0.0833
7 0.0087 0.0794
8 0.0087 0.0754
9 0.0087 0.0714
10 0.0087 0.0675
11 0.0087 0.0556
12 0.0087 0.0516
13 0.0087 0.0476
14 0.0087 0.0437
15 0.0087 0.0278
16 0.0087 0.0198
17 0.0087 0.0119
18 0.0087 0.3651
19 0.0087 0.1151
20 0.0087 0.1111
21 0.0087 0.1071
22 0.0087 0.0952
23 0.0087 0.0913
24 0.0087 0.0873
25 0.0087 0.0833
26 0.0087 0.0794
27 0.0087 0.0635
28 0.0087 0.0595
29 0.0087 0.0556
30 0.0087 0.0516
31 0.0087 0.0397
32 0.0087 0.0357
33 0.0087 0.0317
34 0.0087 0.0278
35 0.0087 0.0238
36 0.0087 0.0119
37 0.0087 0.0079
38 0.0087 0.0040
39 0.0087 0.1151
40 0.0686 0.1111
41 0.0686 0.0992
42 0.0686 0.0952
43 0.0686 0.0913
44 0.0686 0.0873
45 0.0686 0.0833
46 0.0686 0.0714
47 0.0686 0.0675
48 0.0686 0.0635
49 0.0686 0.0595
50 0.0686 0.0556
51 0.0686 0.0437
52 0.0686 0.0397
53 0.0686 0.0357
54 0.0686 0.0317
55 0.0686 0.0278
56 0.0686 0.0159
57 0.0686 0.0119
58 0.0686 0.0079
59 0.0686 0.0040
60 0.0686 0.1270
61 0.0750 0.1151
62 0.0750 0.1111
63 0.0750 0.1071
64 0.0750 0.1032
65 0.0750 0.0992
66 0.0750 0.0873
67 0.0750 0.4405
68 0.0750 0.0794
69 0.0750 0.0754
70 0.0750 0.0714
71 0.0750 0.0595
72 0.0750 0.0556
73 0.0750 0.0516
74 0.0750 0.0476
75 0.0750 0.0437
76 0.0750 0.0317
77 0.0750 0.0278
78 0.0750 0.0159
79 0.0750 0.1190
80 0.0619 0.1111
81 0.0619 0.1071
82 0.0619 0.0952
83 0.0619 0.0913
84 0.0619 0.0873
85 0.0619 0.0833
86 0.0619 0.0794
87 0.0619 0.0675
88 0.0619 0.0635
89 0.0619 0.0595
90 0.0619 0.2937
91 0.0619 0.0516
92 0.0619 0.0397
93 0.0619 0.0357
94 0.0619 0.0317
95 0.0619 0.0278
96 0.0619 0.0238
97 0.0619 0.0119
98 0.0619 0.0079
99 0.0619 0.0040
100 0.0006 0.1151
然后继续代码:
for(i in 1:length(d[,3]))
+ iv<-EuropeanOptionImpliedVolatility(type="call",value=d[i,3],underlying=d[i,4],strike=d[i,5],dividendYield=0,riskFreeRate=d[i,6],maturity=d[i,7],volatility=0.1)
root not bracketed: f[1e-007,4] -> [9.242558e+000,3.878750e+003],共有16个警告 (用warnings()来显示)
然后输出结果的时候,结果只能显示第1个到第16个的,其他都为0,但是我如果将数据手动输入函数之中,例如第17个,就可以得到0.129473的,而不为0的结果。
小弟完全R语言初学+自学者,希望大神可以指导一下是怎么回事。或者往哪方面思考。