About Data Link

The Data Link dataset by Nasdaq, previously known as Quandl, is a collection of alternative data sets. It has indexed millions of time-series datasets from over 400 sources, which start in different years. This dataset is delivered on several frequencies, but the free data sets have often a daily frequency.


About Nasdaq

"Nasdaq" was initially an acronym for the National Association of Securities Dealers Automated Quotations. It was founded in 1971 by the National Association of Securities Dealers (NASD), now known as the Financial Industry Regulatory Authority (FINRA), with the goal to provide financial services and operate stock exchanges.

On Dec. 4th, 2018, Nasdaq announced it had acquired Quandl, Inc., a leading provider of alternative and core financial data. Quandl was founded by Tammer Kamel in 2012, with goal of making it easy for anyone to find and use high-quality data effectively in their professional decision-making. In 2021, Quandl was replaced by Nasdaq Data Link.


About QuantConnect

QuantConnect was founded in 2012 to serve quants everywhere with the best possible algorithmic trading technology. Seeking to disrupt a notoriously closed-source industry, QuantConnect takes a radically open-source approach to algorithmic trading. Through the QuantConnect web platform, more than 50,000 quants are served every month.


Algorithm Example

class NasdaqDataLinkAlgorithm(QCAlgorithm):

    def Initialize(self) -> None:
        self.SetStartDate(1998, 7, 28)
        self.SetEndDate(1998, 9, 1) 
        self.SetCash(1000000)
        
        ### Requesting Data
        # For premium datasets, provide your API Key
        # NasdaqDataLink.SetAuthCode("<apiKey>")
        
        self.mrugesh_symbol = self.AddData(NasdaqDataLink, 'BSE/BOM512065', Resolution.Daily).Symbol
        # Source: https://data.nasdaq.com/data/BSE/BOM512065-mrugesh-trading-ltd-eod-prices
        
        self.london_gold_symbol = self.AddData(NasdaqCustomColumns, "LBMA/DAILY", Resolution.Daily).Symbol
        # This dataset has multiple data columns, so create a custom class to set the value column name
        # Source: https://data.nasdaq.com/data/LBMA/DAILY-london-gold-fixings-19911999
        
        ### Historical Data
        history = self.History(self.mrugesh_symbol, 1000, Resolution.Daily)
        self.Debug(f"We got {len(history)} items from our history request for {self.mrugesh_symbol} Nasdaq Data Link")

        history = self.History(self.london_gold_symbol, 100, Resolution.Daily)
        self.Debug(f"We got {len(history)} items from our history request for {self.london_gold_symbol} Nasdaq Data Link")

    def OnData(self, slice: Slice) -> None:
        ### Accessing Data
        if slice.ContainsKey(self.mrugesh_symbol):
            self.SetHoldings(self.mrugesh_symbol, -1)
        
        if slice.ContainsKey(self.london_gold_symbol):
            value = slice[self.london_gold_symbol].Value
            

class NasdaqCustomColumns(NasdaqDataLink):
    def __init__(self) -> None:
        # Select the column "am usd".
        self.ValueColumnName = "am usd"

Example Applications

The Nasdaq Data Link sources allow you to explore different kinds of data in their database to develop trading strategies. Examples include the following strategies: