예제 #1
0
        public List <HKMarketValue> QueryMarketValueQHHold(string code, ref string strMessage)
        {
            List <HKMarketValue> list = new List <HKMarketValue>();

            if (!IsServiceOk)
            {
                return(null);
            }

            int icount;
            var shcfe = new TraderFindService.FuturesHoldConditionFindEntity();

            if (!string.IsNullOrEmpty(code))
            {
                shcfe.ContractCode = code;
            }
            var holds = traderFindClient.FuturesHoldFind(out icount, gzqhAccount, "", shcfe, 0, int.MaxValue, ref strMessage);

            if (holds == null)
            {
                return(list);
            }
            foreach (var item in holds)
            {
                HKMarketValue hkmare = new HKMarketValue();
                hkmare.BelongMarket     = item.BelongMarket;
                hkmare.BreakevenPrice   = item.HoldFindResult.BreakevenPrice;
                hkmare.Code             = item.HoldFindResult.Contract;
                hkmare.CostPrice        = item.HoldFindResult.CostPrice;
                hkmare.CurrencyName     = item.CurrencyName;
                hkmare.ErroNumber       = item.ErroNumber;
                hkmare.ErroReason       = item.ErroReason;
                hkmare.FloatProfitLoss  = item.FloatProfitLoss;
                hkmare.HKName           = item.ContractName;
                hkmare.HoldAveragePrice = item.HoldFindResult.HoldAveragePrice;
                hkmare.HoldSumAmount    = item.HoldSumAmount;
                // 买方向的盯市盈亏=买方向的盯市盈亏=[持仓总量={0}*(当前价={1}-持仓均价={2})*交易单位倍数={3}]
                //sfre.MarketProfitLoss = computeTotal * (sfre.RealtimePrice - _QhAccountHold.HoldAveragePrice);
                //decimal holdSum = (decimal)item.FloatProfitLoss / (item.RealtimePrice - item.HoldFindResult.HoldAveragePrice);
                //if (holdSum == 0)
                //{
                hkmare.MarketValue = item.HoldSumAmount * item.RealtimePrice * 300;//因后台期货持仓查询返回没有计算市值,所以这里按后台公式自行计算,这里默认300
                //这里应该乘上数值倍数
                //}
                //else
                //{
                //  hkmare.MarketValue = holdSum * item.RealtimePrice;//因后台期货持仓查询返回没有计算市值,所以这里按后台公式自行计算
                //}
                hkmare.RealtimePrice    = item.RealtimePrice;
                hkmare.MarketProfitLoss = item.MarketProfitLoss;

                hkmare.TraderId          = item.TraderId;
                hkmare.VarietyCategories = item.VarietyCategories;
                list.Add(hkmare);
            }
            return(list);
        }
예제 #2
0
        public List <TraderFindService.FuturesHoldFindResultEntity> QueryQHHold(string capitalAccount, ref string strMessage)
        {
            if (!IsServiceOk)
            {
                return(null);
            }

            int icount;
            var shcfe = new TraderFindService.FuturesHoldConditionFindEntity();
            var holds = traderFindClient.FuturesHoldFind(out icount, capitalAccount, "", null,
                                                         0, int.MaxValue, ref strMessage);

            return(holds);
        }