Lean  $LEAN_TAG$
FineFundamental.cs
1 /*
2  * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
3  * Lean Algorithmic Trading Engine v2.0. Copyright 2023 QuantConnect Corporation.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  *
15 */
16 
17 using System;
19 using QuantConnect.Python;
20 
22 {
23  /// <summary>
24  /// Definition of the FineFundamental class
25  /// </summary>
26  public partial class FineFundamental : CoarseFundamental
27  {
28  private readonly FundamentalInstanceProvider _fundamentalInstanceProvider;
29 
30  /// <summary>
31  /// The instance of the CompanyReference class
32  /// </summary>
33  [PandasNonExpandable]
34  public CompanyReference CompanyReference => _fundamentalInstanceProvider.GetCompanyReference(Time);
35 
36  /// <summary>
37  /// The instance of the SecurityReference class
38  /// </summary>
39  [PandasNonExpandable]
40  public SecurityReference SecurityReference => _fundamentalInstanceProvider.GetSecurityReference(Time);
41 
42  /// <summary>
43  /// The instance of the FinancialStatements class
44  /// </summary>
45  [PandasNonExpandable]
46  public FinancialStatements FinancialStatements => _fundamentalInstanceProvider.GetFinancialStatements(Time);
47 
48  /// <summary>
49  /// The instance of the EarningReports class
50  /// </summary>
51  [PandasNonExpandable]
52  public EarningReports EarningReports => _fundamentalInstanceProvider.GetEarningReports(Time);
53 
54  /// <summary>
55  /// The instance of the OperationRatios class
56  /// </summary>
57  [PandasNonExpandable]
58  public OperationRatios OperationRatios => _fundamentalInstanceProvider.GetOperationRatios(Time);
59 
60  /// <summary>
61  /// The instance of the EarningRatios class
62  /// </summary>
63  [PandasNonExpandable]
64  public EarningRatios EarningRatios => _fundamentalInstanceProvider.GetEarningRatios(Time);
65 
66  /// <summary>
67  /// The instance of the ValuationRatios class
68  /// </summary>
69  [PandasNonExpandable]
70  public ValuationRatios ValuationRatios => _fundamentalInstanceProvider.GetValuationRatios(Time);
71 
72  /// <summary>
73  /// The instance of the CompanyProfile class
74  /// </summary>
75  [PandasNonExpandable]
76  public CompanyProfile CompanyProfile => _fundamentalInstanceProvider.GetCompanyProfile(Time);
77 
78  /// <summary>
79  /// The instance of the AssetClassification class
80  /// </summary>
81  [PandasNonExpandable]
82  public AssetClassification AssetClassification => _fundamentalInstanceProvider.GetAssetClassification(Time);
83 
84  /// <summary>
85  /// Creates a new empty instance
86  /// </summary>
87  public FineFundamental()
88  {
89  _fundamentalInstanceProvider = FundamentalInstanceProvider.Get(Symbol.Empty);
90  }
91 
92  /// <summary>
93  /// Creates a new instance for the given time and security
94  /// </summary>
95  public FineFundamental(DateTime time, Symbol symbol)
96  {
97  Time = time;
98  Symbol = symbol;
99  _fundamentalInstanceProvider = FundamentalInstanceProvider.Get(symbol);
100  }
101 
102  /// <summary>
103  /// Creates a new instance for the given time and security
104  /// </summary>
105  public FineFundamental(DateTime time, Symbol symbol, FundamentalInstanceProvider fundamentalInstanceProvider)
106  {
107  Time = time;
108  Symbol = symbol;
109  _fundamentalInstanceProvider = fundamentalInstanceProvider;
110  }
111  }
112 }