private BrokerAccount cKpu5qjmIn(BinaryReader obj0) { string name1 = obj0.ReadString(); double num1 = obj0.ReadDouble(); BrokerAccount brokerAccount = new BrokerAccount(name1); brokerAccount.BuyingPower = num1; int num2 = obj0.ReadInt32(); for (int index = 0; index < num2; ++index) { brokerAccount.AddOrder(this.vHxhvWlydv(obj0)); } int num3 = obj0.ReadInt32(); for (int index = 0; index < num3; ++index) { brokerAccount.AddPosition(this.lrvuzgJsBI(obj0)); } int num4 = obj0.ReadInt32(); for (int index = 0; index < num4; ++index) { string name2 = obj0.ReadString(); string str = obj0.ReadString(); string currency = obj0.ReadString(); brokerAccount.AddField(name2, currency, str); } return(brokerAccount); }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { if (_bTdConnected) { } else { return(brokerInfo); } BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID) { BuyingPower = m_TradingAccount.Available }; Type t = typeof(CThostFtdcTradingAccountField); FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields) { brokerAccount.AddField(field.Name, field.GetValue(m_TradingAccount).ToString()); } foreach (CThostFtdcInvestorPositionField pos in _dictPositions.Values) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = pos.InstrumentID }; if (TThostFtdcPosiDirectionType.Long == pos.PosiDirection) { brokerPosition.LongQty = pos.Position; } else if (TThostFtdcPosiDirectionType.Short == pos.PosiDirection) { brokerPosition.ShortQty = pos.Position; } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; Type t2 = typeof(CThostFtdcInvestorPositionField); FieldInfo[] fields2 = t2.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields2) { brokerPosition.AddCustomField(field.Name, field.GetValue(pos).ToString()); } brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return(brokerInfo); }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { if (_bTdConnected) { } else { return brokerInfo; } BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID) { BuyingPower = m_TradingAccount.Available }; Type t = typeof(CThostFtdcTradingAccountField); FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields) { brokerAccount.AddField(field.Name, field.GetValue(m_TradingAccount).ToString()); } foreach (CThostFtdcInvestorPositionField pos in _dictPositions.Values) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = pos.InstrumentID }; if (TThostFtdcPosiDirectionType.Long == pos.PosiDirection) { brokerPosition.LongQty = pos.Position; } else if (TThostFtdcPosiDirectionType.Short == pos.PosiDirection) { brokerPosition.ShortQty = pos.Position; } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; Type t2 = typeof(CThostFtdcInvestorPositionField); FieldInfo[] fields2 = t2.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields2) { brokerPosition.AddCustomField(field.Name, field.GetValue(pos).ToString()); } brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return brokerInfo; }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (!this.isConnected) { this.EmitError(this.Id, -1, "The TDXTradeProvider is not connected."); return(brokerInfo); } ReportArgs rargs = this.trader.QueryFund(); if (rargs.Succeeded && rargs.Result != null) { FundRecord fundRecord = (FundRecord)rargs.Result; BrokerAccount brokerAccount = new BrokerAccount("通达信-" + this.fundID); brokerAccount.AddField("Balance", fundRecord.Balance.ToString()); brokerAccount.AddField("Available", fundRecord.Available.ToString()); brokerAccount.AddField("TotalAssets", fundRecord.TotalAsserts.ToString()); brokerAccount.AddField("Desirable", fundRecord.Desirable.ToString()); brokerAccount.AddField("MarketValue", fundRecord.MarketValue.ToString()); brokerAccount.AddField("Frozen", fundRecord.Frozen.ToString()); brokerAccount.BuyingPower = fundRecord.Available; brokerInfo.Accounts.Add(brokerAccount); rargs = this.trader.QueryPositions(); if (rargs.Succeeded && rargs.Result != null) { List <PositionRecord> positions = (List <PositionRecord>)rargs.Result; foreach (PositionRecord position in positions) { BrokerPosition brokerPosition = new BrokerPosition(); brokerPosition.SecurityExchange = position.SecurityExchange; brokerPosition.Symbol = position.SecurityExchange + "." + position.SecurityID; brokerPosition.AddCustomField("Available", position.Available.ToString()); brokerPosition.Qty = position.Quantity; brokerPosition.AddCustomField("CostPrice", position.CostPrice.ToString()); brokerPosition.LongQty = position.Quantity; brokerAccount.AddPosition(brokerPosition); } } else { this.EmitError(this.Id, -1, rargs.ErrorInfo); } } else { this.EmitError(this.Id, -1, rargs.ErrorInfo); } return(brokerInfo); }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { Console.WriteLine(string.Format("GetBrokerInfo:{0}", Clock.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))); //TraderApi.TD_ReqQryTradingAccount(m_pTdApi); //TraderApi.TD_ReqQryInvestorPosition(m_pTdApi, null); //timerAccount.Enabled = false; //timerAccount.Enabled = true; //timerPonstion.Enabled = false; //timerPonstion.Enabled = true; BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID); // account fields brokerAccount.BuyingPower = m_TradingAccount.Available; brokerAccount.AddField("Available", m_TradingAccount.Available.ToString()); brokerAccount.AddField("Balance", m_TradingAccount.Balance.ToString()); brokerAccount.AddField("CashIn", m_TradingAccount.CashIn.ToString()); brokerAccount.AddField("CloseProfit", m_TradingAccount.CloseProfit.ToString()); brokerAccount.AddField("Commission", m_TradingAccount.Commission.ToString()); brokerAccount.AddField("Credit", m_TradingAccount.Credit.ToString()); brokerAccount.AddField("CurrMargin", m_TradingAccount.CurrMargin.ToString()); brokerAccount.AddField("DeliveryMargin", m_TradingAccount.DeliveryMargin.ToString()); brokerAccount.AddField("Deposit", m_TradingAccount.Deposit.ToString()); brokerAccount.AddField("ExchangeDeliveryMargin", m_TradingAccount.ExchangeDeliveryMargin.ToString()); brokerAccount.AddField("ExchangeMargin", m_TradingAccount.ExchangeMargin.ToString()); brokerAccount.AddField("FrozenCash", m_TradingAccount.FrozenCash.ToString()); brokerAccount.AddField("FrozenCommission", m_TradingAccount.FrozenCommission.ToString()); brokerAccount.AddField("FrozenMargin", m_TradingAccount.FrozenMargin.ToString()); brokerAccount.AddField("Interest", m_TradingAccount.Interest.ToString()); brokerAccount.AddField("InterestBase", m_TradingAccount.InterestBase.ToString()); brokerAccount.AddField("Mortgage", m_TradingAccount.Mortgage.ToString()); brokerAccount.AddField("PositionProfit", m_TradingAccount.PositionProfit.ToString()); brokerAccount.AddField("PreBalance", m_TradingAccount.PreBalance.ToString()); brokerAccount.AddField("PreCredit", m_TradingAccount.PreCredit.ToString()); brokerAccount.AddField("PreDeposit", m_TradingAccount.PreDeposit.ToString()); brokerAccount.AddField("PreMargin", m_TradingAccount.PreMargin.ToString()); brokerAccount.AddField("PreMortgage", m_TradingAccount.PreMortgage.ToString()); brokerAccount.AddField("Reserve", m_TradingAccount.Reserve.ToString()); brokerAccount.AddField("SettlementID", m_TradingAccount.SettlementID.ToString()); brokerAccount.AddField("Withdraw", m_TradingAccount.Withdraw.ToString()); brokerAccount.AddField("WithdrawQuota", m_TradingAccount.WithdrawQuota.ToString()); DataRow[] rows = _dbInMemInvestorPosition.SelectAll(); foreach (DataRow dr in rows) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = dr[DbInMemInvestorPosition.InstrumentID].ToString() }; int pos = (int)dr[DbInMemInvestorPosition.Position]; TThostFtdcPosiDirectionType PosiDirection = (TThostFtdcPosiDirectionType)dr[DbInMemInvestorPosition.PosiDirection]; if (TThostFtdcPosiDirectionType.Long == PosiDirection) { brokerPosition.LongQty = pos; } else if (TThostFtdcPosiDirectionType.Short == PosiDirection) { brokerPosition.ShortQty = pos; } else { if (pos >= 0)//净NET这个概念是什么情况? brokerPosition.LongQty = pos; else brokerPosition.ShortQty = -pos; } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; brokerPosition.AddCustomField(DbInMemInvestorPosition.PosiDirection, PosiDirection.ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.HedgeFlag, ((TThostFtdcHedgeFlagType)dr[DbInMemInvestorPosition.HedgeFlag]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.PositionDate, ((TThostFtdcPositionDateType)dr[DbInMemInvestorPosition.PositionDate]).ToString()); brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return brokerInfo; }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { if (_bTdConnected) { //tdlog.Info("GetBrokerInfo"); } else { //if (nGetBrokerInfoCount < 5) //{ // tdlog.Info("GetBrokerInfo,交易没有连接,查询无效,5次后将不显示"); // ++nGetBrokerInfoCount; //} return null; } BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID); // account fields brokerAccount.BuyingPower = m_TradingAccount.Available; Type t = typeof(CZQThostFtdcTradingAccountField); FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields) { brokerAccount.AddField(field.Name, field.GetValue(m_TradingAccount).ToString()); } DataRow[] rows = _dbInMemInvestorPosition.SelectAll(); foreach (DataRow dr in rows) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = dr[DbInMemInvestorPosition.InstrumentID].ToString() }; int pos = (int)dr[DbInMemInvestorPosition.Position]; TZQThostFtdcPosiDirectionType PosiDirection = (TZQThostFtdcPosiDirectionType)dr[DbInMemInvestorPosition.PosiDirection]; if (TZQThostFtdcPosiDirectionType.Long == PosiDirection) { brokerPosition.LongQty = pos; } else if (TZQThostFtdcPosiDirectionType.Short == PosiDirection) { brokerPosition.ShortQty = pos; } else { if (pos >= 0)//净NET这个概念是什么情况? brokerPosition.LongQty = pos; else brokerPosition.ShortQty = -pos; } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; brokerPosition.AddCustomField(DbInMemInvestorPosition.PosiDirection, PosiDirection.ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.HedgeFlag, ((TZQThostFtdcHedgeFlagType)dr[DbInMemInvestorPosition.HedgeFlag]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.PositionDate, ((TZQThostFtdcPositionDateType)dr[DbInMemInvestorPosition.PositionDate]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.LongFrozen, dr[DbInMemInvestorPosition.LongFrozen].ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.ShortFrozen, dr[DbInMemInvestorPosition.ShortFrozen].ToString()); brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return brokerInfo; }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { tdlog.Info("GetBrokerInfo"); //TraderApi.TD_ReqQryTradingAccount(m_pTdApi); //TraderApi.TD_ReqQryInvestorPosition(m_pTdApi, null); //timerAccount.Enabled = false; //timerAccount.Enabled = true; //timerPonstion.Enabled = false; //timerPonstion.Enabled = true; BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID) { BuyingPower = m_TradingAccount.Available }; Type t = typeof(CThostFtdcTradingAccountField); FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields) { brokerAccount.AddField(field.Name, field.GetValue(m_TradingAccount).ToString()); } DataRow[] rows = _dbInMemInvestorPosition.SelectAll(); foreach (DataRow dr in rows) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = dr[DbInMemInvestorPosition.InstrumentID].ToString() }; int pos = (int)dr[DbInMemInvestorPosition.Position]; TThostFtdcPosiDirectionType PosiDirection = (TThostFtdcPosiDirectionType)dr[DbInMemInvestorPosition.PosiDirection]; if (TThostFtdcPosiDirectionType.Long == PosiDirection) { brokerPosition.LongQty = pos; } else if (TThostFtdcPosiDirectionType.Short == PosiDirection) { brokerPosition.ShortQty = pos; } else { if (pos >= 0)//净NET这个概念是什么情况? brokerPosition.LongQty = pos; else brokerPosition.ShortQty = -pos; } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; brokerPosition.AddCustomField(DbInMemInvestorPosition.PosiDirection, PosiDirection.ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.HedgeFlag, ((TThostFtdcHedgeFlagType)dr[DbInMemInvestorPosition.HedgeFlag]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.PositionDate, ((TThostFtdcPositionDateType)dr[DbInMemInvestorPosition.PositionDate]).ToString()); brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return brokerInfo; }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { if (_bTdConnected) { //tdlog.Info("GetBrokerInfo"); } else { //if (nGetBrokerInfoCount < 5) //{ // tdlog.Info("GetBrokerInfo,交易没有连接,查询无效,5次后将不显示"); // ++nGetBrokerInfoCount; //} return(null); } BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID); // account fields brokerAccount.BuyingPower = m_TradingAccount.Available; Type t = typeof(CZQThostFtdcTradingAccountField); FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields) { brokerAccount.AddField(field.Name, field.GetValue(m_TradingAccount).ToString()); } DataRow[] rows = _dbInMemInvestorPosition.SelectAll(); foreach (DataRow dr in rows) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = dr[DbInMemInvestorPosition.InstrumentID].ToString() }; int pos = (int)dr[DbInMemInvestorPosition.Position]; TZQThostFtdcPosiDirectionType PosiDirection = (TZQThostFtdcPosiDirectionType)dr[DbInMemInvestorPosition.PosiDirection]; if (TZQThostFtdcPosiDirectionType.Long == PosiDirection) { brokerPosition.LongQty = pos; } else if (TZQThostFtdcPosiDirectionType.Short == PosiDirection) { brokerPosition.ShortQty = pos; } else { if (pos >= 0)//净NET这个概念是什么情况? { brokerPosition.LongQty = pos; } else { brokerPosition.ShortQty = -pos; } } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; brokerPosition.AddCustomField(DbInMemInvestorPosition.PosiDirection, PosiDirection.ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.HedgeFlag, ((TZQThostFtdcHedgeFlagType)dr[DbInMemInvestorPosition.HedgeFlag]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.PositionDate, ((TZQThostFtdcPositionDateType)dr[DbInMemInvestorPosition.PositionDate]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.LongFrozen, dr[DbInMemInvestorPosition.LongFrozen].ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.ShortFrozen, dr[DbInMemInvestorPosition.ShortFrozen].ToString()); brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return(brokerInfo); }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { Console.WriteLine(string.Format("GetBrokerInfo:{0}", Clock.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))); //TraderApi.TD_ReqQryTradingAccount(m_pTdApi); //TraderApi.TD_ReqQryInvestorPosition(m_pTdApi, null); //timerAccount.Enabled = false; //timerAccount.Enabled = true; //timerPonstion.Enabled = false; //timerPonstion.Enabled = true; BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID); // account fields brokerAccount.BuyingPower = m_TradingAccount.Available; Type t = typeof(CZQThostFtdcTradingAccountField); FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo field in fields) { brokerAccount.AddField(field.Name, field.GetValue(m_TradingAccount).ToString()); } DataRow[] rows = _dbInMemInvestorPosition.SelectAll(); foreach (DataRow dr in rows) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = dr[DbInMemInvestorPosition.InstrumentID].ToString() }; int pos = (int)dr[DbInMemInvestorPosition.Position]; TZQThostFtdcPosiDirectionType PosiDirection = (TZQThostFtdcPosiDirectionType)dr[DbInMemInvestorPosition.PosiDirection]; if (TZQThostFtdcPosiDirectionType.Long == PosiDirection) { brokerPosition.LongQty = pos; } else if (TZQThostFtdcPosiDirectionType.Short == PosiDirection) { brokerPosition.ShortQty = pos; } else { if (pos >= 0)//净NET这个概念是什么情况? { brokerPosition.LongQty = pos; } else { brokerPosition.ShortQty = -pos; } } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; brokerPosition.AddCustomField(DbInMemInvestorPosition.PosiDirection, PosiDirection.ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.HedgeFlag, ((TZQThostFtdcHedgeFlagType)dr[DbInMemInvestorPosition.HedgeFlag]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.PositionDate, ((TZQThostFtdcPositionDateType)dr[DbInMemInvestorPosition.PositionDate]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.LongFrozen, dr[DbInMemInvestorPosition.LongFrozen].ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.ShortFrozen, dr[DbInMemInvestorPosition.ShortFrozen].ToString()); brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return(brokerInfo); }
public BrokerInfo GetBrokerInfo() { BrokerInfo brokerInfo = new BrokerInfo(); if (IsConnected) { Console.WriteLine(string.Format("GetBrokerInfo:{0}", Clock.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))); //TraderApi.TD_ReqQryTradingAccount(m_pTdApi); //TraderApi.TD_ReqQryInvestorPosition(m_pTdApi, null); //timerAccount.Enabled = false; //timerAccount.Enabled = true; //timerPonstion.Enabled = false; //timerPonstion.Enabled = true; BrokerAccount brokerAccount = new BrokerAccount(m_TradingAccount.AccountID); // account fields brokerAccount.BuyingPower = m_TradingAccount.Available; brokerAccount.AddField("Available", m_TradingAccount.Available.ToString()); brokerAccount.AddField("Balance", m_TradingAccount.Balance.ToString()); brokerAccount.AddField("CashIn", m_TradingAccount.CashIn.ToString()); brokerAccount.AddField("CloseProfit", m_TradingAccount.CloseProfit.ToString()); brokerAccount.AddField("Commission", m_TradingAccount.Commission.ToString()); brokerAccount.AddField("Credit", m_TradingAccount.Credit.ToString()); brokerAccount.AddField("CurrMargin", m_TradingAccount.CurrMargin.ToString()); brokerAccount.AddField("DeliveryMargin", m_TradingAccount.DeliveryMargin.ToString()); brokerAccount.AddField("Deposit", m_TradingAccount.Deposit.ToString()); brokerAccount.AddField("ExchangeDeliveryMargin", m_TradingAccount.ExchangeDeliveryMargin.ToString()); brokerAccount.AddField("ExchangeMargin", m_TradingAccount.ExchangeMargin.ToString()); brokerAccount.AddField("FrozenCash", m_TradingAccount.FrozenCash.ToString()); brokerAccount.AddField("FrozenCommission", m_TradingAccount.FrozenCommission.ToString()); brokerAccount.AddField("FrozenMargin", m_TradingAccount.FrozenMargin.ToString()); brokerAccount.AddField("Interest", m_TradingAccount.Interest.ToString()); brokerAccount.AddField("InterestBase", m_TradingAccount.InterestBase.ToString()); brokerAccount.AddField("Mortgage", m_TradingAccount.Mortgage.ToString()); brokerAccount.AddField("PositionProfit", m_TradingAccount.PositionProfit.ToString()); brokerAccount.AddField("PreBalance", m_TradingAccount.PreBalance.ToString()); brokerAccount.AddField("PreCredit", m_TradingAccount.PreCredit.ToString()); brokerAccount.AddField("PreDeposit", m_TradingAccount.PreDeposit.ToString()); brokerAccount.AddField("PreMargin", m_TradingAccount.PreMargin.ToString()); brokerAccount.AddField("PreMortgage", m_TradingAccount.PreMortgage.ToString()); brokerAccount.AddField("Reserve", m_TradingAccount.Reserve.ToString()); brokerAccount.AddField("SettlementID", m_TradingAccount.SettlementID.ToString()); brokerAccount.AddField("Withdraw", m_TradingAccount.Withdraw.ToString()); brokerAccount.AddField("WithdrawQuota", m_TradingAccount.WithdrawQuota.ToString()); DataRow[] rows = _dbInMemInvestorPosition.SelectAll(); foreach (DataRow dr in rows) { BrokerPosition brokerPosition = new BrokerPosition { Symbol = dr[DbInMemInvestorPosition.InstrumentID].ToString() }; int pos = (int)dr[DbInMemInvestorPosition.Position]; TThostFtdcPosiDirectionType PosiDirection = (TThostFtdcPosiDirectionType)dr[DbInMemInvestorPosition.PosiDirection]; if (TThostFtdcPosiDirectionType.Long == PosiDirection) { brokerPosition.LongQty = pos; } else if (TThostFtdcPosiDirectionType.Short == PosiDirection) { brokerPosition.ShortQty = pos; } else { if (pos >= 0)//净NET这个概念是什么情况? { brokerPosition.LongQty = pos; } else { brokerPosition.ShortQty = -pos; } } brokerPosition.Qty = brokerPosition.LongQty - brokerPosition.ShortQty; brokerPosition.AddCustomField(DbInMemInvestorPosition.PosiDirection, PosiDirection.ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.HedgeFlag, ((TThostFtdcHedgeFlagType)dr[DbInMemInvestorPosition.HedgeFlag]).ToString()); brokerPosition.AddCustomField(DbInMemInvestorPosition.PositionDate, ((TThostFtdcPositionDateType)dr[DbInMemInvestorPosition.PositionDate]).ToString()); brokerAccount.AddPosition(brokerPosition); } brokerInfo.Accounts.Add(brokerAccount); } return(brokerInfo); }