Skip to content
All library documents

Testing Bond Momentum with Monthly Ranking and Rebalancing

Article Quant Q&A · Author: kdk

Summary

The document outlines a way to test a cross-sectional momentum strategy on monthly bond data. At each rebalancing month, use each eligible bond’s return over the defined lookback period to rank the universe and assign bonds to ten portfolios, from past losers to past winners. The proposed strategy buys the winner group and sells the loser group, then evaluates performance over the subsequent holding period.

The response stresses repeating the process for every month rather than treating portfolio membership as fixed. Each rebalance requires identifying bonds that have already been issued and have not matured, calculating past performance for ranking, and calculating subsequent performance for evaluation. Bond returns must be measured correctly, including coupons and the distinction between clean and dirty prices. The method is a workflow rather than a reported empirical result; it offers no performance findings and notes that tracking rankings, memberships, and overlapping evaluation periods requires careful bookkeeping.

Key ideas

  • Rank eligible bonds each month using returns over the chosen momentum lookback window.
  • Form portfolios from the monthly ranks and evaluate their returns during the following holding period.
  • Repeat ranking and portfolio formation at every rebalancing date because membership changes over time.
  • Exclude bonds that have not yet been issued or have already matured at the relevant date.
  • Include coupon payments and handle clean and dirty prices correctly when measuring bond performance.

Tags

Full text
# How to implement momentum strategy using R


# How to implement momentum strategy using R












I am trying to see if momentum strategy has a profitability in a bond market. I have a bond dataset which is a panel data and it is monthly. It looks something like the table below.

For each month t, I am trying to form a 10 portfolio based on their return on t-3 to t-1 period. So each month there will be 10 portfolios p1(the loser) to p10(the winner) and I am going to but the winner and sell the loser and hold it for another 3 months (t+1 to t+3) and see if this gives profit.

But I just can't think of a good approach to implement this. I think it is complicated because each month I would have different portfolios. I don't know if my explanation was clear enough but any advice?

Thanks kdk.

## Answer by Richi Wa (score 1, accepted)

https://quant.stackexchange.com/a/24844

I assume that you can do a correct performance calculation for bonds (taking into account coupons, clean and dirty prices).

Then for each month you can do the following:

- extract all live (non matured, already issued) bonds from the dataset together with their performance: past performance for momentum, future performance for evaluation of the method.

- Calculate their momentum as you have defined it, rank the bonds, define the 10 portfolios

- Calculate the performance of each of the portfolios for the evaluation period

And you do the steps 1 to 3 for each rebalancing month. These are quite clear steps but of course you have to do the book-keeping of performance, ranking/portfolio membership and performance which is cumbersome.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.