Okay, here's something anyway. I used the 10 year government bond interest rates from Schillers data (although looking at the data I think there is an awful lot of imputation going on to get monthly interest rates at the beginning of his time series) and calculated monthly interest returns from the annual rates as (1+annual interest rate)^(1/12) - 1 and
monthly appreciation (or loss) of bond value as previous_interest_rate/current_interest rate (so if interest rates doubles, the old bond would be worth half as much, while if the interest rate are cut in half, old bonds are worth twice as much). I'm not confident that second half is the correct way to do things, but it at least produces numbers that seem reasonable. (See comment from beltim below on the right way to calculate this.)
This lets me run three scenarios forward for every randomly selected start month. Putting $100k in the stock market, putting $100k in 10 year government bonds, or leaving $100k in the bank.
Of course the problem is no one, myself included, wants to look at 500 or 1000 of these plots. So in the figure below, I've recreated the top left panel from my original post for stocks, done the same for bonds, and then made a summary panel at the bottom that looks across all 500 simulations each month, and reports the odds that stocks outperformed both bonds and cash, that bonds outperformed stocks and cash, or that cash out performed bonds and stocks.
Now with the corrected bond returns. See
the original version I posted here.What's interesting to me is that in some ways this is a lot less useful result. If you can tolerate some uncertainty, stocks are still the most likely to produce the highest return at any point in the simulation. 10 year government bonds (assuming both that the underlying data is good and that my math has some bearing on reality, do a better job than cash, but it still takes about four years before there's no chance of cash outperforming both bonds and stocks.