public List <HKMarketValue> QuerymarketValueHKHold(string code, ref string strMessage) { List <HKMarketValue> list = new List <HKMarketValue>(); List <HKTraderFindService.HKHoldFindResultyEntity> holdMarket = QueryHKHold(code, hkAccount, ref strMessage); if (holdMarket == null) { return(list); } foreach (var item in holdMarket) { HKMarketValue hkmare = new HKMarketValue(); hkmare.BelongMarket = item.BelongMarket; hkmare.BreakevenPrice = item.HoldFindResult.BreakevenPrice; hkmare.Code = item.HoldFindResult.Code; hkmare.CostPrice = item.HoldFindResult.CostPrice; hkmare.CurrencyName = item.CurrencyName; hkmare.ErroNumber = item.ErroNumber; hkmare.ErroReason = item.ErroReason; hkmare.FloatProfitLoss = item.FloatProfitLoss; hkmare.HKName = item.HKName; hkmare.HoldAveragePrice = item.HoldFindResult.HoldAveragePrice; hkmare.HoldSumAmount = item.HoldSumAmount; hkmare.MarketValue = item.MarketValue; hkmare.RealtimePrice = item.RealtimePrice; hkmare.TraderId = item.TraderId; hkmare.VarietyCategories = item.VarietyCategories; list.Add(hkmare); } return(list); }
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); }
public List <HKMarketValue> QuerymarketValueXHHold(string code, ref string strMessage) { List <HKMarketValue> list = new List <HKMarketValue>(); if (!IsServiceOk) { return(null); } int icount; var shcfe = new TraderFindService.SpotHoldConditionFindEntity(); if (!string.IsNullOrEmpty(code)) { shcfe.SpotCode = code; } var holds = traderFindClient.SpotHoldFind(out icount, xhAccount, "", 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.Code; hkmare.CostPrice = item.HoldFindResult.CostPrice; hkmare.CurrencyName = item.CurrencyName; hkmare.ErroNumber = item.ErroNumber; hkmare.ErroReason = item.ErroReason; hkmare.FloatProfitLoss = item.FloatProfitLoss; hkmare.HKName = item.SpotName; hkmare.HoldAveragePrice = item.HoldFindResult.HoldAveragePrice; hkmare.HoldSumAmount = item.HoldSumAmount; hkmare.MarketValue = item.MarketValue; hkmare.RealtimePrice = item.RealtimePrice; hkmare.TraderId = item.TraderId; hkmare.VarietyCategories = item.VarietyCategories; list.Add(hkmare); } return(list); }