internal void Initialize(DataSet ds)
        {
            this.LoadTradingInfo(ds);
            var table = ds.Tables["TradingTime"];

            foreach (DataRow dr in table.Rows)
            {
                Guid InstrumentId = (Guid)dr["InstrumentID"];
                Protocal.TradingInstrument.InstrumentDayOpenCloseParams instrument;
                if (!_instrumentDict.TryGetValue(InstrumentId, out instrument))
                {
                    TradingTime tradingTIme = Settings.Setting.Default.GetTradingTime(InstrumentId);
                    instrument = new Protocal.TradingInstrument.InstrumentDayOpenCloseParams
                    {
                        Id           = InstrumentId,
                        TradeDay     = tradingTIme.DayOpenTime.Date,
                        DayOpenTime  = tradingTIme.DayOpenTime,
                        DayCloseTime = tradingTIme.DayCloseTime,
                        IsTrading    = true
                    };
                    _instrumentDict.Add(InstrumentId, instrument);
                }
                DateTime beginTime = (DateTime)dr["BeginTime"];
                DateTime endTime   = (DateTime)dr["EndTime"];
                var      session   = new Protocal.TradingInstrument.TradingSession
                {
                    BeginTime = beginTime,
                    EndTime   = endTime
                };
                instrument.AddSession(session);
            }
        }
示例#2
0
        private void ParseIndividualTradingTime(DataRow dr, Dictionary <Guid, Protocal.TradingInstrument.InstrumentDayOpenCloseParams> instrumentParamDict)
        {
            Guid instrumentId = (Guid)dr["InstrumentID"];

            Protocal.TradingInstrument.InstrumentDayOpenCloseParams instrumentParams;
            var instrument = InstrumentManager.Default.GetInstrument(instrumentId);

            if (instrument.TradeDay == null)
            {
                return;
            }
            if (!instrumentParamDict.TryGetValue(instrumentId, out instrumentParams))
            {
                instrumentParams = new Protocal.TradingInstrument.InstrumentDayOpenCloseParams
                {
                    Id                 = instrumentId,
                    TradeDay           = instrument.TradeDay.Value,
                    DayOpenTime        = instrument.DayOpenTime,
                    DayCloseTime       = instrument.DayCloseTime,
                    LastAcceptTimeSpan = instrument.LastAcceptTimeSpan,
                    IsTrading          = true
                };
                instrumentParamDict.Add(instrumentId, instrumentParams);
            }
            DateTime beginTime = (DateTime)dr["BeginTime"];
            DateTime endTime   = (DateTime)dr["EndTime"];
            var      session   = new Protocal.TradingInstrument.TradingSession
            {
                BeginTime = beginTime,
                EndTime   = endTime
            };

            instrumentParams.AddSession(session);
        }
示例#3
0
        internal static List <InstrumentDayOpenCloseParams> ParseInstrumentTradingTimes(DataSet ds)
        {
            Logger.Info("ParseInstrumentTradingTimes");
            if (ds.Tables.Count == 0)
            {
                Logger.Error("LoadAndGenerateInstrumentTradingTime,  db result = 0");
                return(null);
            }
            var result = new List <Protocal.TradingInstrument.InstrumentDayOpenCloseParams>();

            foreach (DataRow eachDataRow in ds.Tables["InstrumentDayOpenCloseTime"].Rows)
            {
                Guid     instrumentId   = (Guid)eachDataRow["InstrumentID"];
                DateTime day            = (DateTime)eachDataRow["TradeDay"];
                var      openCloseParam = new Protocal.TradingInstrument.InstrumentDayOpenCloseParams()
                {
                    Id              = instrumentId,
                    TradeDay        = day,
                    DayOpenTime     = eachDataRow.GetColumn <DateTime?>("DayOpenTime"),
                    DayCloseTime    = eachDataRow.GetColumn <DateTime?>("DayCloseTime"),
                    RealValueDate   = eachDataRow.GetColumn <DateTime?>("RealValueDate"),
                    TradingSessions = new List <Protocal.TradingInstrument.TradingSession>(),
                    IsTrading       = true
                };
                result.Add(openCloseParam);
            }

            foreach (DataRow eachDataRow in ds.Tables["TradingTime"].Rows)
            {
                Guid     instrumentId   = (Guid)eachDataRow["InstrumentID"];
                DateTime beginTime      = (DateTime)eachDataRow["BeginTime"];
                DateTime endTime        = (DateTime)eachDataRow["EndTime"];
                var      openCloseParam = result.Find(m => m.Id == instrumentId);
                if (openCloseParam == null)
                {
                    Logger.WarnFormat("instrumentId = {0}, BeginTime = {1}, endTime = {2} exist in dbo.TradingTime, but not exist in dbo.InstrumentDayOpenCloseHistory ", instrumentId, beginTime, endTime);
                }
                else
                {
                    openCloseParam.AddSession(new Protocal.TradingInstrument.TradingSession()
                    {
                        BeginTime = beginTime, EndTime = endTime
                    });
                }
            }
            return(result);
        }