US Equity
Corporate Fundamentals
Introduction
Corporate fundamental data contains all the information on the underlying company of an Equity asset and the information in their financial statements. Since corporate data contains information not found in price and alternative data, adding corporate data to your trading strategies provides you with more information so you can make more informed trading decisions. Corporate fundamental data is available through the US Fundamental Data from Morningstar. To get fundamental data into your algorithm, add a fundamental universe.
Properties
To get fundamental data, access the FineFundamental
properties in your fine universe selection function or access the Fundamentals
property of the Equity
objects in your fundamental universe.
var fundamentals = Securities[_symbol].Fundamentals;
fundamentals = self.Securities[self.symbol].Fundamentals
The US Fundamentals dataset provides FineFundamental objects. To filter FineFundamental objects, you can use the MorningstarSectorCode, MorningstarIndustryGroupCode, and MorningstarIndustryCode enumeration values.
FineFundamental Attributes
FineFundamental objects have the following attributes:
MorningstarSectorCode Enumeration
Sectors are large super categories of data. To access the sector of an Equity, use the MorningstarSectorCode property.
filteredFine = fine.Where(x => x.AssetClassification.MorningstarSectorCode == MorningstarSectorCode.Technology);
filtered_fine = [x for x in fine if x.AssetClassification.MorningstarSectorCode == MorningstarSectorCode.Technology]
The MorningstarSectorCode enumeration has the following members:
MorningstarIndustryGroupCode Enumeration
Industry groups are clusters of related industries which tie together. To access the industry group of an Equity, use the MorningstarIndustryGroupCode property.
filteredFine = fine.Where(x => x.AssetClassification.MorningstarIndustryGroupCode == MorningstarIndustryGroupCode.ApplicationSoftware);
filtered_fine = [x for x in fine if x.AssetClassification.MorningstarIndustryGroupCode == MorningstarIndustryGroupCode.ApplicationSoftware]
The MorningstarIndustryGroupCode enumeration has the following members:
MorningstarIndustryCode Enumeration
Industries are the finest level of classification available and are the individual industries according to the Morningstar classification system. To access the industry group of an Equity, use the MorningstarIndustryCode property:
filteredFine = fine.Where(x => x.AssetClassification.MorningstarIndustryCode == MorningstarIndustryCode.SoftwareApplication);
filtered_fine = [x for x in fine if x.AssetClassification.MorningstarIndustryCode == MorningstarIndustryCode.SoftwareApplication]
The MorningstarIndustryCode enumeration has the following members:
Exchange Id Values
Exchange Id is mapped to represent the exchange that lists the Equity. To access the exchange Id of an Equity, use the PrimaryExchangeID property.
filteredFine = fine.Where(x => x.CompanyReference.PrimaryExchangeID == "NAS");
filtered_fine = [x for x in fine if x.CompanyReference.PrimaryExchangeID == "NAS"]
The exchanges are represented by the following string values:
String Representation | Exchange |
---|---|
NYS | New York Stock Exchange (NYSE) |
NAS | NASDAQ |
ASE | American Stock Exchange (AMEX) |
TSE | Tokyo Stock Exchange |
AMS | Amsterdam Internet Exchange |
SGO | Santiago Stock Exchange |
XMAD | Madrid Stock Exchange |
ASX | Australian Securities Exchange |
BVMF | B3 (stock exchange) |
LON | London Stock Exchange |
TKS | Istanbul Stock Exchange Settlement and Custody Bank |
SHG | Shanghai Exchange |
LIM | Lima Stock Exchange |
FRA | Frankfurt Stock Exchange |
JSE | Johannesburg Stock Exchange |
MIL | Milan Stock Exchange |
TAE | Tel Aviv Stock Exchange |
STO | Stockholm Stock Exchange |
ETR | Deutsche Boerse Xetra Core |
PAR | Paris Stock Exchange |
BUE | Buenos Aires Stock Exchange |
KRX | Korea Exchange |
SWX | SIX Swiss Exchange |
PINX | Pink Sheets (OTC) |
CSE | Canadian Securities Exchange |
PHS | Philippine Stock Exchange |
MEX | Mexican Stock Exchange |
TAI | Taiwan Stock Exchange |
IDX | Indonesia Stock Exchange |
OSL | Oslo Stock Exchange |
BOG | Colombia Stock Exchange |
NSE | National Stock Exchange of India |
HEL | Nasdaq Helsinki |
MISX | Moscow Exchange |
HKG | Hong Kong Stock Exchange |
IST | Istanbul Stock Exchange |
BOM | Bombay Stock Exchange |
TSX | Toronto Stock Exchange |
BRU | Brussels Stock Exchange |
BATS | BATS Global Markets |
ARCX | NYSE Arca |
GREY | Grey Market (OTC) |
DUS | Dusseldorf Stock Exchange |
BER | Berlin Stock Exchange |
ROCO | Taipei Exchange |
CNQ | Canadian Trading and Quotation System Inc. |
BSP | Bangko Sentral ng Pilipinas |
NEOE | NEO Exchange |
Historical Data
To get historical fundamental data, set a warm-up period and save the fundamental data during the warm-up period. It’s not currently possible to make a history request for fundamental data in an algorithm. Subscribe to GitHub Issue #4890 to track the feature progress.
Data Updates
The US Fundmamental dataset only provides the originally-reported figures. If there was a mistake in reporting a figure, the data value isn't fixed later. In live trading, new fundamental data is available to your algorithms at approximately 6 AM Eastern Time (ET) each day. The majority of the corporate data update occurs once per month, but the financial ratios update daily. If there is no new data for a period of time, the previous data is filled forward.