Skip to content

Commit abfb391

Browse files
committed
Replace BaseExtendedDictionary with DataDictionary in GetLastKnownPrices method
1 parent 3a19cdb commit abfb391

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

Algorithm/QCAlgorithm.History.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
using Python.Runtime;
2727
using QuantConnect.Data.UniverseSelection;
2828
using QuantConnect.Configuration;
29-
using Common.Util;
3029

3130
namespace QuantConnect.Algorithm
3231
{
@@ -743,7 +742,7 @@ public IEnumerable<BaseData> GetLastKnownPrices(Symbol symbol)
743742
/// <returns>Securities historical data</returns>
744743
[DocumentationAttribute(AddingData)]
745744
[DocumentationAttribute(HistoricalData)]
746-
public BaseExtendedDictionary<Symbol, IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Security> securities)
745+
public DataDictionary<IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Security> securities)
747746
{
748747
return GetLastKnownPrices(securities.Select(s => s.Symbol));
749748
}
@@ -755,19 +754,19 @@ public BaseExtendedDictionary<Symbol, IEnumerable<BaseData>> GetLastKnownPrices(
755754
/// <returns>Securities historical data</returns>
756755
[DocumentationAttribute(AddingData)]
757756
[DocumentationAttribute(HistoricalData)]
758-
public BaseExtendedDictionary<Symbol, IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Symbol> symbols)
757+
public DataDictionary<IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Symbol> symbols)
759758
{
760759
if (HistoryProvider == null)
761760
{
762-
return new BaseExtendedDictionary<Symbol, IEnumerable<BaseData>>();
761+
return new DataDictionary<IEnumerable<BaseData>>();
763762
}
764763

765764
var data = new Dictionary<(Symbol, Type, TickType), BaseData>();
766765
GetLastKnownPricesImpl(symbols, data);
767766

768767
return data
769768
.GroupBy(kvp => kvp.Key.Item1)
770-
.ToBaseExtendedDictionary(
769+
.ToDataDictionary(
771770
g => g.Key,
772771
g => g.OrderBy(kvp => kvp.Value.Time)
773772
.ThenBy(kvp => GetTickTypeOrder(kvp.Key.Item1.SecurityType, kvp.Key.Item3))

AlgorithmFactory/Python/Wrappers/AlgorithmPythonWrapper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1104,7 +1104,7 @@ public void OnWarmupFinished()
11041104
/// </summary>
11051105
/// <param name="symbols">The symbols we want to get seed data for</param>
11061106
/// <returns>Securities historical data</returns>
1107-
public BaseExtendedDictionary<Symbol, IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Symbol> symbols) => _baseAlgorithm.GetLastKnownPrices(symbols);
1107+
public DataDictionary<IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Symbol> symbols) => _baseAlgorithm.GetLastKnownPrices(symbols);
11081108

11091109
/// <summary>
11101110
/// Set the runtime error

Common/Interfaces/IAlgorithm.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,7 @@ Security AddSecurity(Symbol symbol, Resolution? resolution = null, bool fillForw
856856
/// </summary>
857857
/// <param name="symbols">The symbols we want to get seed data for</param>
858858
/// <returns>Securities historical data</returns>
859-
BaseExtendedDictionary<Symbol, IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Symbol> symbols);
859+
DataDictionary<IEnumerable<BaseData>> GetLastKnownPrices(IEnumerable<Symbol> symbols);
860860

861861
/// <summary>
862862
/// Set the runtime error

Common/Util/LinqExtensions.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using System.Collections.ObjectModel;
2020
using System.Linq;
2121
using Common.Util;
22+
using QuantConnect.Data.Market;
2223

2324
namespace QuantConnect.Util
2425
{
@@ -373,5 +374,21 @@ public static BaseExtendedDictionary<TKey, TValue> ToBaseExtendedDictionary<TSou
373374
}
374375
return result;
375376
}
377+
378+
/// <summary>
379+
/// Creates a DataDictionary from an IEnumerable according to specified key and value selectors
380+
/// </summary>
381+
public static DataDictionary<TValue> ToDataDictionary<TSource, TValue>(
382+
this IEnumerable<TSource> source,
383+
Func<TSource, Symbol> keySelector,
384+
Func<TSource, TValue> valueSelector)
385+
{
386+
var result = new DataDictionary<TValue>();
387+
foreach (var item in source)
388+
{
389+
result.Add(keySelector(item), valueSelector(item));
390+
}
391+
return result;
392+
}
376393
}
377394
}

0 commit comments

Comments
 (0)