This strategy is very similar to the Buy and Hold of 3M TBills. Please read that blog for more information. This is the description of the strategy:
- Buy $10 MM worth of the current 10Y on-the-run (OTR).
- On each auction roll to the new 10Y (we actually roll on issue date). We stay fully invested in each roll.
- At the end of the simulation we liquidate the positions.
- Which translates into this strategy script:
var K = 10000000;
function MarkBook() {
context.AddMark(vars.OTR, vars.PriceOTR);
if (vars.PriceNextOTR!=null) context.AddMark(vars.NextOTR, vars.PriceNextOTR);
}
function openTrade(dateS, input, tsy, price, comment) {
var settle = Funcs.TsyBestMarketInputToSettle(dateS, input, null);
var dirty = Funcs.FINCADToDecimal(Funcs.TsyPriceToDirty(tsy, settle, price))
var q = Math.Floor(book.NAV/(dirty/100) / 1000 ) * 1000;
context.AddTrade(null, tsy, q, price, comment);
}
function event_OpenBook() {
context.AddBookTag("RepoLongs","OFF");
context.AddCapital(K, "Initial K");
MarkBook();
openTrade(vars.DateS, vars.InputOTR, vars.OTR, vars.PriceOTR, "Initial Buy");
}
function event_OpenDay() {
MarkBook();
}
function event_CloseDay() {
if (vars.Switch == "YES") {
context.Liquidate();
openTrade(vars.DateS, vars.InputNextOTR, vars.NextOTR, vars.PriceNextOTR, "Switch: buy");
}
}
function event_CloseBook() {
context.Liquidate();
}
- The simulation produces the following trades:
NOTES:
- One initial trade: “Initial Buy”
- Followed by one roll for each new auction: “Switch:sell” / “switch:buy”
- Followed by a liquidation trade at the end of the simulation: “Liquidate”
- Which produces the following returns:
- If we compare the monthly returns with those of a 10Y total return index, we get the following statistics on their differences. It’s a reasonable replication of the index!
NOTES:
- On average the differences between the 2 streams of returns are –0.76 bps… the match is pretty close.
- If we didn’t stay fully invested, and kept rolling the same initial quantity of bonds, the differences would be bigger (as shown in the table below). Clearly the Merrill index stays fully invested:
Adjustments to SAMOA made from this exercise
In our database, the following bonds did not receive a first coupon on issue date. This was a discrepancy with the index, and we proceeded to make the correction to match the index.
| T 7.5 05/15/2002 |
| T 5.875 02/15/2004 |
| T 5.75 08/15/2010 |
| T 5 02/15/2011 |
| T 5 08/15/2011 |
| T 4.875 02/15/2012 |
| T 4.375 08/15/2012 |
| T 6.5 02/15/2010 |