示例#1
0
        public int UpdateToday(EntrustDirection direction, int commandId, string secuCode, int dealAmount, double dealBalance, double dealFee)
        {
            int ret = -1;

            switch (direction)
            {
            case EntrustDirection.BuySpot:
            case EntrustDirection.BuyClose:
            {
                ret = UpdateBuyToday(commandId, secuCode, dealAmount, dealBalance, dealFee);
            }
            break;

            case EntrustDirection.SellSpot:
            case EntrustDirection.SellOpen:
            {
                ret = UpdateSellToday(commandId, secuCode, dealAmount, dealBalance, dealFee);
            }
            break;

            default:
                break;
            }

            return(ret);
        }
        public static string GetFuturesDirection(EntrustDirection eDirection)
        {
            string direction = string.Empty;

            switch (eDirection)
            {
            case EntrustDirection.SellOpen:
            {
                //平仓
                direction = "1";
            }
            break;

            case EntrustDirection.BuyClose:
            {
                //开仓
                direction = "2";
            }
            break;

            default:
                break;
            }

            return(direction);
        }
示例#3
0
        public static string GetEntrustDirection(EntrustDirection entrustDirection)
        {
            string direction = string.Empty;

            switch (entrustDirection)
            {
            case EntrustDirection.BuySpot:
            {
                direction = "买入";
            }
            break;

            case EntrustDirection.SellSpot:
            {
                direction = "卖出";
            }
            break;

            case EntrustDirection.SellOpen:
            {
                direction = "卖出开仓";
            }
            break;

            case EntrustDirection.BuyClose:
            {
                direction = "买入平仓";
            }
            break;

            case EntrustDirection.Buy:
            {
                direction = "买入";
            }
            break;

            case EntrustDirection.Sell:
            {
                direction = "卖出";
            }
            break;

            case EntrustDirection.AdjustedToBuySell:
            {
                direction = "调整到[买卖]";
            }
            break;

            default:
                break;
            }

            return(direction);
        }
        public static EntrustDirection GetEntrustDirection(string tradeDirection)
        {
            int temp = 0;
            EntrustDirection direction = EntrustDirection.Buy;

            if (int.TryParse(tradeDirection, out temp))
            {
                if (Enum.IsDefined(typeof(EntrustDirection), temp))
                {
                    direction = (EntrustDirection)Enum.ToObject(typeof(EntrustDirection), temp);
                }
            }

            return(direction);
        }
示例#5
0
        public static EntrustDirection GetSecurityEntrustDirection(UFXEntrustDirection entrustDirection)
        {
            EntrustDirection eDirection = EntrustDirection.None;

            switch (entrustDirection)
            {
            case UFXEntrustDirection.Buy:
                eDirection = EntrustDirection.BuySpot;
                break;

            case UFXEntrustDirection.Sell:
                eDirection = EntrustDirection.SellSpot;
                break;

            default:
                break;
            }

            return(eDirection);
        }
示例#6
0
        private void SetPreItem(TradeInstanceSecurity tiSecuItem, EntrustDirection direction, int entrustAmount)
        {
            switch (tiSecuItem.SecuType)
            {
            case SecurityType.Stock:
            {
                if (direction == EntrustDirection.BuySpot)
                {
                    tiSecuItem.InstructionPreBuy = entrustAmount;
                    tiSecuItem.PositionType      = PositionType.SpotLong;
                }
                else if (direction == EntrustDirection.SellSpot)
                {
                    tiSecuItem.InstructionPreSell = entrustAmount;
                    tiSecuItem.PositionType       = PositionType.SpotShort;
                }
            }
            break;

            case SecurityType.Futures:
            {
                if (direction == EntrustDirection.SellOpen)
                {
                    tiSecuItem.InstructionPreBuy = entrustAmount;
                    tiSecuItem.PositionType      = PositionType.FuturesShort;
                }
                else if (direction == EntrustDirection.BuyClose)
                {
                    tiSecuItem.InstructionPreSell = entrustAmount;
                    tiSecuItem.PositionType       = PositionType.FuturesLong;
                }
            }
            break;

            default:
                break;
            }
        }
        public static EntrustDirection GetEntrustDirectionType(string directionCode, string exchangeCode)
        {
            EntrustDirection direction = EntrustDirection.None;

            switch (directionCode)
            {
            case "1":
            {
                if (exchangeCode.Equals(Exchange.SHSE) || exchangeCode.Equals(Exchange.SZSE))
                {
                    direction = EntrustDirection.BuySpot;
                }
                else if (exchangeCode.Equals(Exchange.CFFEX))
                {
                    direction = EntrustDirection.SellOpen;
                }
            }
            break;

            case "2":
            {
                if (exchangeCode.Equals(Exchange.SHSE) || exchangeCode.Equals(Exchange.SZSE))
                {
                    direction = EntrustDirection.SellSpot;
                }
                else if (exchangeCode.Equals(Exchange.CFFEX))
                {
                    direction = EntrustDirection.BuyClose;
                }
            }
            break;

            default:
                break;
            }

            return(direction);
        }
