I’m curious (as the developer of Yields.jl) what you are looking for. I’m not intending Yields.jl to be a trading-desk level tool, but I’m wondering if there are features you are looking for that would be a fit for Yields.jl
Sure. What I eventually want to do is the following.
For USD:
- Set as of date (either today or past date)
- Create a list of instruments that will be used to calibrate the yield curve (meaning, retrieve say the definitions of the first 8 IMM SOFR futures and swap definitions with exact cash flow dates for a set of maturities)
- Calibrate a SOFR discount curve that gives 0 NPV for each of the above instrument, with some external constraints on the shape of curve
- Query that curve for the usual: disount rates, forward rates, etc.
For EUR:
- Same as above except I need to jointly calibrate a EURIBOR and an ESTR curve.
Main point is I need to be instrument aware. Not generic, textbook (Hull or other) instrument, but actual tradable market instrument, with appropriate precision (often the last cashflow of a 1y swap is not exactly at time 1.0, if only for the fact that swaps settle T+1 or T+2).
My understanding is that only QuantLib C++ (not yet .jl) has the facilities to create the instruments according to their exact definitions.
Which is probably what you’d call trading-desk level. I’m a derivatives trader so I that’s what I’m after, trading level. Not market-making level though (that would be one extra step, and one for which I have no need at this point).
This was discussed a bit on #finance on slack, but Bank of Canada has a pretty healthy set of Julia packages: Bank of Canada · GitHub
Not sure whether this is the right thread for this, but I recently wrote a pedagogical notebook how to implement the Sequence Space Jacobian (SSJ) method by Auclert et al. (2021) in Julia. Perhaps it is of interest for some people.
- Everything is implemented from scratch, no black box packages
- Various figures from the original paper are replicated
- The HetBlock-Jacobian is obtained using Automatic Differentiation (ForwardDiff.jl)
- Emphasis was on simplicity, so I didn’t implement various optimizations that would further increase speed.
Find the notebook here.
I am curious if you could share a spreadsheet or alternative implementation so I could test/work towards day-level accuracy. I think it should be possible - with a rewrite of Yields.jl into FinanceModels.jl, the fitting of generic instruments is the normal way of using the package now. I’d be happy to explore this further if you could share a reference example that I could follow.
I’m interested! Thanks a lot.