283 words — categories: trading
Usually, we look at investment returns in terms of annual returns. However, yours may be expressed as daily, weekly, or monthly returns. Here’s how to convert them.
The idea is to use the general formula for returns and compound them to an annualized period.
\[r_a = (1 + r)^n - 1\]
Where \(r_a\) is the annual return, \(r\) is the return (in decimal) and \(n\) is the number of periods in a year.
def annual_return(r, n): r = r / 100 return (1 + r)**n - 1
Say you have a 5% quarterly return because we have four quarters in a year then
annual_return(5, 4) * 100
If you have a 5% monthly return, because we have twelve months in a year then
annual_return(5, 12) * 100
If you have a 0.1% daily return, because we have 365 days in a year then
annual_return(0.1, 365) * 100
If you have a 2% weekly return, because we have 52 weeks in a year then
annual_return(2, 52) * 100
You can have returns for any number of days and convert them to annualized returns by dividing the days in a year by the days in your dataset. In other words, the period becomes the proportion of the year that you have returns for. Let’s say you have a 6% returns over 52 days, then
n = 365 / 52 annual_return(6, n) * 100
It’s all well and good but, how do you go from any given period (daily, monthly, weekly) to any other? This question is not explored as much as far as I can tell. I’ll do a write-up when I find the answer.