示例#8
0
        public static EntrustDirection GetFuturesEntrustDirection(UFXEntrustDirection entrustDirection, UFXFuturesDirection futuresDirection)
        {
            EntrustDirection eDirection = EntrustDirection.None;

            if (entrustDirection == UFXEntrustDirection.Sell && futuresDirection == UFXFuturesDirection.Open)
            {
                eDirection = EntrustDirection.SellOpen;
            }
            else if (entrustDirection == UFXEntrustDirection.Sell && futuresDirection == UFXFuturesDirection.Close)
            {
                eDirection = EntrustDirection.SellClose;
            }
            else if (entrustDirection == UFXEntrustDirection.Buy && futuresDirection == UFXFuturesDirection.Close)
            {
                eDirection = EntrustDirection.BuyClose;
            }
            else if (entrustDirection == UFXEntrustDirection.Buy && futuresDirection == UFXFuturesDirection.Open)
            {
                eDirection = EntrustDirection.BuyOpen;
            }

            return(eDirection);
        }
示例#9
0
        private List <EntrustFlowItem> GetFlowItems(CallerToken token, List <UFXQueryFuturesEntrustResponse> responseItems)
        {
            var entrustFlowItems = new List <EntrustFlowItem>();

            if (responseItems == null || responseItems.Count == 0)
            {
                return(entrustFlowItems);
            }

            Portfolio portfolio     = (Portfolio)token.InArgs;
            string    portfolioCode = string.Empty;
            string    portfolioName = string.Empty;
            string    fundCode      = string.Empty;
            string    fundName      = string.Empty;

            if (portfolio != null)
            {
                portfolioCode = portfolio.PortfolioNo;
                portfolioName = portfolio.PortfolioName;
                fundCode      = portfolio.FundCode;
                fundName      = portfolio.FundName;
            }

            Dictionary <int, Model.UI.TradeInstance> cmdInstMap = new Dictionary <int, Model.UI.TradeInstance>();

            foreach (var responseItem in responseItems)
            {
                int commandId = 0;
                int submitId = 0;
                int requestId = 0;
                int temp1, temp2, temp3;
                if (EntrustRequestHelper.TryParseThirdReff(responseItem.ThirdReff, out temp1, out temp2, out temp3))
                {
                    commandId = temp1;
                    submitId  = temp2;
                    requestId = temp3;
                }

                int    instanceId   = 0;
                string instanceCode = string.Empty;
                if (!cmdInstMap.ContainsKey(commandId))
                {
                    var tradeInstance = _tradeCommandBLL.GetTradeInstance(commandId);
                    if (tradeInstance != null)
                    {
                        instanceId   = tradeInstance.InstanceId;
                        instanceCode = tradeInstance.InstanceCode;
                        cmdInstMap.Add(commandId, tradeInstance);
                    }
                }
                else
                {
                    instanceId   = cmdInstMap[commandId].InstanceId;
                    instanceCode = cmdInstMap[commandId].InstanceCode;
                }

                var entrustDirection        = UFXTypeConverter.GetEntrustDirection(responseItem.EntrustDirection);
                var futuresDirection        = UFXTypeConverter.GetFuturesDirection(responseItem.FuturesDirection);
                EntrustDirection eDirection = EntrustDirectionConverter.GetFuturesEntrustDirection(entrustDirection, futuresDirection);

                EntrustFlowItem efItem = new EntrustFlowItem
                {
                    CommandNo = token.CommandId,
                    SubmitId  = token.SubmitId,
                    //Market = responseItem.MarketNo,
                    SecuCode = responseItem.StockCode,
                    //EntrustDirection = responseItem.EntrustDirection,
                    EEntrustPriceType = EntrustPriceTypeConverter.GetPriceType(responseItem.PriceType),
                    EntrustPrice      = responseItem.EntrustPrice,
                    EntrustAmount     = responseItem.EntrustAmount,
                    //EntrustStatus = responseItem.EntrustState,
                    DealAmount     = responseItem.DealAmount,
                    DealMoney      = responseItem.DealBalance,
                    DealTimes      = responseItem.DealTimes,
                    DEntrustDate   = DateUtil.GetDateTimeFromInt(responseItem.EntrustDate, responseItem.EntrustTime),
                    EntrustBatchNo = responseItem.BatchNo,
                    EntrustNo      = responseItem.EntrustNo,
                    DeclareSeat    = responseItem.ReportSeat,
                    DeclareNo      = Convert.ToInt32(responseItem.ReportNo),
                    RequestId      = responseItem.ExtSystemId,
                    FundCode       = responseItem.AccountCode,
                    FundName       = fundName,
                    PortfolioCode  = portfolioCode,
                    PortfolioName  = portfolioName,
                    EDirection     = eDirection,
                    //EEntrustDirection = UFXTypeConverter.GetEntrustDirection(responseItem.EntrustDirection),
                    EMarketCode   = UFXTypeConverter.GetMarketCode(responseItem.MarketNo),
                    EEntrustState = UFXTypeConverter.GetEntrustState(responseItem.EntrustState),
                    WithdrawCause = responseItem.WithdrawCause,
                    InstanceId    = instanceId,
                    InstanceNo    = instanceCode,
                };

                if (responseItem.FirstDealTime > 0)
                {
                    efItem.DFirstDealDate = DateUtil.GetDateTimeFromInt(responseItem.EntrustDate, responseItem.FirstDealTime);
                }

                efItem.ExchangeCode = UFXTypeConverter.GetMarketCode(efItem.EMarketCode);
                efItem.CommandNo    = commandId;
                efItem.SubmitId     = submitId;
                efItem.RequestId    = requestId;

                entrustFlowItems.Add(efItem);
            }

            return(entrustFlowItems);
        }
