コード例 #1
0
        private bool UpdateRequired(SymbolDescription description, BarDataScale barDataScale)
        {
            if (!_dataStore.ContainsSymbol(description.FullCode, barDataScale.Scale, barDataScale.BarInterval))
            {
                return(true);
            }

            MarketHours mktHours = new MarketHours();

            mktHours.Market = GetMarketInfo(description.FullCode);
            DateTime updateTime = _dataStore.SymbolLastUpdated(description.FullCode, barDataScale.Scale, barDataScale.BarInterval);

            if (!barDataScale.IsIntraday)
            {
                if ((DateTime.Now.Date >= updateTime.Date.AddDays(1)) ||
                    (updateTime.Date < mktHours.LastTradingSessionEndedNative.Date))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                if (mktHours.IsMarketOpenNow || (updateTime < mktHours.LastTradingSessionEndedNative))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }