Fix bug for history requests with custom symbols (#8262)

* Potential solution to the bug

* Add test file

* Fix bugs

* Address requested changes
This commit is contained in:
Ricardo Andrés Marino Rojas
2024-08-19 13:26:42 -05:00
committed by GitHub
parent a543af71dc
commit 74c3501ed3
6 changed files with 103 additions and 27 deletions
+2 -17
View File
@@ -906,7 +906,7 @@ namespace QuantConnect.Algorithm
}
var symbols = tickers.ConvertToSymbolEnumerable().ToArray();
var dataType = GetCustomDataTypeFromSymbols(symbols);
var dataType = Extensions.GetCustomDataTypeFromSymbols(symbols);
return GetDataFrame(History(symbols, periods, resolution, fillForward, extendedMarketHours, dataMappingMode, dataNormalizationMode,
contractDepthOffset), dataType);
@@ -969,7 +969,7 @@ namespace QuantConnect.Algorithm
}
var symbols = tickers.ConvertToSymbolEnumerable().ToArray();
var dataType = GetCustomDataTypeFromSymbols(symbols);
var dataType = Extensions.GetCustomDataTypeFromSymbols(symbols);
return GetDataFrame(History(symbols, start, end, resolution, fillForward, extendedMarketHours, dataMappingMode,
dataNormalizationMode, contractDepthOffset), dataType);
@@ -1719,20 +1719,5 @@ namespace QuantConnect.Algorithm
}
return history;
}
private Type GetCustomDataTypeFromSymbols(Symbol[] symbols)
{
if (symbols.Any())
{
if (!SecurityIdentifier.TryGetCustomDataTypeInstance(symbols[0].ID.Symbol, out var dataType)
|| symbols.Any(x => !SecurityIdentifier.TryGetCustomDataTypeInstance(x.ID.Symbol, out var customDataType) || customDataType != dataType))
{
return null;
}
return dataType;
}
return null;
}
}
}