Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification on Calculating Excess Returns in Non-US Markets with Different Currencies #126

Closed
kurucan opened this issue Mar 23, 2024 · 3 comments

Comments

@kurucan
Copy link

kurucan commented Mar 23, 2024

Could you provide a detailed explanation to the documentation that elaborates on how excess returns are calculated for non-US markets in currencies other than USD? I am particularly interested in any adjustments or considerations made to account for currency differences. I would like to understand the assumptions for the risk-free rate when calculating excess returns in other currencies?

@northern-64bit
Copy link
Contributor

Hello @kurucan !

I'm not the maintainer, but I have checked the code. Excess returns are defined as returns minus risk free rate. By default the package doesn't define a risk free rate, thus not defining the excess returns.

You should set the risk free rate to the one of the currency that you are denominating the returns/your portfolio in. So if you have your portfolio denominated in EUR and have the returns of a stock in EUR, then you should use the risk free rate "set" by the ECB, in order to calculate the excess returns. If you have a stock in EUR, but you measure your performance in USD (since this is the base currency for you), then you should convert the returns into USD returns and then use the risk free rate of the FED.

As for how currency differences are handled, all currencies must be the same to ensure accurate results, as noted in the models controller:

- All the inputs must be in the same currency and unit for accurate calculations.

Automatic conversion is only done in the financial statements:
- When `convert_currency=True` (automatically enabled with a Premium FMP plan) the currency of the historical data is compared to the currency of the financial statements. If they do not match, the financial statement data is converted to the currency of the historical data. This is done to ensure that calculations such as the Price-to-Earnings Ratio (PE) have both the Share Price and Earnings denoted in the same currency.

So for now you have to convert all the returns into one currency and then do the calculations.

I hope that this helps!

@JerBouma
Copy link
Owner

Thanks for the remarks @northern-64bit but it's good to note that by default the risk free rate is set to the 10 year US Government Bond rate. Whether that makes sense for companies listed in e.g. Euro is up to you.

@kurucan
Copy link
Author

kurucan commented Mar 31, 2024

Thanks for clarifying.

@kurucan kurucan closed this as completed Mar 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants