I have a dataset with monthly returns (In decimals)

Jan-2008, Feb-2008 .... Dec-2008, Jan-2009 .... Dec-2017

This is what I have done,

# Formula (((1+r1/100) * (1+r2/100) .. ) ^ 1/n ) - 1

df["Rate of Return"] = df["Rate of Return"].apply(lambda x: 1+(x/100))
ann_return = pow(df["Rate of Return"].product(), df.shape[0]) - 1

This doesn't yield a correct answer though.
I'm just confused on how to produce a single number for Annualized Return.
I have the same question for calculation on annualized volatility.
Can anyone point out the correct method when you have monthly data over multiple years?

P.S. I'm new here, please point out if there is anything wrong with the way this was asked.


1 Answer 1

ann_return = df["Rate of Return"].mean()*12
ann_vol = df["Rate of Return"].std()*np.sqrt(12)

You could also use log returns if desired.


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.