为何QuantLib中OIS Rate Helper的营业日惯例被硬编码为Modified Following?
关于QuantLib中MakeOIS硬编码营业日惯例的问题
1. 硬编码Modified Following的原因
- 从市场实操来看,绝大多数OIS(隔夜指数互换)确实采用Modified Following(MF)作为营业日惯例,这是主流币种(如美元、欧元)OIS合约的行业通用标准。QuantLib的
MakeOIS作为便捷构建工具,设计时优先适配这种最常见的场景,所以把MF惯例硬编码进去,减少常规用户的配置成本。
2. 是否可以自定义日程表?
- 可以自定义,但无法直接通过
MakeOIS的参数修改。因为MakeOIS是封装了默认合约条款的快捷工具,若要调整营业日惯例,得绕过它手动构建OvernightIndexedSwap对象:- 先根据需求创建自定义
Schedule,指定你需要的营业日惯例(比如Following、Preceding等); - 用这个自定义的
Schedule初始化OvernightIndexedSwap,同时传入隔夜指数、名义金额等其他必要参数。
- 先根据需求创建自定义
简单代码示例:
// 创建自定义日程表,替换为你需要的营业日惯例 Schedule customSchedule(startDate, endDate, Period(paymentFrequency), calendar, Following, // 这里替换成目标惯例 Following, rule, usedEndOfMonth); // 手动构建OvernightIndexedSwap ext::shared_ptr<OvernightIndexedSwap> ois = ext::make_shared<OvernightIndexedSwap>( OvernightIndexedSwap::Payer, nominal, customSchedule, fixedRate, dayCounter, overnightIndex );
- 如果需要频繁自定义OIS日程条款,也可以自己封装一个
MakeOIS的变体类,添加营业日惯例参数,内部用传入参数生成Schedule,兼顾便捷性和自定义需求。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

