/// <summary> /// 获取板块数据 /// </summary> /// <returns></returns> public static IEnumerable <GTA.PI.Models.PlateInfo> GetPlates(int retryTime = 0) { var req = new ReqPlates(); req.securityType.Add("S0101"); req.plateType.Add("P4901"); req.plateType.Add("P4911"); //概念类 req.plateType.Add("P4910"); req.plateType.Add("P4906"); req.page = new DataPage() { begin = 0, end = 0 }; var rep = SyncRequestEx.Instance.SyncSendData(req, _waitTime); if (rep is Exception) { if (retryTime > RetryTime) { string exMsg = string.Format("同步板块数据异常. 重试{0}次仍未取到值.", DSPHelper.RetryTime); LogHelper.Error("异常", exMsg); return(null); } retryTime += 1; string errMsg = string.Format("获取交易日历发生异常!重试{0}次!", retryTime); LogHelper.Info("总运行", errMsg); return(GetPlates(retryTime)); } return(TransferHelper.Transfer2List <GTA.PI.Models.PlateInfo>(rep)); }
/// <summary> /// 获取交易日历 /// </summary> /// <returns></returns> public static IEnumerable <TradeCalendarInfo> GetTradingDay(int retryTime = 0) { var req = new ReqTradeCalendar(); req.exchangeCode.Add("SZSE"); req.fields.Add("*"); req.securityType = "S0101"; req.dateBegin = TransferHelper.DateTimeToString(DateTime.Today.AddMonths(-1)); req.dateEnd = TransferHelper.DateTimeToString(DateTime.Today); req.page = new DataPage() { begin = 0, end = 0 }; var rep = SyncRequestEx.Instance.SyncSendData(req, _waitTime); if (rep is Exception) { if (retryTime > RetryTime) { string exMsg = string.Format("同步交易日历异常. 重试{0}次仍未取到值.", DSPHelper.RetryTime); LogHelper.Error("异常", exMsg); return(new List <TradeCalendarInfo>()); } retryTime += 1; string errMsg = string.Format("获取交易日历发生异常!重试{0}次!", retryTime); LogHelper.Info("总运行", errMsg); return(GetTradingDay(retryTime)); } return(TransferHelper.Transfer2List <TradeCalendarInfo>(rep)); }
/// <summary> /// 根据代码取行情数据 /// </summary> /// <param name="rep"></param> /// <returns></returns> public static List <DataByTime> TransferDataByTime(object rep, object securityID) { var list = TransferHelper.Transfer2List <DataByTime>(rep); list = list.Where(m => m.Filling == "0").ToList(); return(list); }
/// <summary> /// 获取指定板块的代码列表 /// </summary> /// <returns></returns> public static IEnumerable <SymbolInfo> GetPlateSymbols(ulong plateID, int retryTime = 0) { var req = new ReqPlateSymbols(); req.plateIDs.Add(plateID); req.setOper = ESetOper.Union; req.page = new DataPage() { begin = 0, end = 0 }; var rep = SyncRequestEx.Instance.SyncSendData(req, _waitTime); if (rep is Exception) { if (retryTime > RetryTime) { string exMsg = string.Format("同步板块股票异常. 重试{0}次仍未取到值. plateID:{1}.", DSPHelper.RetryTime, plateID); LogHelper.Error("异常", exMsg); return(null); } retryTime += 1; string errMsg = string.Format("获取板块:{0}的股票发生异常!重试{1}次!", plateID, retryTime); LogHelper.Info("总运行", errMsg); return(GetPlateSymbols(plateID, retryTime)); } var obj = rep as RepPlateSymbols; if (obj.columns.Count == 0) { //string msg = string.Format("板块:{0},取不到对应的股票。", plateID); //LogHelper.Info("板块取股票", msg); return(null); } var list = TransferHelper.Transfer2List <SymbolInfo>(rep); return(list); }