Lean
$LEAN_TAG$
FuncSecurityDerivativeFilter.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
17
using
System;
18
19
namespace
QuantConnect.Securities
20
{
21
/// <summary>
22
/// Provides a functional implementation of <see cref="IDerivativeSecurityFilter{T}"/>
23
/// </summary>
24
public
class
FuncSecurityDerivativeFilter
<T> :
IDerivativeSecurityFilter
<T>
25
where T :
ISymbol
26
{
27
private
readonly Func<IDerivativeSecurityFilterUniverse<T>,
IDerivativeSecurityFilterUniverse<T>
> _filter;
28
29
/// <summary>
30
/// True if this universe filter can run async in the data stack
31
/// </summary>
32
public
bool
Asynchronous
{
get
;
set
; } =
true
;
33
34
/// <summary>
35
/// Initializes a new instance of the <see cref="FuncSecurityDerivativeFilter{T}"/> class
36
/// </summary>
37
/// <param name="filter">The functional implementation of the <see cref="Filter"/> method</param>
38
public
FuncSecurityDerivativeFilter
(Func<
IDerivativeSecurityFilterUniverse<T>
,
IDerivativeSecurityFilterUniverse<T>
> filter)
39
{
40
_filter = filter;
41
}
42
43
/// <summary>
44
/// Filters the input set of symbols represented by the universe
45
/// </summary>
46
/// <param name="universe">Derivative symbols universe used in filtering</param>
47
/// <returns>The filtered set of symbols</returns>
48
public
IDerivativeSecurityFilterUniverse<T>
Filter
(
IDerivativeSecurityFilterUniverse<T>
universe)
49
{
50
return
_filter(universe);
51
}
52
}
53
}
Common
Securities
FuncSecurityDerivativeFilter.cs
Generated by
1.8.17