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); } }
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); }
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); }