38 _algorithm = algorithm;
61 bool? fillForward =
null,
62 bool? extendedMarketHours =
null,
65 int? contractDepthOffset =
null)
69 var dataType = subscription.
Type;
78 var fillForwardResolution = subscription.
FillDataForward ? resolution :
null;
79 if (fillForward !=
null)
81 fillForwardResolution = fillForward.Value ? resolution :
null;
86 startAlgoTz.ConvertToUtc(_algorithm.TimeZone),
87 endAlgoTz.ConvertToUtc(_algorithm.TimeZone))
91 FillForwardResolution = fillForwardResolution,
95 if (extendedMarketHours !=
null)
97 request.IncludeExtendedMarketHours = extendedMarketHours.Value;
100 if (dataMappingMode !=
null)
102 request.DataMappingMode = dataMappingMode.Value;
105 if (dataNormalizationMode !=
null)
107 request.DataNormalizationMode = dataNormalizationMode.Value;
110 if (contractDepthOffset !=
null)
112 request.ContractDepthOffset = (uint)Math.Abs(contractDepthOffset.Value);
137 DateTimeZone dataTimeZone,
139 bool? extendedMarketHours =
null)
141 return GetStartTimeAlgoTz(_algorithm.UtcTime, symbol, periods, resolution, exchange, dataTimeZone, dataType, extendedMarketHours);
160 DateTime referenceUtcTime,
165 DateTimeZone dataTimeZone,
167 bool? extendedMarketHours =
null)
169 var isExtendedMarketHours =
false;
173 if (extendedMarketHours.HasValue)
175 isExtendedMarketHours = extendedMarketHours.Value;
179 var configs = _algorithm.SubscriptionManager
180 .SubscriptionDataConfigService
181 .GetSubscriptionDataConfigs(symbol);
182 isExtendedMarketHours = configs.IsExtendedMarketHours();
186 var timeSpan = resolution.ToTimeSpan();
192 referenceUtcTime.ConvertFromUtc(exchange.
TimeZone),
195 isExtendedMarketHours,
198 return localStartTime.ConvertTo(exchange.
TimeZone, _algorithm.TimeZone);