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) { } 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 void OnPositionStatusReport(object sender, PositionStatusReportEventArgs e) { if (this.brokerAccount != null) { BrokerPosition brokerPosition = new BrokerPosition(); brokerPosition.AddCustomField("AccountID", e.AccountID); brokerPosition.SecurityExchange = e.SecurityExchange; brokerPosition.Symbol = e.SecurityExchange + e.SecurityID; brokerPosition.AddCustomField("Balance", e.Balance.ToString()); brokerPosition.AddCustomField("AvailableBalance", e.AvailableBalance.ToString()); brokerPosition.Currency = "CNY"; brokerPosition.LongQty = e.Quantity; this.brokerAccount.AddPosition(brokerPosition); autoResetEvent.Set(); } }
private void oR3uofPPWO(BinaryWriter obj0, BrokerPosition obj1) { obj0.Write(obj1.Currency); obj0.Write(obj1.LongQty); obj0.Write(obj1.MaturityDate.Ticks); obj0.Write(obj1.PutOrCall); obj0.Write(obj1.Qty); obj0.Write(obj1.SecurityExchange); obj0.Write(obj1.SecurityType); obj0.Write(obj1.ShortQty); obj0.Write(obj1.Strike); obj0.Write(obj1.Symbol); BrokerPositionField[] customFields = obj1.GetCustomFields(); obj0.Write(customFields.Length); foreach (BrokerPositionField brokerPositionField in customFields) { obj0.Write(brokerPositionField.Name); obj0.Write(brokerPositionField.Value); } }
private void _OnRspQryInvestorPosition(object sender, ref PositionField field, int size1, bool bIsLast) { Instrument inst = InstrumentManager.GetInstrument(field.InstrumentID); if (inst == null) { return; } // BrokerPosition brokerPos = new BrokerPosition(inst , ConvertUtil.ConvertExchange(field.ExchangeID) , field.Side == PositionSide.Long ? DirectionType.Buy : DirectionType.Sell , (long)field.Position , (long)field.TodayPosition , (long)field.HistoryPosition , (long)field.HistoryFrozen , (long)field.TodayBSPosition , (long)field.TodayBSFrozen); mOnBroderPosition?.Invoke(brokerPos); }
private BrokerPosition lrvuzgJsBI(BinaryReader obj0) { BrokerPosition brokerPosition = new BrokerPosition(); brokerPosition.Currency = obj0.ReadString(); brokerPosition.LongQty = obj0.ReadDouble(); brokerPosition.MaturityDate = new DateTime(obj0.ReadInt64()); brokerPosition.PutOrCall = obj0.ReadInt32(); brokerPosition.Qty = obj0.ReadDouble(); brokerPosition.SecurityExchange = obj0.ReadString(); brokerPosition.SecurityType = obj0.ReadString(); brokerPosition.ShortQty = obj0.ReadDouble(); brokerPosition.Strike = obj0.ReadDouble(); brokerPosition.Symbol = obj0.ReadString(); int num = obj0.ReadInt32(); for (int index = 0; index < num; ++index) { string name = obj0.ReadString(); string str = obj0.ReadString(); brokerPosition.AddCustomField(name, str); } return(brokerPosition); }
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) { 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); }
BrokerPosition CreateBrokerPosition(PositionDataXml pos) { PositionInfo info = GetPositionInfo(pos); BrokerPosition brokerPos = new BrokerPosition(); brokerPos.Symbol = pos.Symbol; brokerPos.Direction = pos.PositionType; brokerPos.Size = info.CurrentStats.CurrentSize; brokerPos.EntryPrice = info.CurrentStats.EntryPrice; brokerPos.EntryDate = info.OpenDate; return brokerPos; }
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); }