Lean
$LEAN_TAG$
LiveDelistingEventProvider.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.Linq;
18
using
QuantConnect
.
Data
;
19
using
QuantConnect
.
Logging
;
20
using
System.Collections.Generic;
21
22
namespace
QuantConnect.Lean.Engine.DataFeeds.Enumerators
23
{
24
/// <summary>
25
/// Delisting event provider implementation which will source the delisting date based on new map files
26
/// </summary>
27
public
class
LiveDelistingEventProvider
:
DelistingEventProvider
28
{
29
/// <summary>
30
/// Check for delistings
31
/// </summary>
32
/// <param name="eventArgs">The new tradable day event arguments</param>
33
/// <returns>New delisting event if any</returns>
34
public
override
IEnumerable<BaseData>
GetEvents
(
NewTradableDateEventArgs
eventArgs)
35
{
36
var currentInstance =
MapFile
;
37
// refresh map file instance
38
InitializeMapFile
();
39
var newInstance =
MapFile
;
40
41
if
(currentInstance?.LastOrDefault()?.Date != newInstance?.LastOrDefault()?.Date)
42
{
43
// All future and option contracts sharing the same canonical symbol, share the same configuration too. Thus, in
44
// order to reduce logs, we log the configuration using the canonical symbol. See the optional parameter
45
// "overrideMessageFloodProtection" in Log.Trace() method for more information
46
var symbol =
Config
.
Symbol
.
HasCanonical
() ?
Config
.
Symbol
.
Canonical
.
Value
:
Config
.
Symbol
.
Value
;
47
Log
.
Trace
($
"LiveDelistingEventProvider({Config.ToString(symbol)}): new tradable date {eventArgs.Date:yyyyMMdd}. "
+
48
$
"MapFile.LastDate Old: {currentInstance?.LastOrDefault()?.Date:yyyyMMdd} New: {newInstance?.LastOrDefault()?.Date:yyyyMMdd}"
);
49
}
50
51
return
base.GetEvents(eventArgs);
52
}
53
}
54
}
Engine
DataFeeds
Enumerators
LiveDelistingEventProvider.cs
Generated by
1.8.17