Lean
$LEAN_TAG$
ISecurityProvider.cs
1
/*
2
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
3
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 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
namespace
QuantConnect.Securities
17
{
18
/// <summary>
19
/// Represents a type capable of fetching the holdings for the specified symbol
20
/// </summary>
21
public
interface
ISecurityProvider
22
{
23
/// <summary>
24
/// Retrieves a summary of the holdings for the specified symbol
25
/// </summary>
26
/// <param name="symbol">The symbol to get holdings for</param>
27
/// <returns>The holdings for the symbol or null if the symbol is invalid and/or not in the portfolio</returns>
28
Security
GetSecurity
(
Symbol
symbol);
29
}
30
31
/// <summary>
32
/// Provides extension methods for the <see cref="ISecurityProvider"/> interface.
33
/// </summary>
34
public
static
class
SecurityProviderExtensions
35
{
36
/// <summary>
37
/// Extension method to return the quantity of holdings, if no holdings are present, then zero is returned.
38
/// </summary>
39
/// <param name="provider">The <see cref="ISecurityProvider"/></param>
40
/// <param name="symbol">The symbol we want holdings quantity for</param>
41
/// <returns>The quantity of holdings for the specified symbol</returns>
42
public
static
decimal
GetHoldingsQuantity
(
this
ISecurityProvider
provider,
Symbol
symbol)
43
{
44
var security = provider.
GetSecurity
(symbol);
45
return
security ==
null
? 0 : security.
Holdings
.
Quantity
;
46
}
47
}
48
}
Common
Securities
ISecurityProvider.cs
Generated by
1.8.17