@@ -3357,12 +3357,11 @@ public OptionChains OptionChains(IEnumerable<Symbol> symbols, bool flatten = fal
33573357 var canonicalSymbols = symbols . Select ( GetCanonicalOptionSymbol ) . ToList ( ) ;
33583358 var optionChainsData = GetChainsData < OptionUniverse > ( canonicalSymbols ) ;
33593359
3360- var time = Time . Date ;
3361- var chains = new OptionChains ( time , flatten ) ;
3360+ var chains = new OptionChains ( Time . Date , flatten ) ;
33623361 foreach ( var ( symbol , contracts ) in optionChainsData )
33633362 {
33643363 var symbolProperties = SymbolPropertiesDatabase . GetSymbolProperties ( symbol . ID . Market , symbol , symbol . SecurityType , AccountCurrency ) ;
3365- var optionChain = new OptionChain ( symbol , time , contracts , symbolProperties , flatten ) ;
3364+ var optionChain = new OptionChain ( symbol , GetTimeInExchangeTimeZone ( symbol ) . Date , contracts , symbolProperties , flatten ) ;
33663365 chains . Add ( symbol , optionChain ) ;
33673366 }
33683367
@@ -3442,14 +3441,13 @@ public FuturesChains FuturesChains(IEnumerable<Symbol> symbols, bool flatten = f
34423441 var canonicalSymbols = symbols . Select ( GetCanonicalFutureSymbol ) . ToList ( ) ;
34433442 var futureChainsData = GetChainsData < FutureUniverse > ( canonicalSymbols ) ;
34443443
3445- var time = Time . Date ;
3446- var chains = new FuturesChains ( time , flatten ) ;
3444+ var chains = new FuturesChains ( Time . Date , flatten ) ;
34473445
34483446 if ( futureChainsData != null )
34493447 {
34503448 foreach ( var ( symbol , contracts ) in futureChainsData )
34513449 {
3452- var chain = new FuturesChain ( symbol , time , contracts , flatten ) ;
3450+ var chain = new FuturesChain ( symbol , GetTimeInExchangeTimeZone ( symbol ) . Date , contracts , flatten ) ;
34533451 chains . Add ( symbol , chain ) ;
34543452 }
34553453 }
@@ -3726,5 +3724,14 @@ private IEnumerable<KeyValuePair<Symbol, IEnumerable<T>>> GetChainsData<T>(IEnum
37263724 yield return KeyValuePair . Create ( symbol , chain ) ;
37273725 }
37283726 }
3727+
3728+ /// <summary>
3729+ /// Gets the current time in the exchange time zone for the given symbol
3730+ /// </summary>
3731+ private DateTime GetTimeInExchangeTimeZone ( Symbol symbol )
3732+ {
3733+ var exchange = MarketHoursDatabase . GetExchangeHours ( symbol . ID . Market , symbol , symbol . SecurityType ) ;
3734+ return UtcTime . ConvertFromUtc ( exchange . TimeZone ) ;
3735+ }
37293736 }
37303737}
0 commit comments