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

Quandl is dead, remove it #86

Open
fmilthaler opened this issue Jul 11, 2023 · 12 comments
Open

Quandl is dead, remove it #86

fmilthaler opened this issue Jul 11, 2023 · 12 comments

Comments

@fmilthaler
Copy link
Owner

No description provided.

@PietropaoloFrisoni
Copy link
Collaborator

I totally agree!

@wasimnoordin
Copy link

Hi, sorry if this is a silly question, I'm new to QuantFinance!

Why is Quandl not a good data source? Since its dead, can this program still be used? Thanks!

@fmilthaler
Copy link
Owner Author

Hi @wasimnoordin, not a silly question at all. :)

First of all, thank you for finding your way to this project and raising this question.

  • This program (FinQuant) can still be used today, as it allows you to retrieve stock price data from either Quandl OR Yahoo Finance (by using the Python package yfinance.
  • Quandl is (or at least was) a good source to get stock price data. I am currently not sure if recent data can be pulled from their service. Recent attempts of mine resulted in me being able to get data from 2015 or 2017, but I was unable to get more recent data. I just reached out to their support to get to the bottom of this. If this is just a misconfiguration or it can be fixed, FinQuant will continue to make use of Quandl.

After a long pause, we are currently working on FinQuant again to add new features and more.

If you are interested, have a look at the examples in the folder example or have a look at the documentation.

@wasimnoordin
Copy link

Hi @fmilthaler. Thank you for taking the time to explain this to me.

If I may ask, is the finquant folder the main source code one for the project? I.e. this program runs on the code from this folder alone, right? And the other folders that you mentioned, i.e. examples, are pretty much used as examples scripts/inputs for the program, but aren't necessary and can be changed by the user? Same goes with tests - I believe these are unit tests?

Thanks :)

@fmilthaler
Copy link
Owner Author

Hi @wasimnoordin.
That is correct. Here a quick description of what is in the folders:

  • finquant: this folder contains all the core code/functionality. Everything that is need to run the program is in here.
  • data: contains example data used in examples and tests
  • docs: documentation files
  • example: as the name suggests, examples are found in here
  • images: contains logos and example images for the readme
  • scripts: contains shell and python scripts to automate certain tasks (more of those are coming very soon)
  • tests: unit tests (which could be improved and extended tbh)
  • tex: svg of latex equations for the readme

Hope that helps and you find the program useful :)

@wasimnoordin
Copy link

Fantastic response, thank you for elaborating on this for a noob.

One last question about the data sources (I promise!). From looking at the portfolio file, it looks like the main evaluation and data importing happens here. Am I correct in assuming that this portfolio file accounts for the imports from quandl and yhf as dataframes?

On an unrelated note, are there any plans to include other metrics for portfolio optimisation? By this I refer to additional ratios (calmar, sortino, tail etc.), additional optimisation algorithms (HRP), or other metrics (win ratio, alpha, beta).

Thanks again for your help and best of luck in development :)

@fmilthaler
Copy link
Owner Author

fmilthaler commented Jul 24, 2023

That is also correct: in the portfolio.py is where the main action happens (until the code is refactored, as the current structure is not that great) ;)

portfolio.py contains a class for a financial portfolio, that holds the stocks you are interested in, and can download stock price data for you through either quandl or yfinance. Supporting functions and classes are found in the other files. More about it can be found in the documentation.

In regard to addtional ratios etc, we are lucky to have @PietropaoloFrisoni involved who is currently adding new features. Also, there is a PR for the Sortino ratio, that should be merge sometime soon.

If you are interested in adding some features yourself, you are more than welcome to contribute to the project. :)

@wasimnoordin
Copy link

Awesome, thank you both @fmilthaler @PietropaoloFrisoni for your hard work and clear explanations! I would love to contribute, but I am quite new, in general, to this so will probably leave it to the pros ;)

@PietropaoloFrisoni
Copy link
Collaborator

Hi @wasimnoordin , thank you so much for your words and suggestions.

As @fmilthaler anticipated, we are working on new features. Among the metrics you mentioned, apart from the Sortino ratio, the CAPM beta parameter has just been implemented. The alpha parameter should be added soon.

You are more than welcome if you want to contribute : )

All the best

@pythonhacker
Copy link

@fmilthaler - Not sure if it helps, but I am user of the package as well and the functions to build portfolio did not work for me by default. They worked only when I changed the argument data_api to yfinance from default quandl.

@PietropaoloFrisoni
Copy link
Collaborator

Hello @pythonhacker , thanks for your report.

The functions to build the portfolio did not work for me either in the first place. Then I figured out that it was due to my quandl API key, which I fixed (although I always use yfinance to run simulations).

If your case were different, I would like to know the resulting error message if you have time to copy and paste the code (just out of curiosity).

All the best

@IraitzM
Copy link

IraitzM commented May 29, 2024

Hi! Not sure how alive the project is but would like to contribute. Regarding this item, I have used yfinance before but not quandl so not sure if it is worth keeping it or we could simply remove it. If that is the case, I would like to work on that feature and check other things meanwhile such as the package versioning (seems not to like latest versions of pandas).

Cheers

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

5 participants