3

Let's assume that the relevant pillar $t$ of your curve is currently (exclusively) calibrated using the reference instrument $f_0$ at market quote $q_0$. The instrument could be a swap, a forward rate agreement, tenor basis swap... In what follows, I simplify somewhat in using scalar expressions; in practice you may see gradients / vector valued functions ...


2

First of all, I would re-order your approches this way Monte-Carlo of daily returns Bootstrap of daily returns Block Bootstrap of 20 days Second I would like to comment on what you want to do with the data? It seems to me that you target to implement a "sliding (20 days) robust Markowitz portfolio". It leads to the question what kind of ...


2

So, the error lied as commented on the collision on the 2y-point between FRA and swap. By adding this line to the FRA-section: elif 'M' in tenor: fra_start = int(tenor[0:tenor.find('M')]) - 6 helpers.append( ql.FraRateHelper(ql.QuoteHandle(ql.SimpleQuote(rate/100)),fra_start, euribor6M) ) to take into account the period of the FRA (correct me if I'm ...


2

A first step would obvisouly be to check if the curve you built replicates the input instruments. A second step might be to check the forwards to see if there is irregular behaviour around the curve nodes. Look at a plot of daily 3m or 6m forwards which should be smooth. Different interpolation methods will generate diferent results and for this might I ...


2

On the original question regarding the null maturity date, this looks like a bug in the code for the constructor that you are hitting i.e. when it is supplied an explicit iborEndDate and Futures::Type is ASX and the price and convexity are supplied as numbers as opposed to quote handles. You can see here in the C++ code that maturityDate_ is not set to ...


1

The arch package have time-series bootstrap methods: The arch package in Python have implemented the stationary (block) bootstrap (among others, see this link) of Politis and Romano (1994), that keep the bootstrap re-samples stationary and avoid breaking the dependence structure in the data. This method is commonly used when bootstrapping time-series data. ...


1

When you're taking the SOFR OIS and building the SOFR curve, you are really using the swaps to bootstrap a curve that is the expected fwd rates in a "natural" measure. So you can just bootstrap without worrying about convexity at this step. Now you might also use SOFR futures and there you may need a futures convexity adjustment. See here https://...


1

I'm not used to working with ASX Futures but might I suggest an alternative construction of the helper. Because STIR Futures constracts are linked to a particular index, you can use that for the conventions. In your case: index = ql.Bbsw3M() startDate = ql.Date(11,6,2021) helper = ql.FuturesRateHelper(99.95, startDate, index, 0, ql.Futures.ASX) print(helper....


Only top voted, non community-wiki answers of a minimum length are eligible