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
from AlgorithmImports import *
from QuantConnect.DataSource import *
class NasdaqImporterAlgorithm(QCAlgorithm):
def initialize(self):
self.nasdaq_code = "WIKI/IBM"
## Optional argument - personal token necessary for restricted dataset
# NasdaqDataLink.set_auth_code(self.get_parameter("nasdaq-data-link-api-key"))
self.set_start_date(2014,4,1)
self.set_end_date(datetime.today() - timedelta(1))
self.set_cash(25000)
# Request nasdaq data link data to trade
self.add_data(NasdaqCustomColumns, self.nasdaq_code, Resolution.DAILY, TimeZones.NEW_YORK)
# Create SMA indicator that feed with nasdaq data link data, which can be used to determine trend for trend following trade
self.sma = self.SMA(self.nasdaq_code, 14)
def on_data(self, data):
if not self.portfolio.hold_stock:
self.set_holdings(self.nasdaq_code, 1)
self.debug("Purchased {0} >> {1}".format(self.nasdaq_code, self.time))
self.plot(self.nasdaq_code, "PriceSMA", self.sma.current.value)
# NasdaqDataLink often doesn't use close columns so need to tell LEAN which is the "value" column.
class NasdaqCustomColumns(NasdaqDataLink):
def __init__(self):
# Define ValueColumnName: cannot be None, Empty or non-existant column name
super().__init__("adj. close")
self.value_column_name = "adj. close"
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:
- Using alternative data to regress market regime/asset price.
- Backtesting exotic derivatives or private Equity investments.
Explore Other Datasets
Bybit Crypto Future Price Data
Dataset by CoinAPI
Binance Crypto Future Margin Rate Data
Dataset by QuantConnect
US Equity Options
Dataset by AlgoSeek