/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2023 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. * */ using System; using QuantConnect.Data.UniverseSelection; using QuantConnect.Python; namespace QuantConnect.Data.Fundamental { /// /// Definition of the FineFundamental class /// public partial class FineFundamental : CoarseFundamental { private readonly FundamentalInstanceProvider _fundamentalInstanceProvider; /// /// The instance of the CompanyReference class /// [PandasNonExpandable] public CompanyReference CompanyReference => _fundamentalInstanceProvider.GetCompanyReference(Time); /// /// The instance of the SecurityReference class /// [PandasNonExpandable] public SecurityReference SecurityReference => _fundamentalInstanceProvider.GetSecurityReference(Time); /// /// The instance of the FinancialStatements class /// [PandasNonExpandable] public FinancialStatements FinancialStatements => _fundamentalInstanceProvider.GetFinancialStatements(Time); /// /// The instance of the EarningReports class /// [PandasNonExpandable] public EarningReports EarningReports => _fundamentalInstanceProvider.GetEarningReports(Time); /// /// The instance of the OperationRatios class /// [PandasNonExpandable] public OperationRatios OperationRatios => _fundamentalInstanceProvider.GetOperationRatios(Time); /// /// The instance of the EarningRatios class /// [PandasNonExpandable] public EarningRatios EarningRatios => _fundamentalInstanceProvider.GetEarningRatios(Time); /// /// The instance of the ValuationRatios class /// [PandasNonExpandable] public ValuationRatios ValuationRatios => _fundamentalInstanceProvider.GetValuationRatios(Time); /// /// The instance of the CompanyProfile class /// [PandasNonExpandable] public CompanyProfile CompanyProfile => _fundamentalInstanceProvider.GetCompanyProfile(Time); /// /// The instance of the AssetClassification class /// [PandasNonExpandable] public AssetClassification AssetClassification => _fundamentalInstanceProvider.GetAssetClassification(Time); /// /// Creates a new empty instance /// public FineFundamental() { _fundamentalInstanceProvider = FundamentalInstanceProvider.Get(Symbol.Empty); } /// /// Creates a new instance for the given time and security /// public FineFundamental(DateTime time, Symbol symbol) { Time = time; Symbol = symbol; _fundamentalInstanceProvider = FundamentalInstanceProvider.Get(symbol); } /// /// Creates a new instance for the given time and security /// public FineFundamental(DateTime time, Symbol symbol, FundamentalInstanceProvider fundamentalInstanceProvider) { Time = time; Symbol = symbol; _fundamentalInstanceProvider = fundamentalInstanceProvider; } } }