/// <summary> /// 获取港股的最近成交价 /// </summary> /// <param name="code"></param> /// <returns></returns> public decimal GetHKLastTrade(string code) { decimal result = -1; try { HKStock data = this.service.GetHKStockData(code); if (data == null) { MessageBox.Show("GetHKLastTrade failure!"); return(result); } if (data != null) { HKStock exData = data; result = (decimal)exData.Lasttrade; } } catch (Exception ex) { MessageBox.Show(ex.Message); LogHelper.WriteError(ex.Message, ex); } return(result); }
/// <summary> /// 港股行情转换成自定义行情实体 /// </summary> /// <param name="hqData">自定义实体</param> /// <returns></returns> public MarketDataLevel HKStockDataConvertMarketDataLevel(HKStock hqData) { MarketDataLevel level = new MarketDataLevel(); level.Code = hqData.CodeKey; level.Name = hqData.StrName; #region 买价 level.BuyFirstPrice = (decimal)hqData.Buyprice1; level.BuySecondPrice = (decimal)hqData.Buyprice2; level.BuyThirdPrice = (decimal)hqData.Buyprice3; level.BuyFourthPrice = (decimal)hqData.Buyprice4; level.BuyFivePrice = (decimal)hqData.Buyprice5; #endregion #region 买量 level.BuyFirstVolume = (decimal)hqData.Buyvol1; level.BuySecondVolume = (decimal)hqData.Buyvol2; level.BuyThirdVolume = (decimal)hqData.Buyvol3; level.BuyFourthVolume = (decimal)hqData.Buyvol4; level.BuyFiveVolume = (decimal)hqData.Buyvol5; #endregion #region 卖价 level.SellFirstPrice = (decimal)hqData.Sellprice1; level.SellSecondPrice = (decimal)hqData.Sellprice2; level.SellThirdPrice = (decimal)hqData.Sellprice3; level.SellFourthPrice = (decimal)hqData.Sellprice4; level.SellFivePrice = (decimal)hqData.Sellprice5; #endregion #region 卖量 level.SellFirstVolume = (decimal)hqData.Sellvol1; level.SellSecondVolume = (decimal)hqData.Sellvol2; level.SellThirdVolume = (decimal)hqData.Sellvol3; level.SellFourthVolume = (decimal)hqData.Sellvol4; level.SellFiveVolume = (decimal)hqData.Sellvol5; #endregion level.LastPrice = decimal.Parse(hqData.Lasttrade.ToString()); level.LastVolume = decimal.Parse(hqData.PTrans.ToString()); level.LowerPrice = decimal.Parse(hqData.Low.ToString()); level.UpPrice = decimal.Parse(hqData.High.ToString()); level.YesterPrice = decimal.Parse(hqData.ClosePrice.ToString()); level.MarketRefreshTime = DateTime.Parse(hqData.Time); return(level); }
/// <summary> ///根据港股代码获取当前代码行情 /// </summary> /// <param name="commdityCode">代码</param> /// <returns></returns> public static HKStock GetRealTimeHKStockDataByCommdityCode(string commdityCode) { //撮合中心代码不能为空 if (string.IsNullOrEmpty(commdityCode)) { return(null); } IRealtimeMarketService realTimeService = GetRealtimeMark(); //撮合中心实体不能为空 if (realTimeService == null) { return(null); } HKStock vtHqExData = realTimeService.GetHKStockData(commdityCode); return(vtHqExData); }
/// <summary> /// Title:根据代码和代码所属类型获取最后成交价(最新成交价) /// Create by:李健华 /// Create Date:2009-11-08 /// </summary> /// <param name="code"></param> /// <returns></returns> public MarketDataLevel GetLastPriceByCode(string code, int breedClassType, out string errMsg) { MarketDataLevel result = null; errMsg = ""; try { switch ((Types.BreedClassTypeEnum)breedClassType) { case Types.BreedClassTypeEnum.Stock: HqExData data = GetRealMarketService().GetStockHqData(code); if (data == null || data.HqData == null) { errMsg = "GT-0023:无法获取当前现货代码相关行情"; return(result); } // HqExData exData = data; //float lastPrice = exData.HqData.Lasttrade; //result = (decimal)lastPrice; result = HqExDataConvertMarketDataLevel(data); break; case Types.BreedClassTypeEnum.CommodityFuture: //add by 董鹏 2010-01-26 MerFutData cfdata = GetRealMarketService().GetMercantileFutData(code); if (cfdata == null) { errMsg = "GT-0023:无法获取当前商品期货代码相关行情"; return(result); } //MerFutData cforgData = cfdata; //double cflastPrice = cforgData.Lasttrade; //result = (decimal)cflastPrice; result = MerFutDataConvertMarketDataLevel(cfdata); break; case Types.BreedClassTypeEnum.StockIndexFuture: FutData qhdata = GetRealMarketService().GetFutData(code); if (qhdata == null) { errMsg = "GT-0023:无法获取当前股指期货代码相关行情"; return(result); } //FutData orgData = qhdata; //double qhlastPrice = orgData.Lasttrade; //result = (decimal)qhlastPrice; result = FutDataDataConvertMarketDataLevel(qhdata); break; case Types.BreedClassTypeEnum.HKStock: HKStock hkdata = GetRealMarketService().GetHKStockData(code); if (hkdata == null) { errMsg = "GT-0023:无法获取当前港股代码相关行情"; return(result); } //double hkLastPrice = hkdata.Lasttrade; //result = (decimal)hkLastPrice; result = HKStockDataConvertMarketDataLevel(hkdata); break; default: errMsg = "GT-0023:无此代码所属类型的行情"; break; } } catch (Exception ex) { errMsg = ex.Message; LogHelper.WriteError("GT-0023:根据代码和代码所属类型获取最后成交价(最新成交价)异常", ex); } return(result); }