public ActiveContract(ThostFtdcInstrumentField contract) { this.Contract = contract; LongPosition = new ThostFtdcInvestorPositionField(); ShortPosition = new ThostFtdcInvestorPositionField(); OptionValue = new OptionValue(); }
void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); if (bIsLast && !IsErrorRspInfo(pRspInfo)) { // 报单录入请求 //ReqOrderInsert(); } }
public static OptionPosition ToOptionPosition(this ThostFtdcInvestorPositionField self) { return(new OptionPosition { InstrumentID = self.InstrumentID, Qty = self.Position, UsableQty = self.Position - self.LongFrozen - self.ShortFrozen }); }
void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); if (!IsErrorRspInfo(pRspInfo)) { //pInvestorPosition.Position; HandleStatusInternal("当前账户持仓:" + pInvestorPosition.InstrumentID + " - " + pInvestorPosition.Position); } }
void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); if (bIsLast && !IsErrorRspInfo(pRspInfo)) { // 报单录入请求 ReqOrderInsert(); } }
/// <summary> /// 持仓返回 /// </summary> /// <param name="pInvestorPosition"></param> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> public void HandleOnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { var position = new PositionData(); ///合约推送 this.Gateway.MainController.MainEvent._OnPosition.Invoke(position); if (bIsLast) { Console.WriteLine("持仓返回完毕"); } }
public override void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo != null && pRspInfo.ErrorID != 0) { LogCenter.Error("请求查询投资者持仓错误:" + pRspInfo.ErrorMsg); return; } if (pInvestorPosition == null) { return; } var position = new InvestorPosition { InstrumentID = pInvestorPosition.InstrumentID, BrokerID = pInvestorPosition.BrokerID, InvestorID = pInvestorPosition.InvestorID, PosiDirection = (PosiDirection)pInvestorPosition.PosiDirection, HedgeFlag = (HedgeFlag)pInvestorPosition.HedgeFlag, PositionDate = (PositionDateType)pInvestorPosition.PositionDate, YdPosition = pInvestorPosition.YdPosition, Position = pInvestorPosition.Position, LongFrozen = pInvestorPosition.LongFrozen, ShortFrozen = pInvestorPosition.ShortFrozen, LongFrozenAmount = pInvestorPosition.LongFrozenAmount, ShortFrozenAmount = pInvestorPosition.ShortFrozenAmount, OpenVolume = pInvestorPosition.OpenVolume, CloseVolume = pInvestorPosition.CloseVolume, OpenAmount = pInvestorPosition.OpenAmount, CloseAmount = pInvestorPosition.CloseAmount, PositionCost = pInvestorPosition.PositionCost, PreMargin = pInvestorPosition.PreMargin, UseMargin = pInvestorPosition.UseMargin, FrozenMargin = pInvestorPosition.FrozenMargin, FrozenCash = pInvestorPosition.FrozenCash, FrozenCommission = pInvestorPosition.FrozenCommission, CashIn = pInvestorPosition.CashIn, Commission = pInvestorPosition.Commission, CloseProfit = pInvestorPosition.CloseProfit, PositionProfit = pInvestorPosition.PositionProfit, PreSettlementPrice = pInvestorPosition.PreSettlementPrice, SettlementPrice = pInvestorPosition.SettlementPrice, TradingDay = pInvestorPosition.TradingDay, SettlementID = pInvestorPosition.SettlementID, OpenCost = pInvestorPosition.OpenCost, ExchangeMargin = pInvestorPosition.ExchangeMargin, CombPosition = pInvestorPosition.CombPosition, CombLongFrozen = pInvestorPosition.CombLongFrozen, CombShortFrozen = pInvestorPosition.CombShortFrozen, CloseProfitByDate = pInvestorPosition.CloseProfitByDate, CloseProfitByTrade = pInvestorPosition.CloseProfitByTrade, TodayPosition = pInvestorPosition.TodayPosition, MarginRateByMoney = pInvestorPosition.MarginRateByMoney, MarginRateByVolume = pInvestorPosition.MarginRateByVolume, StrikeFrozen = pInvestorPosition.StrikeFrozen, StrikeFrozenAmount = pInvestorPosition.StrikeFrozenAmount, AbandonFrozen = pInvestorPosition.AbandonFrozen, }; this.positions.Add(position); if (bIsLast) { PositionViewModel.Instance.Update(this.positions); } }
void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); //pInvestorPosition.Position; }
public override void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
///请求查询投资者持仓响应 public void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (!IsErrorRspInfo(pRspInfo) && pInvestorPosition != null) { cMainForm.SetTDRspQryInvestorPosition((object)pInvestorPosition); } }
/// <summary> /// 查询投资者持仓应答 /// </summary> /// <param name="pInvestorPosition"></param> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); if (bIsLast && !IsErrorRspInfo(pRspInfo)) { //报单查询请求 ReqQryOrder(); } }
//查询返回时,昨仓和今仓会分开返回,所以要分别判断时间,取YDPosition或TodayPosition,Position是总持仓 private void TraderAdapter_OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { }
void trader_OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (!bIsLast) { investorPositionList.Add(pInvestorPosition); return; } this.SetMsg("正在查询合约代码……"); try { Thread.Sleep(1000); trader.ReqQryInstrument(new ThostFtdcQryInstrumentField(), requestID++); } catch (Exception exp) { this.SetMsg("合约代码查询失败," + exp.Message); } }