/// <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>
        /// 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();
        }
Beispiel #3
0
        /// <summary>
        /// 现货行情转换成自定义行情实体
        /// </summary>
        /// <param name="data">自定义实体</param>
        /// <returns></returns>
        public MarketDataLevel HqExDataConvertMarketDataLevel(HqExData data)
        {
            MarketDataLevel level = new MarketDataLevel();

            level.Code = data.CodeKey;
            level.Name = data.Name;
            HqData hqData = data.HqData;

            #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(data.LastVolume.ToString());
            level.LowerPrice        = decimal.Parse(data.LowB.ToString());
            level.UpPrice           = decimal.Parse(data.UpB.ToString());
            level.YesterPrice       = decimal.Parse(data.YClose.ToString());
            level.MarketRefreshTime = data.HqData.Time;
            return(level);
        }
 private void RefreshXHView(HqData hqData)
 {
     propertyGrid1.SelectedObject = hqData;
 }