fmilthaler / FinQuant

A program for financial portfolio management, analysis and optimisation.
MIT License
1.45k stars 201 forks source link

Quandl is dead, remove it #86

Open fmilthaler opened 1 year ago

PietropaoloFrisoni commented 1 year ago

I totally agree!

wasimnoordin commented 1 year ago

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 commented 1 year ago

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

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

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 commented 1 year ago

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 commented 1 year ago

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

Hope that helps and you find the program useful :)

wasimnoordin commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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 commented 6 months ago

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