I have a task: to download daily stock quotations, create a portfolio and draw a CML-line. Risk-free rate was given: 6.5% of annual. I decided to convert daily returns to annual returns, using formula from here: $$AnnualReturn = [(DailyReturn + 1)^{365} - 1]*100\%$$ I found out, that result numbers are just insane. For example, for one company price 2017/09/07 was 27.025 , price 2017/09/08 was 27.77. Then $$ DailyReturn = \frac{27.77-27.025}{27.025} = 0.0276$$ $$AnnualReturn = [(1.0276)^{365} - 1]*100\%=2069063\%$$ I suppose I did something wrong. Could you help me, please? And there is one more question: can I convert a daily return to annual return like this? $$AnnualReturn = DailyReturn*365$$

  • 3
    $\begingroup$ Your calculation is not wrong: if you borrowed $\$100$ from your friendly loan shark at $2.76\%$ a day compounded and did not repay it, then you would indeed owe about $\$2$ million at the end of the year; be grateful interest rates are so low, since $3\%$ daily would lead to debt of over $\$4.8$ million. The absurdity is quoting daily changes as annual rates, when there is no prospect of such a return being repeated each and every day. Even the US habit of quoting quarterly GDP changes as annual rates is unwise: if you need an annual rate then look at the actual change over $12$ months $\endgroup$
    – Henry
    Commented Dec 6, 2017 at 16:23
  • $\begingroup$ Oh, I got it, thank you! So I should convert annual risk-free rate to daily rate and create a portfolio with them to avoid this 'absurdity', right? $\endgroup$
    – elfinorr
    Commented Dec 6, 2017 at 17:56

3 Answers 3


So, let me start with your second question. No you cannot multiply by 365. You could approximate it by $$\log(\text{Annual Return})=365*\log(\text{Daily Return}),$$ but for what you are doing, it does not make sense to do so.

You are correct in your annualized rate of return. It is 2069063%. It should be obvious as to why you would not want to do this.

There are two solutions. The first is to convert annual rates, such as the bond rate, from an annual format to a daily format. So make your risk-free rate: $$\text{Daily risk-free rate}=1.065^{\frac{1}{365}}-1=0.0001725485.$$ The second is to search through the dates of your returns and find returns that are 365 days apart, so return would be $$r=\frac{p_{366}}{p_1}.$$

By annualizing daily returns, you are insanely increasing the variability, but it is artificial so it isn't a true increase, it is an artifact of the method you are choosing.


You're both wrong. The correct way to annualize is to take the average daily return (which will typically be a very small number such as 0.0005) and then apply the first formula. Trust me, it works and you won't get a crazy result like the one above, where you just quoted one return instead of the average daily. One other good convention is to only use trading days, which are on average 250, rather than all 365 days of the year.

I know it's an old thread but I had to post this in case anyone else stumbled onto this.

  • 2
    $\begingroup$ This does not seem to contradict Henry's comment, see "there is no prospect of such a return being repeated each and every day". $\endgroup$
    – Giskard
    Commented Jul 30, 2019 at 6:44

It is as simple as this:

Step 1: Calculate Daily return % = (Today Close Price - Yesterday Close Price)*100/Yesterday Close Price

Example: Yesterday Close Price = 200 Today Close Price = 201 Daily Return % = (201-200)*100/200 = 0.5%

Step 2: Annual Return = Daily return % * 365

In Example above: Annual Return % = 0.5*365 % = 182.5 %


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.