# Free or cheap data and tools for Numerai Signals

**URL:** <https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350>\
**Category:** Signals\
**Created:** [May 7, 2020, 4:48am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350 "2020-05-07T04:48:42Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![player1](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/player1/32/88_2.png) [@player1](https://forum.numer.ai/u/player1)\
**Post date:** [May 7, 2020, 4:48am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/1 "2020-05-07T04:48:42Z")

</div>

Please feel free to add any others that you know of. I’m not associate with any of these and I’m also not vouching for the quality of any of them. 🙂

- [Google Finance](https://support.google.com/docs/answer/3093281?hl=en) - Free
- [Yahoo Finance](https://github.com/ranaroussi/yfinance) - Free
- [TenQuant](https://www.tenquant.io/) - Free
- [EDGAR](https://www.sec.gov/edgar/searchedgar/accessing-edgar-data.htm) - Free
- [IEXCloud](https://iexcloud.io/pricing/) - Cheap
- [AlphaVantage](https://www.alphavantage.co/) - Free/Cheap
- [WorldTradingData](https://www.worldtradingdata.com/) - Free/Cheap
- [Tiingo](https://www.tiingo.com/account/billing/pricing) - Free/Cheap
- [Quandl](https://www.quandl.com/) - Some Free
- [Norgate Data](https://norgatedata.com/) - Free Trial / Moderately priced
- [Intrinio](https://intrinio.com/prices) - Moderately priced
- [Polygon](https://polygon.io/pricing) - Expensive
- [Xignite](https://www.xignite.com/) - Free Trial / Might be expensive
- [BarChart](https://www.barchart.com/ondemand) - Might be expensive

---

<div class="post-metadata">

**Author:** ![kainsama](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/kainsama/32/601_2.png) [@kainsama](https://forum.numer.ai/u/kainsama)\
**Post date:** [May 7, 2020, 6:15am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/2 "2020-05-07T06:15:14Z")

</div>

[FMP](https://financialmodelingprep.com/) - Free

---

<div class="post-metadata">

**Author:** ![joakim](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/joakim/32/3442_2.png) [@joakim](https://forum.numer.ai/u/joakim)\
**Post date:** [May 7, 2020, 10:49pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/3 "2020-05-07T22:49:18Z")

</div>

Alternative data (sentiment)

- [StockTwits](https://api.stocktwits.com/developers/docs/start) - Free?
- [Sentdex](http://www.sentdex.com/) - API pricing unknown

---

<div class="post-metadata">

**Author:** ![joakim\_arvidsson](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/joakim_arvidsson/32/88_2.png) [@joakim\_arvidsson](https://forum.numer.ai/u/joakim_arvidsson)\
**Post date:** [June 5, 2020, 8:42pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/4 "2020-06-05T20:42:47Z")

</div>

- [Zipline](https://github.com/quantopian/zipline/blob/master/README.rst) - OSS backtester.

---

<div class="post-metadata">

**Author:** ![joakim](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/joakim/32/3442_2.png) [@joakim](https://forum.numer.ai/u/joakim)\
**Post date:** [June 7, 2020, 11:02pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/5 "2020-06-07T23:02:31Z")

</div>

- [Borsdata](https://borsdata.se/en/pricetable) - Free/Cheap. Focus on Nordic markets. API access requires Pro membership.

I also found a [tutorial on how to analyze financial data](https://towardsdatascience.com/pull-and-analyze-financial-data-using-a-simple-python-package-83e47759c4a7) using the FMP API.

---

<div class="post-metadata">

**Author:** ![ia\_ai](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/ia_ai/32/3543_2.png) [@ia\_ai](https://forum.numer.ai/u/ia_ai)\
**Post date:** [June 8, 2020, 12:59am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/6 "2020-06-08T00:59:02Z")

</div>

For R users, the [tidyquant](https://cran.r-project.org/web/packages/tidyquant/vignettes/TQ00-introduction-to-tidyquant.html) package has quite a few handy [functions](https://business-science.github.io/tidyquant/articles/TQ01-core-functions-in-tidyquant.html) to download data from different sources.

---

<div class="post-metadata">

**Author:** ![sturlese](https://avatars.discourse-cdn.com/v4/letter/s/db5fbb/32.png) [@sturlese](https://forum.numer.ai/u/sturlese)\
**Post date:** [June 8, 2020, 8:33am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/7 "2020-06-08T08:33:39Z")

</div>

[Sharadar](https://www.sharadar.com/) has prices and fundamentals.

---

<div class="post-metadata">

**Author:** ![slyfox](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@slyfox](https://forum.numer.ai/u/slyfox)\
**Post date:** [October 7, 2020, 4:34am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/8 "2020-10-07T04:34:03Z")

</div>

Anyone have any experience with these?

> **[Comprehensive financial data analysis - Koyfin](https://www.koyfin.com/)**
>
> Koyfin provides tools for investors to research stocks & other asset classes. Koyfin covers equities, ETFs, mutual funds, forex, bonds, etc.

> **[Canalyst - Clean data. Fundamental models.](https://canalyst.com/)**
>
> 4,000+ financial models with every KPI that matters, built and updated by our team of analysts.

---

<div class="post-metadata">

**Author:** ![degerhan](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/degerhan/32/3449_2.png) [@degerhan](https://forum.numer.ai/u/degerhan)\
**Post date:** [February 17, 2021, 5:33pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/9 "2021-02-17T17:33:01Z")

</div>

**ISIN codes**  
Signals ticker mapping challenges have taken a good part of the zoom and twitch sessions recently. Just came across this package, another arrow in our quiver:

```auto
# https://pypi.org/project/investpy/
# Financial Data Extraction from Investing.com with Python
!pip install investpy

import investpy
import pandas as pd

pd.DataFrame(
    investpy.stocks.get_stocks_dict(
        country=None,
        columns=["symbol", "country", "name", "full_name", "isin", "currency"],
        as_json=False,
    )
)

```

voilà, you have name, country, and isin codes for 40,000 stocks

| | symbol | country | name | full\_name | isin | currency |
| --- | --- | --- | --- | --- | --- | --- |
| 0 | TS | argentina | Tenaris | Tenaris | LU0156801721 | ARS |
| 1 | APBR | argentina | PETROBRAS ON | Petroleo Brasileiro - Petrobras | BRPETRACNOR9 | ARS |
| 2 | GGAL | argentina | Grupo Financiero Galicia | Grupo Financiero Galicia B | ARP495251018 | ARS |
| 3 | TXAR | argentina | Ternium Argentina | Ternium Argentina SA | ARSIDE010029 | ARS |
| 4 | PAMP | argentina | Pampa Energia | Pampa Energia SA | ARP432631215 | ARS |
| … | … | … | … | … | … | … |

---

<div class="post-metadata">

**Author:** ![sirbradflies](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/sirbradflies/32/2835_2.png) [@sirbradflies](https://forum.numer.ai/u/sirbradflies)\
**Post date:** [February 25, 2021, 4:35pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/10 "2021-02-25T16:35:43Z")

</div>

> [@degerhan](#):
>
> ```auto
> import investpy
> import pandas as pd
> 
> pd.DataFrame(
> investpy.stocks.get_stocks_dict(
> country=None,
> columns=["symbol", "country", "name", "full_name", "isin", "currency"],
> as_json=False,
> )
> )
> 
> ```

Hi Degerhan,

That is very helpful as I’m just now approaching Signals and figuring out how to use the bloomberg tickers. Did you go one step further and match them to the investpy list? How did you match them?

---

<div class="post-metadata">

**Author:** ![degerhan](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/degerhan/32/3449_2.png) [@degerhan](https://forum.numer.ai/u/degerhan)\
**Post date:** [February 25, 2021, 11:03pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/11 "2021-02-25T23:03:19Z")

</div>

@sirbradflies, I did not pursue this further.

In real life I only trade commodity futures spreads, where the symbols are exact and data is extremely clean. I was trying to gather a similar quality dataset for Signals until I realized I was trying to boil the data ocean instead of building useful things.

@arbitrage recently advised in rocketchat that he is working only with US stocks for now (and he is getting solid results). If you remove the US suffix from bloomberg\_ticker, what remains will be the Yahoo ticker for all except about 10 symbols, and historical data coverage is quite good. I’ve decided to just focus on the US stock universe until I get my act together on the modeling side; and expand the dataset at a later phase.

(actually to speed up iterations, I am only working with the largest cap 900 US stocks for now, list here: [SP900](https://gist.github.com/degerhan/e85e9eb407406a406c58c3686ec3c789) )

---

<div class="post-metadata">

**Author:** ![sirbradflies](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/sirbradflies/32/2835_2.png) [@sirbradflies](https://forum.numer.ai/u/sirbradflies)\
**Post date:** [February 26, 2021, 9:01am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/12 "2021-02-26T09:01:21Z")

</div>

hi @degerhan,

Thanks for the tips. I had actually already started focused on US stocks when I realized most of them were easily downloadable (except for Berkshire and a few others 🙂 ).

I’ll share an update if I come up with a robust way to match all the bloomberg tickers on Yahoo Finance.

---

<div class="post-metadata">

**Author:** ![fisagol](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/fisagol/32/1233_2.png) [@fisagol](https://forum.numer.ai/u/fisagol)\
**Post date:** [February 26, 2021, 7:55pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/13 "2021-02-26T19:55:03Z")

</div>

For those who want to get data directly from [FINVIZ](https://finviz.com/) there is a code implemented which helps to get specific data from each of the companies we want.

Attached code:

```
# Data that we want to extract from Finviz Table
metric = ['Price', 'EPS next 5Y', 'Beta', 'Shs Outstand']

def fundamental_metric(soup, metric):
    # the table which stores the data in Finviz has html table attribute class of 'snapshot-td2'
    return soup.find(text = metric).find_next(class_='snapshot-td2').text
   
def get_finviz_data(ticker):
    try:
        url = ("http://finviz.com/quote.ashx?t=" + ticker.lower())
        soup = bs(requests.get(url,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0'}).content)
        dict_finviz = {}        
        for m in metric:   
            dict_finviz[m] = fundamental_metric(soup,m)
        for key, value in dict_finviz.items():
            # replace percentages
            if (value[-1]=='%'):
                dict_finviz[key] = value[:-1]
                dict_finviz[key] = float(dict_finviz[key])
            # billion
            if (value[-1]=='B'):
                dict_finviz[key] = value[:-1]
                dict_finviz[key] = float(dict_finviz[key])*1000000000  
            # million
            if (value[-1]=='M'):
                dict_finviz[key] = value[:-1]
                dict_finviz[key] = float(dict_finviz[key])*1000000
            try:
                dict_finviz[key] = float(dict_finviz[key])
            except:
                pass 
    except Exception as e:
        print (e)
        print ('Not successful parsing ' + ticker + ' data.')        
    return dict_finviz

finviz_data = get_finviz_data(ticker)

finviz_data
```

---

<div class="post-metadata">

**Author:** ![whaleblotter](https://avatars.discourse-cdn.com/v4/letter/w/f19dbf/32.png) [@whaleblotter](https://forum.numer.ai/u/whaleblotter)\
**Post date:** [February 27, 2021, 2:38am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/14 "2021-02-27T02:38:37Z")

</div>

Any thoughts on Alpaca API v2

> **[Historical auctions](https://docs.alpaca.markets/reference/stockauctions-1)**
>
> The historical auctions endpoint provides auction prices for a list of stock symbols between the specified dates.

curl -X GET -H “APCA-API-KEY-ID: …” -H “APCA-API-SECRET-KEY: …” “[https://data.alpaca.markets/v2/stocks/AAPL/trades?start=2021-02-2](https://data.alpaca.markets/v2/stocks/AAPL/trades?start=2021-02-2) 4T00:57:47.317087Z&end=2021-02-25T00:57:47.317087Z”

Free account max end time seems to be utcnow - 15min

---

<div class="post-metadata">

**Author:** ![sirbradflies](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/sirbradflies/32/2835_2.png) [@sirbradflies](https://forum.numer.ai/u/sirbradflies)\
**Post date:** [April 23, 2021, 6:54am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/15 "2021-04-23T06:54:24Z")

</div>

Did anybody find a free data source for order book data?

Thanks

---

<div class="post-metadata">

**Author:** ![crispy\_holiday](https://avatars.discourse-cdn.com/v4/letter/c/87869e/32.png) [@crispy\_holiday](https://forum.numer.ai/u/crispy_holiday)\
**Post date:** [June 15, 2021, 6:05am UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/16 "2021-06-15T06:05:13Z")

</div>

Does anyone have experience with [https://eodhistoricaldata.com](https://eodhistoricaldata.com)?

---

<div class="post-metadata">

**Author:** ![mugamma](https://avatars.discourse-cdn.com/v4/letter/m/c57346/32.png) [@mugamma](https://forum.numer.ai/u/mugamma)\
**Post date:** [June 15, 2021, 12:46pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/17 "2021-06-15T12:46:36Z")

</div>

> [@crispy\_holiday](#):
>
> Does anyone have experience with [https://eodhistoricaldata.com](https://eodhistoricaldata.com)?

This might be an important detail from their disclaimer -

> [@](#):
>
> All CFDs (stocks, indices, futures, mutual funds, ETFs), and Forex are not provided by exchanges but rather by market makers, and so prices may not be accurate and may differ from the actual market price, meaning prices are indicative and not appropriate for trading purposes.

---

<div class="post-metadata">

**Author:** ![autratec](https://avatars.discourse-cdn.com/v4/letter/a/6bbea6/32.png) [@autratec](https://forum.numer.ai/u/autratec)\
**Post date:** [June 30, 2021, 12:38pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/18 "2021-06-30T12:38:13Z")

</div>

Hi, I want to fetch last 48 days close price by every trick. Is there any free api resource can be suggested ?

---

<div class="post-metadata">

**Author:** ![gammarat](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/gammarat/32/3281_2.png) [@gammarat](https://forum.numer.ai/u/gammarat)\
**Post date:** [July 23, 2021, 12:12pm UTC](https://forum.numer.ai/t/free-or-cheap-data-and-tools-for-numerai-signals/350/19 "2021-07-23T12:12:06Z")

</div>

> [@crispy\_holiday](#):
>
> Does anyone have experience with [https://eodhistoricaldata.com](https://eodhistoricaldata.com)?

I’ve just started using them, along with Altman’s [UndocumentedMatLab](https://undocumentedmatlab.com/EODML) software. So far, so good, we’ll see how it goes. EOD seems to have a lot of info available, which should take a lot of the more tedious programming tasks off the table.

EOD [provides support for other languages](https://eodhistoricaldata.com/financial-apis/category/excel-python-php-laravel-java-matlab-examples/), and the [data prices](https://eodhistoricaldata.com/pricing) aren’t outrageous. It would be great if Numerai could work a deal though them (though I can understand why they might not want to do so); perhaps interested individuals could figure out a way to access the data via some sort of group account. IDK, I’m just throwing spaghetti at the walls now…
