【发布时间】:2023-03-13 06:49:02
【问题描述】:
尝试使用以下来自彭博社的数据构建澳元的即期收益率曲线,RBACOR 指数澳大利亚储备银行银行间隔夜现金利率 0.03 ADBB1M 1m 银行票据 0.005 ADBB2M 2m 银行票据 0.015 ADBB3M 3m 银行票据 0.015 数据为从上周五 2021 年 8 月 13 日开始,但是下面的代码返回错误 RuntimeError:99 次迭代后未达到收敛;最后改进 4.45714e-05,要求精度 1e-12。我可以将精度降低到 1e-04 来完成这项工作,但想检查这里出了什么问题?看起来 100 万美元的银行票据利率低得惊人,而隔夜现金利率却太高了。欢迎/赞赏任何帮助/cmets。
dateStr = '2021-07-30'
pricingDate = ql.DateParser.parseFormatted(dateStr, '%Y-%m-%d')
depoHelpers = []
depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.03/100)),
ql.Period(1, ql.Days),
2,
ql.Australia(),
ql.ModifiedFollowing,
False,
ql.Actual365Fixed()))
depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.0051/100)),
ql.Period('1M'),
2,
ql.Australia(),
ql.ModifiedFollowing,
False,
ql.Actual365Fixed()))
depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.015/100)),
ql.Period('2M'),
2,
ql.Australia(),
ql.ModifiedFollowing,
False,
ql.Actual365Fixed()))
depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.015/100)),
ql.Period('3M'),
2,
ql.Australia(),
ql.ModifiedFollowing,
False,
ql.Actual365Fixed()))
yieldcurve = ql.PiecewiseLogCubicDiscount(pricingDate,
depoHelpers,
ql.Actual360())
yieldcurve.enableExtrapolation()
yieldcurve.dates()
【问题讨论】:
-
你确实有一条非常扭曲的曲线,混合了现货 OIS 和票据收益率:从 3 个基点开始,下降到 0.5 个基点,回到 1.5 个基点,然后持平。我原以为任何方法都难以在如此压缩的时期内适应这么多的转折点。 1m -> 6m OIS 利率持平于 3bp。您使用票据收益率的任何原因? (参见德国同样的情况:EONIA(即现货 OIS)在 -48bp,但 1m Bubil 在 -70bp 左右。)。您是否正在尝试构建债券或掉期收益率曲线?
-
我正在尝试为澳元建立贴现曲线
-
如果您尝试构建澳元 OIS 贴现曲线,您可能会更好地使用 1m 到 6m 的 OIS 费率,例如
ADSOA Curncy(对于 1m)到ADSOF Curncy(对于 6m)。也就是说,我不是澳元短线专家,因此其他人可能对此有所不同。如果您愿意使用 ICAP 定价,您可以指定 IAUS 来源(例如“ADSOA IAUS 货币”)。 -
好的,谢谢。会看看。
-
实际上,我刚刚尝试使用 ADSOA、ADSOB、ADSOC 作为 1m、2m、3m,截至 8 月 13 日,它们的值相同为 0.028。然后加上截至 8 月 13 日值为 0.03 的 RBACOR 指数,我仍然有收敛错误。