Could someone tell me a link where I might be able to find all the properties that exist in coarse and fine selection when trying to do a Fundamental Universe selection?
I've found that the documentation has some, but not all of the information (maybe I'm missing it). For example, in the snippet below I see that ValuationRatios is an instance of the ValuationRatios class, but I can't find anything that tells me all the properties associated with that class, e.g. EVToEBITDA.
class FineFundamental:
# The end time of this data. (DateTime)
self.EndTime;
# The instance of the CompanyReference class (CompanyReference)
self.CompanyReference;
# The instance of the SecurityReference class (SecurityReference)
self.SecurityReference;
# The instance of the FinancialStatements class (FinancialStatements)
self.FinancialStatements;
# The instance of the EarningReports class (EarningReports)
self.EarningReports;
# The instance of the OperationRatios class (OperationRatios)
self.OperationRatios;
# The instance of the EarningRatios class (EarningRatios)
self.EarningRatios;
# The instance of the ValuationRatios class (ValuationRatios)
self.ValuationRatios;
# Return the URL string source of the file. This will be converted to a
# stream
self.GetSource(config, date, isLiveMode):
return SubscriptionDataSource
# Reader converts each line of the data source into BaseData objects. Each
# datatype creates its own factory method, and returns a new instance of the
# objecteach time it is called. The returned object is assumed to be time
# stampedin the config.ExchangeTimeZone.
self.Reader(config, line, date, isLiveMode):
return BaseData
# Sets values for non existing periods from a previous instance
self.UpdateValues(previous):
pass
Another example is that I find in the documentation the snippet below, but I don't see the simple property for Price (I see AdjustedPrice, PriceFactor, etc) although I've been able to use Price in an algorithm.
class CoarseFundamental:
# Gets the market for this symbol (string)
self.Market;
# Gets the day's dollar volume for this symbol (decimal)
self.DollarVolume;
# Gets the day's total volume (int)
self.Volume;
# Returns whether the symbol has fundamental data for the given date (bool)
self.HasFundamentalData;
# Gets the price factor for the given date (decimal)
self.PriceFactor;
# Gets the split factor for the given date (decimal)
self.SplitFactor;
# Gets the combined factor used to create adjusted prices from raw prices
# (decimal)
self.PriceScaleFactor;
# Gets the split and dividend adjusted price (decimal)
self.AdjustedPrice;
# The end time of this data. (DateTime)
self.EndTime;
# Return the URL string source of the file. This will be converted to a
# stream
self.GetSource(config, date, isLiveMode):
return SubscriptionDataSource
# Reader converts each line of the data source into BaseData objects. Each
# datatype creates its own factory method, and returns a new instance of the
# objecteach time it is called.
self.Reader(config, line, date, isLiveMode):
return BaseData
self.Clone():
return BaseData
If someone could point me in the right direction as to where to find this info it would be much appreciated.
Gurumeher Sawhney
All of the Morningstar fine fundamental data that can be accessed can be seen here in great detail. The snippet of code pertaining to the CoarseFundamental class shows all the properties it has, however, the CoarseFundamental class extends BaseData and this class contains properties such as Price, Symbol and Time. Thanks for pointing out this missing part of the documentation. I've updated it now.
Wei Chian Ong
Thank you Gurumeher for the explanation and for updating the documentation. Sorry, just one follow up question. I'm trying to create a universe that acts as a proxy for the S&P 500. I've already figured out how to calculate market cap to filter down my universe, but I was hoping you could tell the most efficient way to just have stocks in this universe, the same as the S&P 500. I'm trying to avoid having ETFs creep into the universe. Would it be by specifying the exchanges to be NYSE and NASDAQ, or is there a more efficient way using the fine fundamentals?
Jared Broad
We're adding more data soon which should improve this further
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
Wei Chian Ong
Thanks Jared, that's exactly what I was looking for.
Wei Chian Ong
Sorry for yet another follow up question, but I've managed to find 2 similar algorithms and was hoping you could confirm which would be the better to check out:
This one uses FundamentalUniverseSelectionModel and is linked to directly from the documentation, but I am not so familiar with the use of FundamentalUniverseSelectionModel.
This one uses AddUniverse method and is more along the lines of the format I am used to seeing when trying to do Fundamental universe selection.
Ok to use either?
Wei Chian Ong
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!