An earlier project of mine failed to find a working timing signal for US Treasury yields. I pre-registered 66 tests, locked the held-out window in code, and none passed. One signal looked strong at first (t = −4.62), but that came from overlapping returns. After correcting for serial correlation (Newey-West), it fell to −0.76. That failure taught me two things: lock tests before looking, and timing a single bond gives too few independent bets. So I redesigned the question.
The question. Carry is one of the best-documented premiums in finance. Koijen, Moskowitz, Pedersen and Vrugt (2018) find it across asset classes, including government bonds. I tested whether Treasury carry across the yield curve is a real premium or just rate exposure under another name.
The setup. I built monthly returns for the curve from the Fed's zero-coupon yields (Gürkaynak-Sack-Wright). I wrote down every test and pass/fail bar and tagged them in git before running anything. The 2019–2026 window stayed locked in code until a one-time reveal, and every data access was logged.
Replication first. The paper's construction replicated on my data: Sharpe 0.28 before costs, against their 0.33. It also carried a duration beta of 0.45, meaning a large share of the return came from simply being long bonds.
A design flaw, caught before the reveal. My first rate-neutral version ranked bonds on carry per dollar but held them in DV01-neutral (rate-neutral) sizes, so the ranking and the positions were in different units. I caught this in a pre-registered diagnostic, amended the design to rank on carry per unit of duration, recorded the change, and only then continued.
The result. With rate exposure removed, the premium disappeared. The development-period Sharpe was 0.02 after costs (t = 0.20). On the locked 2019–2026 window it was −0.30 (93 months). Before costs (t = 0.29), random rankings did as well or better in 27.5% of 1,000 shuffles, so the signal can't be told apart from noise.
What it means. In US Treasuries, the carry premium is mostly compensation for holding duration. Take that exposure away and the premium disappears.




