Files
quantconnect--lean/Common/Data/Fundamental/Generated/AssetClassification.cs
2018-08-01 01:04:17 +02:00

289 lines
16 KiB
C#

/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//------------------------------------------------------------------------------
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//------------------------------------------------------------------------------
// To get up to date fundamental definition files for your hedgefund contact sales@quantconnect.com
using System;
using System.IO;
using Newtonsoft.Json;
namespace QuantConnect.Data.Fundamental
{
/// <summary>
/// Definition of the AssetClassification class
/// </summary>
public class AssetClassification
{
/// <summary>
/// The purpose of the Stock Types is to group companies according to the underlying fundamentals of their business. They answer the
/// question: If I buy this stock, what kind of company am I buying? Unlike the style box, the emphasis with the Stock Types is on
/// income statement, balance sheet, and cash-flow data-not price data or valuation multiples. We focus on the company, not the
/// stock. Morningstar calculates this figure in-house on a monthly basis.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3000
/// </remarks>
[JsonProperty("3000")]
public int StockType { get; set; }
/// <summary>
/// The Morningstar Equity Style Box is a grid that provides a graphical representation of the investment style of stocks and portfolios.
/// It classifies securities according to market capitalization (the vertical axis) and value-growth scores (the horizontal axis) and allows
/// us to provide analysis on a 5-by-5 Style Box as well as providing the traditional style box assignment, which is the basis for the
/// Morningstar Category. Two of the style categories, value and growth, are common to both stocks and portfolios. However, for
/// stocks, the central column of the style box represents the core style (those stocks for which neither value nor growth
/// characteristics dominate); for portfolios, it represents the blend style.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3001
/// </remarks>
[JsonProperty("3001")]
public int StyleBox { get; set; }
/// <summary>
/// The growth grade is based on the trend in revenue per share using data from the past five years. For the purpose of calculating
/// revenue per share we use the past five years' revenue figures and corresponding year-end fully diluted shares outstanding; if year-
/// end fully diluted shares outstanding is not available, we calculate this figure by dividing the company's reported net income
/// applicable to common shareholders by the reported fully diluted earnings per share. A company must have a minimum of four
/// consecutive years of positive and non-zero revenue, including the latest fiscal year, to qualify for a grade.
/// In calculating the revenue per share growth rate, we calculate the slope of the regression line of historical revenue per share. We
/// then divide the slope of the regression line by the arithmetic average of historical revenue per share figures. The result of the
/// regression is a normalized historical increase or decrease in the rate of growth for sales per share. We then calculate a z-score by
/// subtracting the universe mean revenue growth from the company's revenue growth, and dividing by the standard deviation of the
/// universe's growth rates.
/// Stocks are sorted based on the z-score of their revenue per share growth rate calculated above, from the most negative z-score to
/// the most positive z-score. Stocks are then ranked based on their z-score from 1 to the total number of qualified stocks. We assign
/// grades based on this ranking. Stocks are assigned A, B, C, D, or F. Morningstar calculates this figure in-house on a monthly basis.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3002
/// </remarks>
[JsonProperty("3002")]
public string GrowthGrade { get; set; }
/// <summary>
/// Instead of using accounting-based ratios to formulate a measure to reflect the financial health of a firm, we use structural or
/// contingent claim models. Structural models take advantage of both market information and accounting financial information. The
/// firm's equity in such models is viewed as a call option on the value of the firm's assets. If the value of the assets is not sufficient to
/// cover the firm's liabilities (the strike price), default is expected to occur, and the call option expires worthless and the firm is turned
/// over to its creditors. To estimate a distance to default, the value of the firm's liabilities is obtained from the firm's latest balance
/// sheet and incorporated into the model. We then rank the calculated distance to default and award 10% of the universe A's, 20%
/// B's, 40% C's, 20% D's, and 10% F's. Morningstar calculates this figure in-house on a daily basis.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3003
/// </remarks>
[JsonProperty("3003")]
public string FinancialHealthGrade { get; set; }
/// <summary>
/// The profitability grade for all qualified companies in Morningstar's stock universe is based on valuation of return on shareholders'
/// equity (ROE) using data from the past five years. Morningstar's universe of stocks is first filtered for adequacy of historical ROE
/// figures. Companies with less than four years of consecutive ROE figures including the ROE figure for the latest fiscal year are tossed
/// from calculations and are assigned "--" for the profitability grade. For the remaining qualified universe of stocks the profitability
/// grade is based on the valuation of the following three components, which are assigned different weights; the historical growth rate
/// of ROE, the average level of historical ROE, the level of ROE in the latest fiscal year of the company.
/// Stocks are assigned A, B, C, D, or F. Morningstar calculates this figure in-house on a monthly basis.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3004
/// </remarks>
[JsonProperty("3004")]
public string ProfitabilityGrade { get; set; }
/// <summary>
/// Equities are mapped into one of 148 industries, the one which most accurately reflects the underlying business of that company.
/// This mapping is based on publicly available information about each company and uses annual reports, Form
/// 10-Ks and Morningstar Equity Analyst input as its primary source. Other secondary sources of information may include company
/// web sites, sell-side research (if available) and trade publications. By and large, equities are mapped into the industries that best
/// reflect each company's largest source of revenue and income. If the company has more than three sources of revenue and income
/// and there is no clear dominant revenue and income stream, the company is assigned to the Conglomerates industry. Based on
/// Morningstar analyst research or other third party information, Morningstar may change industry assignments to more accurately
/// reflect the changing businesses of companies.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3005
/// </remarks>
[JsonProperty("3005")]
public int MorningstarIndustryCode { get; set; }
/// <summary>
/// Industries are mapped into 69 industry groups based on their common operational characteristics. If a particular industry has unique
/// operating characteristics-or simply lacks commonality with other industries-it would map into its own group. However, any
/// industry group containing just one single industry does not necessarily imply that that industry is dominant or otherwise important.
/// The assignment simply reflects the lack of a sufficient amount of shared traits among industries. See appendix for mappings.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3006
/// </remarks>
[JsonProperty("3006")]
public int MorningstarIndustryGroupCode { get; set; }
/// <summary>
/// Industry groups are consolidated into 11 sectors. See appendix for mappings.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3007
/// </remarks>
[JsonProperty("3007")]
public int MorningstarSectorCode { get; set; }
/// <summary>
/// Sectors are consolidated into three major economic spheres or Super Sectors: Cyclical, Defensive and Sensitive. See appendix for
/// mappings.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3008
/// </remarks>
[JsonProperty("3008")]
public int MorningstarEconomySphereCode { get; set; }
/// <summary>
/// Standard Industrial Classification System (SIC) is a system for classifying a business according to economic activity. See separate
/// reference document for a list of Sic Codes/Mappings.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3009
/// </remarks>
[JsonProperty("3009")]
public int SIC { get; set; }
/// <summary>
/// An acronym for North American Industry Classification System, it is a 6 digit numerical classification assigned to individual
/// companies. Developed jointly by the U.S., Canada, and Mexico to provide new comparability in statistics about business activity
/// across North America. It is intended to replace the U.S. Standard Industrial Classification (SIC) system. See separate reference
/// document for a list of NAICS Codes/Mappings.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3010
/// </remarks>
[JsonProperty("3010")]
public int NAICS { get; set; }
/// <summary>
/// The scores for a stock's value and growth characteristics determine its horizontal placement. The Value-Growth Score is a
/// reflection of the aggregate expectations of market participants for the future growth and required rate of return for a stock. We
/// infer these expectations from the relation between current market prices and future growth and cost of capital expectations under
/// the assumption of rational market participants and a simple model of stock value.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3011
/// </remarks>
[JsonProperty("3011")]
public decimal StyleScore { get; set; }
/// <summary>
/// Rather than a fixed number of large cap or small cap stocks, Morningstar uses a flexible system that isn't adversely affected by
/// overall movements in the market. The Morningstar stock universe represents approximately 99% of the U.S. market for actively
/// traded stocks. Giant-cap stocks are defined as the group that accounts for the top 40% of the capitalization of the Morningstar
/// domestic stock universe; large-cap stocks represent the next 30%; mid-cap stocks represent the next 20%; small-cap stocks
/// represent the next 7%; and micro-cap stocks represent the remaining 3%. Each stock is given a Size Score that ranges from -100
/// (very micro) to 400 (very giant). When classifying stocks to a Style Box, giant is included in large and micro is included in small.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3012
/// </remarks>
[JsonProperty("3012")]
public decimal SizeScore { get; set; }
/// <summary>
/// A high overall growth score indicates that a stock's per-share earnings, book value, revenues, and cash flow are expected to grow
/// quickly relative to other stocks in the same scoring group. A weak growth orientation does not necessarily mean that a stock has a
/// strong value orientation.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3013
/// </remarks>
[JsonProperty("3013")]
public decimal GrowthScore { get; set; }
/// <summary>
/// A high value score indicates that a stock's price is relatively low, given the anticipated per-sharing earnings, book value, revenues,
/// cash flow, and dividends that the stock provides to investors. A high price relative to these measures indicates that a stock's value
/// orientation is weak, but it does not necessarily mean that the stock is growth-oriented.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3014
/// </remarks>
[JsonProperty("3014")]
public decimal ValueScore { get; set; }
/// <summary>
/// NACE is a European standard classification of economic activities maintained by Eurostat.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3015
/// </remarks>
[JsonProperty("3015")]
public decimal NACE { get; set; }
/// <summary>
/// Similar to NAICS (data point 3010, above), this is specifically for Canadian classifications.
/// An acronym for North American Industry Classification System, it is a 6 digit numerical classification assigned to individual
/// companies. Developed jointly by the U.S., Canada, and Mexico to provide new comparability in statistics about business activity
/// across North America. It is intended to replace the U.S. Standard Industrial Classification (SIC) system. See separate reference
/// document for a list of NAICS Codes/Mappings.
/// The initial SIC and NAICS listed is the Primary based on revenue generation; followed by Secondary SIC and NAICS when
/// applicable. Both SIC and NAICS are manually collected and assigned.
/// </summary>
/// <remarks>
/// Morningstar DataId: 3016
/// </remarks>
[JsonProperty("3016")]
public int CANNAICS { get; set; }
/// <summary>
/// Creates an instance of the AssetClassification class
/// </summary>
public AssetClassification()
{
}
/// <summary>
/// Applies updated values from <paramref name="update"/> to this instance
/// </summary>
/// <remarks>Used to apply data updates to the current instance. This WILL overwrite existing values. Default update values are ignored.</remarks>
/// <param name="update">The next data update for this instance</param>
public void UpdateValues(AssetClassification update)
{
if (update == null) return;
if (update.StockType != default(int)) StockType = update.StockType;
if (update.StyleBox != default(int)) StyleBox = update.StyleBox;
if (!string.IsNullOrWhiteSpace(update.GrowthGrade)) GrowthGrade = update.GrowthGrade;
if (!string.IsNullOrWhiteSpace(update.FinancialHealthGrade)) FinancialHealthGrade = update.FinancialHealthGrade;
if (!string.IsNullOrWhiteSpace(update.ProfitabilityGrade)) ProfitabilityGrade = update.ProfitabilityGrade;
if (update.MorningstarIndustryCode != default(int)) MorningstarIndustryCode = update.MorningstarIndustryCode;
if (update.MorningstarIndustryGroupCode != default(int)) MorningstarIndustryGroupCode = update.MorningstarIndustryGroupCode;
if (update.MorningstarSectorCode != default(int)) MorningstarSectorCode = update.MorningstarSectorCode;
if (update.MorningstarEconomySphereCode != default(int)) MorningstarEconomySphereCode = update.MorningstarEconomySphereCode;
if (update.SIC != default(int)) SIC = update.SIC;
if (update.NAICS != default(int)) NAICS = update.NAICS;
if (update.StyleScore != default(decimal)) StyleScore = update.StyleScore;
if (update.SizeScore != default(decimal)) SizeScore = update.SizeScore;
if (update.GrowthScore != default(decimal)) GrowthScore = update.GrowthScore;
if (update.ValueScore != default(decimal)) ValueScore = update.ValueScore;
if (update.NACE != default(decimal)) NACE = update.NACE;
if (update.CANNAICS != default(int)) CANNAICS = update.CANNAICS;
}
}
}