Commit 6a18dc9
committed
Add MultipleResetsSwap instrument and rate helper
Implements issue #2138: a fixed-vs-floating swap whose floating leg coupons are
determined by compounding or averaging multiple consecutive Ibor fixings within
each accrual period.
Adds MultipleResetsSwap (inheriting FixedVsFloatingSwap, giving fairRate(),
fairSpread(), and BPS methods for free), a MakeMultipleResetsSwap fluent builder,
and MultipleResetsSwapRateHelper for bootstrapping yield curves from
multiple-resets swap quotes. The floating leg is built via the existing
MultipleResetsLeg/coupon infrastructure. Tests cover fair-rate pricing,
payer/receiver leg NPV consistency, averaging vs. compounding differentiation,
and end-to-end bootstrapping at 1Y/2Y/3Y.
Relates to #2138.1 parent 81d819d commit 6a18dc9
File tree
18 files changed
+820
-0
lines changed- ql
- instruments
- termstructures/yield
- test-suite
18 files changed
+820
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
933 | 933 | | |
934 | 934 | | |
935 | 935 | | |
| 936 | + | |
936 | 937 | | |
937 | 938 | | |
938 | 939 | | |
939 | 940 | | |
940 | 941 | | |
941 | 942 | | |
| 943 | + | |
942 | 944 | | |
943 | 945 | | |
944 | 946 | | |
| |||
1790 | 1792 | | |
1791 | 1793 | | |
1792 | 1794 | | |
| 1795 | + | |
1793 | 1796 | | |
1794 | 1797 | | |
1795 | 1798 | | |
| |||
2212 | 2215 | | |
2213 | 2216 | | |
2214 | 2217 | | |
| 2218 | + | |
2215 | 2219 | | |
2216 | 2220 | | |
2217 | 2221 | | |
2218 | 2222 | | |
2219 | 2223 | | |
2220 | 2224 | | |
| 2225 | + | |
2221 | 2226 | | |
2222 | 2227 | | |
2223 | 2228 | | |
| |||
2796 | 2801 | | |
2797 | 2802 | | |
2798 | 2803 | | |
| 2804 | + | |
2799 | 2805 | | |
2800 | 2806 | | |
2801 | 2807 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
861 | 861 | | |
862 | 862 | | |
863 | 863 | | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
864 | 867 | | |
865 | 868 | | |
866 | 869 | | |
| |||
879 | 882 | | |
880 | 883 | | |
881 | 884 | | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
882 | 888 | | |
883 | 889 | | |
884 | 890 | | |
| |||
2187 | 2193 | | |
2188 | 2194 | | |
2189 | 2195 | | |
| 2196 | + | |
| 2197 | + | |
| 2198 | + | |
2190 | 2199 | | |
2191 | 2200 | | |
2192 | 2201 | | |
| |||
4826 | 4835 | | |
4827 | 4836 | | |
4828 | 4837 | | |
| 4838 | + | |
| 4839 | + | |
| 4840 | + | |
4829 | 4841 | | |
4830 | 4842 | | |
4831 | 4843 | | |
| |||
4844 | 4856 | | |
4845 | 4857 | | |
4846 | 4858 | | |
| 4859 | + | |
| 4860 | + | |
| 4861 | + | |
4847 | 4862 | | |
4848 | 4863 | | |
4849 | 4864 | | |
| |||
5702 | 5717 | | |
5703 | 5718 | | |
5704 | 5719 | | |
| 5720 | + | |
| 5721 | + | |
| 5722 | + | |
5705 | 5723 | | |
5706 | 5724 | | |
5707 | 5725 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
283 | 283 | | |
284 | 284 | | |
285 | 285 | | |
| 286 | + | |
286 | 287 | | |
287 | 288 | | |
288 | 289 | | |
289 | 290 | | |
290 | 291 | | |
291 | 292 | | |
| 293 | + | |
292 | 294 | | |
293 | 295 | | |
294 | 296 | | |
| |||
876 | 878 | | |
877 | 879 | | |
878 | 880 | | |
| 881 | + | |
879 | 882 | | |
880 | 883 | | |
881 | 884 | | |
| |||
1363 | 1366 | | |
1364 | 1367 | | |
1365 | 1368 | | |
| 1369 | + | |
1366 | 1370 | | |
1367 | 1371 | | |
1368 | 1372 | | |
1369 | 1373 | | |
1370 | 1374 | | |
1371 | 1375 | | |
| 1376 | + | |
1372 | 1377 | | |
1373 | 1378 | | |
1374 | 1379 | | |
| |||
2162 | 2167 | | |
2163 | 2168 | | |
2164 | 2169 | | |
| 2170 | + | |
2165 | 2171 | | |
2166 | 2172 | | |
2167 | 2173 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| 55 | + | |
54 | 56 | | |
55 | 57 | | |
56 | 58 | | |
| |||
119 | 121 | | |
120 | 122 | | |
121 | 123 | | |
| 124 | + | |
122 | 125 | | |
123 | 126 | | |
124 | 127 | | |
125 | 128 | | |
126 | 129 | | |
127 | 130 | | |
| 131 | + | |
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
| 50 | + | |
49 | 51 | | |
50 | 52 | | |
51 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
0 commit comments