Skip to content

Commit 1919dbc

Browse files
committed
Fix duplicate window in consolidator wrappers
1 parent 4e4eb63 commit 1919dbc

3 files changed

Lines changed: 13 additions & 3 deletions

File tree

Common/Data/Consolidators/MarketHourAwareConsolidator.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
using System;
1717
using NodaTime;
18+
using QuantConnect.Indicators;
1819
using QuantConnect.Util;
1920
using QuantConnect.Securities;
2021
using QuantConnect.Data.Market;
@@ -41,6 +42,11 @@ public class MarketHourAwareConsolidator : ConsolidatorBase, IDataConsolidator
4142
/// </summary>
4243
protected IDataConsolidator Consolidator { get; }
4344

45+
/// <summary>
46+
/// Delegates the rolling window to the inner consolidator to avoid duplication.
47+
/// </summary>
48+
public override RollingWindow<IBaseData> Window => ((ConsolidatorBase)Consolidator).Window;
49+
4450
/// <summary>
4551
/// The associated security exchange hours instance
4652
/// </summary>
@@ -209,7 +215,6 @@ protected virtual bool UseStrictEndTime(Symbol symbol)
209215
protected virtual void ForwardConsolidatedBar(object sender, IBaseData consolidated)
210216
{
211217
DataConsolidated?.Invoke(this, consolidated);
212-
Consolidated = consolidated;
213218
}
214219
}
215220
}

Common/Data/Consolidators/SequentialConsolidator.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
*/
1515

1616
using System;
17+
using QuantConnect.Indicators;
1718

1819
namespace QuantConnect.Data.Consolidators
1920
{
@@ -41,6 +42,11 @@ public IDataConsolidator Second
4142
get; private set;
4243
}
4344

45+
/// <summary>
46+
/// Delegates the rolling window to the second (inner) consolidator to avoid duplication.
47+
/// </summary>
48+
public override RollingWindow<IBaseData> Window => (Second as ConsolidatorBase)?.Window;
49+
4450
/// <summary>
4551
/// Gets a clone of the data being currently consolidated
4652
/// </summary>
@@ -120,7 +126,6 @@ protected virtual void OnDataConsolidated(IBaseData consolidated)
120126
{
121127
var handler = DataConsolidated;
122128
if (handler != null) handler(this, consolidated);
123-
Consolidated = consolidated;
124129
}
125130

126131
/// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>

Common/WindowBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected WindowBase(int windowSize)
5050
/// A rolling window keeping a history of values. The most recent value is at index 0.
5151
/// Uses lazy initialization to survive Python subclasses that do not call base constructors.
5252
/// </summary>
53-
public RollingWindow<T> Window => _window ??= new RollingWindow<T>(DefaultWindowSize);
53+
public virtual RollingWindow<T> Window => _window ??= new RollingWindow<T>(DefaultWindowSize);
5454

5555
/// <summary>
5656
/// Gets the most recent value. The protected setter adds the value to the rolling window.

0 commit comments

Comments
 (0)