/// <summary> /// 3.买一卖一百分比 /// </summary> /// <param name="request"></param> /// <returns></returns> private bool CheckType3(StockOrderRequest request, HighLowRange highLowRange) { decimal highRange = highLowRange.HighRange; decimal lowRange = highLowRange.LowRange; IRealtimeMarketService service = RealTimeMarketUtil.GetRealMarketService(); //RealtimeMarketServiceFactory.GetService(); HqExData data = service.GetStockHqData(request.Code); HqExData exData = data; HqData hqData = exData.HqData; float b1 = hqData.Buyprice1; decimal buy1 = (decimal)b1; float s1 = hqData.Sellprice1; decimal sell1 = (decimal)s1; decimal high = sell1 * highRange; decimal low = buy1 * lowRange; decimal orderPrice = (decimal)request.OrderPrice; if (orderPrice >= low && orderPrice <= high) { return(true); } return(false); }
/// <summary> /// 1.昨日收盘价的上下百分比 /// </summary> /// <param name="request"></param> /// <returns></returns> private bool CheckType1(StockOrderRequest request, HighLowRange highLowRange) { decimal highRange = highLowRange.HighRange; decimal lowRange = highLowRange.LowRange; IRealtimeMarketService service = RealTimeMarketUtil.GetRealMarketService(); //RealtimeMarketServiceFactory.GetService(); HqExData data = service.GetStockHqData(request.Code); HqExData exData = data; float yClose = exData.YClose; decimal yestPrice = (decimal)yClose; decimal high = yestPrice * (1 + highRange); decimal low = yestPrice * (1 - lowRange); decimal orderPrice = (decimal)request.OrderPrice; if (orderPrice >= low && orderPrice <= high) { return(true); } return(false); }
private void button1_Click(object sender, EventArgs e) { propertyGrid1.SelectedObject = null; string code = textBox1.Text; if (code.Length == 0) { MessageBox.Show("股票代码不能为空"); return; } if (code.ToUpper().IndexOf("IF") >= 0) { var vifFutdata = rms.GetFutData(code); if (vifFutdata == null) { return; } var hutExData = vifFutdata; if (hutExData == null) { return; } propertyGrid1.SelectedObject = hutExData; rms.StockRealtimeMarketChangeEvent -= RefreshXHData; rms.FutRealtimeMarketChangeEvent += RefreshQHData; } else { var hqdata = rms.GetStockHqData(code); if (hqdata == null) { return; } var hqExData = hqdata; if (hqExData == null) { return; } var hqData = hqExData.HqData; if (hqData == null) { return; } propertyGrid1.SelectedObject = hqData; rms.FutRealtimeMarketChangeEvent -= RefreshQHData; rms.StockRealtimeMarketChangeEvent += RefreshXHData; } }
private void button1_Click(object sender, EventArgs e) { propertyGrid1.SelectedObject = null; string code = textBox1.Text; if (code.Length == 0) { MessageBox.Show("股票代码不能为空"); return; } IRealtimeMarketService service = RealtimeMarketServiceFactory.GetService(); if (code.ToUpper().IndexOf("IF") >= 0) { var vifFutdata = service.GetFutData(code); if (vifFutdata == null) { return; } var hutExData = vifFutdata; if (hutExData == null) { return; } propertyGrid1.SelectedObject = hutExData; } else { var hqdata = service.GetStockHqData(code); if (hqdata == null) { return; } var hqExData = hqdata; if (hqExData == null) { return; } var hqData = hqExData.HqData; if (hqData == null) { return; } propertyGrid1.SelectedObject = hqData; } }
/// <summary> /// 5.港股买卖价位 /// </summary> /// <param name="request"></param> /// <returns></returns> private bool CheckType5(StockOrderRequest request, HighLowRange highLowRange) { HKRange hkRange = highLowRange.HongKongRange; decimal buyHighRange = hkRange.BuyHighRange; decimal buyLowRange = hkRange.BuyLowRange; decimal sellHighRange = hkRange.SellHighRange; decimal sellLowRange = hkRange.SellLowRange; IRealtimeMarketService service = RealTimeMarketUtil.GetRealMarketService(); //RealtimeMarketServiceFactory.GetService(); HqExData data = service.GetStockHqData(request.Code); HqExData exData = data; HqData hqData = exData.HqData; float b1 = hqData.Buyprice1; decimal buy1 = (decimal)b1; float s1 = hqData.Sellprice1; decimal sell1 = (decimal)s1; decimal buyH = sell1; decimal buyL = MCService.HLRangeProcessor.GetHKRangeValue(request.Code, (decimal)request.OrderPrice, buy1, -buyLowRange); decimal sellH = MCService.HLRangeProcessor.GetHKRangeValue(request.Code, (decimal)request.OrderPrice, sell1, sellHighRange); decimal sellL = buy1; decimal high = 0; decimal low = 0; if (request.BuySell == Types.TransactionDirection.Buying) { low = buyL; high = buyH; } else { low = sellL; high = sellH; } decimal orderPrice = (decimal)request.OrderPrice; if (orderPrice >= low && orderPrice <= high) { return(true); } throw new NotImplementedException(); }
/// <summary> ///根据现货代码获取当前代码行情 /// </summary> /// <param name="commdityCode">代码</param> /// <returns></returns> public static HqExData GetRealTimeStockDataByCommdityCode(string commdityCode) { //撮合中心代码不能为空 if (string.IsNullOrEmpty(commdityCode)) { return(null); } IRealtimeMarketService realTimeService = GetRealtimeMark(); //撮合中心实体不能为空 if (realTimeService == null) { return(null); } HqExData vtHqExData = realTimeService.GetStockHqData(commdityCode); return(vtHqExData); }
/// <summary> /// 检测是否停牌,如果没有停牌,代表校验通过 /// 当获取不到行情表示停牌,当买一价、量,卖一价、量都为0时也表示停牌 /// </summary> /// <param name="errMsg"></param> /// <returns></returns> private bool CheckStopTrading(ref string errMsg) { errMsg = "当前交易股票" + request.Code + "可能停牌,委托无效。"; string errCode = "GT-1206"; errMsg = errCode + ":" + errMsg; IRealtimeMarketService service = RealTimeMarketUtil.GetRealMarketService(); //RealtimeMarketServiceFactory.GetService(); var hqdata = service.GetStockHqData(request.Code); if (hqdata == null) { return(false); } var hqExData = hqdata; if (hqExData == null) { return(false); } var hqData = hqExData.HqData; if (hqData == null) { return(false); } if (hqData.Buyprice1 == 0 && hqData.Sellprice1 == 0 && hqData.Buyvol1 == 0 && hqData.Sellvol1 == 0) { return(false); } errMsg = ""; return(true); }
/// <summary> /// 6.最近成交价上下各多少元 /// </summary> /// <param name="request"></param> /// <returns></returns> private bool CheckType6(StockOrderRequest request, HighLowRange highLowRange) { decimal highRange = highLowRange.HighRange; decimal lowRange = highLowRange.LowRange; IRealtimeMarketService service = RealTimeMarketUtil.GetRealMarketService(); //RealtimeMarketServiceFactory.GetService(); HqExData data = service.GetStockHqData(request.Code); HqExData exData = data; float rPrice = exData.LastVolume; decimal recentPrice = (decimal)rPrice; decimal high = recentPrice + highRange; decimal low = recentPrice - lowRange; decimal orderPrice = (decimal)request.OrderPrice; if (orderPrice >= low && orderPrice <= high) { return(true); } return(false); }