/// <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;
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 6
0
        /// <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);
        }