示例#10
0
        private void ComboBox_PriceType_SelectedIndexChange(object sender, EventArgs e)
        {
            if (sender == null || !(sender is ComboBox))
            {
                return;
            }
            ComboBox cb = sender as ComboBox;

            PriceType        priceType   = PriceTypeHelper.GetPriceType(cb);
            EntrustDirection direction   = EntrustDirection.BuySpot;
            SecurityType     secuType    = SecurityType.All;
            EntrustPriceType shPriceType = EntrustPriceTypeHelper.GetPriceType(this.cbSHExchangePrice);
            EntrustPriceType szPriceType = EntrustPriceTypeHelper.GetPriceType(this.cbSZExchangePrice);

            switch (cb.Name)
            {
            case "cbSpotBuyPrice":
            {
                direction = EntrustDirection.BuySpot;
                secuType  = SecurityType.Stock;
            }
            break;

            case "cbSpotSellPrice":
            {
                direction = EntrustDirection.SellSpot;
                secuType  = SecurityType.Stock;
            }
            break;

            case "cbFuturesBuyPrice":
            {
                direction = EntrustDirection.BuyClose;
                secuType  = SecurityType.Futures;
            }
            break;

            case "cbFuturesSellPrice":
            {
                direction = EntrustDirection.SellOpen;
                secuType  = SecurityType.Futures;
            }
            break;

            default:
                break;
            }

            var stockItems = _secuDataSource.Where(p => p.EDirection == direction && p.SecuType == secuType).ToList();

            if (stockItems.Count > 0)
            {
                stockItems.ForEach(p =>
                {
                    p.EPriceSetting = priceType;
                    SetEntrustPriceType(p, shPriceType, szPriceType);
                });
            }

            //update the quote
            QueryQuote();

            this.secuGridView.Invalidate();
        }
        private List <DealFlowItem> GetDealItems(CallerToken token, List <UFXQueryFuturesDealResponse> responseItems)
        {
            var dealFlowItems = new List <DealFlowItem>();

            if (responseItems == null || responseItems.Count == 0)
            {
                return(dealFlowItems);
            }

            Portfolio portfolio     = (Portfolio)token.InArgs;
            string    portfolioCode = string.Empty;
            string    portfolioName = string.Empty;
            string    fundCode      = string.Empty;
            string    fundName      = string.Empty;

            if (portfolio != null)
            {
                portfolioCode = portfolio.PortfolioNo;
                portfolioName = portfolio.PortfolioName;
                fundCode      = portfolio.FundCode;
                fundName      = portfolio.FundName;
            }

            Dictionary <int, Model.UI.TradeInstance> cmdInstMap = new Dictionary <int, Model.UI.TradeInstance>();

            foreach (var responseItem in responseItems)
            {
                int commandId = 0;
                int submitId = 0;
                int requestId = 0;
                int temp1, temp2, temp3;
                if (EntrustRequestHelper.TryParseThirdReff(responseItem.ThirdReff, out temp1, out temp2, out temp3))
                {
                    commandId = temp1;
                    submitId  = temp2;
                    requestId = temp3;
                }

                int    instanceId   = 0;
                string instanceCode = string.Empty;
                if (!cmdInstMap.ContainsKey(commandId))
                {
                    var tradeInstance = _tradeCommandBLL.GetTradeInstance(commandId);
                    if (tradeInstance != null)
                    {
                        instanceId   = tradeInstance.InstanceId;
                        instanceCode = tradeInstance.InstanceCode;
                        cmdInstMap.Add(commandId, tradeInstance);
                    }
                }
                else
                {
                    instanceId   = cmdInstMap[commandId].InstanceId;
                    instanceCode = cmdInstMap[commandId].InstanceCode;
                }

                var marketCode              = UFXTypeConverter.GetMarketCode(responseItem.MarketNo);
                var entrustDirection        = UFXTypeConverter.GetEntrustDirection(responseItem.EntrustDirection);
                var futuresDirection        = UFXTypeConverter.GetFuturesDirection(responseItem.FuturesDirection);
                EntrustDirection eDirection = EntrustDirectionConverter.GetFuturesEntrustDirection(entrustDirection, futuresDirection);

                DealFlowItem efItem = new DealFlowItem
                {
                    CommandNo       = commandId,
                    SecuCode        = responseItem.StockCode,
                    FundNo          = responseItem.AccountCode,
                    FundName        = fundName,
                    PortfolioCode   = responseItem.CombiNo,
                    PortfolioName   = portfolioName,
                    EDirection      = eDirection,
                    DealPrice       = responseItem.DealPrice,
                    DealAmount      = responseItem.DealAmount,
                    DealMoney       = responseItem.DealBalance,
                    DealTime        = string.Format("{0}", responseItem.DealTime),
                    ShareHolderCode = responseItem.StockHolderId,
                    EntrustNo       = string.Format("{0}", responseItem.EntrustNo),
                    DealNo          = string.Format("{0}", responseItem.DealNo),
                    ExchangeCode    = UFXTypeConverter.GetMarketCode(marketCode),
                    InstanceId      = instanceId.ToString(),
                    InstanceNo      = instanceCode,
                };

                dealFlowItems.Add(efItem);
            }

            return(dealFlowItems);
        }