public override void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo.ErrorID != 0) { LogCenter.Error("交易登录失败:" + pRspInfo.ErrorMsg); return; } LogCenter.Log("交易登录成功"); AccountCenter.Instance.IsTDLogin = true; this.instruments.Clear(); LogCenter.Log("请求查询合约"); int i = this.ReqQryInstrument(new ThostFtdcQryInstrumentField(), 0); if (i != 0) { LogCenter.Error("请求查询合约错误:" + CTPErrorHelper.GetError(i)); } var field = new ThostFtdcSettlementInfoConfirmField { BrokerID = AccountCenter.Instance.Account.BrokerID, InvestorID = AccountCenter.Instance.Account.InvestorID, ConfirmDate = DateTime.Today.ToString(), ConfirmTime = DateTime.Now.ToLongTimeString() }; LogCenter.Log("投资者结算结果确认"); i = this.ReqSettlementInfoConfirm(field, 0); if (i != 0) { LogCenter.Error("投资者结算结果确认错误:" + CTPErrorHelper.GetError(i)); } }
/// <summary> /// 错误应答信息 /// </summary> /// <param name="pRspInfo"></param> /// <returns></returns> bool IsErrorRspInfo(ThostFtdcRspInfoField pRspInfo) { // 如果ErrorID != 0, 说明收到了错误的响应 bool bResult = ((pRspInfo != null) && (pRspInfo.ErrorID != 0)); if (bResult) { Console.WriteLine("--->>> ErrorID={0}, ErrorMsg={1}", pRspInfo.ErrorID, pRspInfo.ErrorMsg); } return(bResult); }
private bool IsErrorRspInfo(ThostFtdcRspInfoField pRspInfo) { var flag = (pRspInfo != null && pRspInfo.ErrorID != 0); if (flag) { HandleErrorInternal("CPT返回错误:ErrorID=" + pRspInfo.ErrorID + ",ErrorMsg=" + pRspInfo.ErrorMsg); //HandleErrorInternal(pRspInfo.ErrorMsg, pRspInfo.ErrorID); } return(flag); }
void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); if (bIsLast && !IsErrorRspInfo(pRspInfo)) { ///获取当前交易日 Console.WriteLine("--->>> 获取当前交易日 = " + api.GetTradingDay()); // 请求订阅行情 SubscribeMarketData(); } }
private void TraderAdapter_OnRspQryInstrument(ThostFtdcInstrumentField pInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { try { if (MyUtils.IsWrongRspInfo(pRspInfo)) { MyUtils.ReportError(pRspInfo, "查询合约错误"); return; } if (pInstrument != null) { if (!pInstrument.InstrumentID.Contains("efp") && !pInstrument.InstrumentID.Contains("eof")) { if (pInstrument.InstrumentID.Contains("&")) { //套利合约 MyUtils.ComboInstrumentInfo[pInstrument.InstrumentID] = pInstrument; } else { //标准 MyUtils.StandardInstrumentInfo[pInstrument.InstrumentID] = pInstrument; } MyUtils.CategoryToExchangeId[MyUtils.GetInstrumentCategory(pInstrument.InstrumentID)] = pInstrument.ExchangeID; var temp = string.Format( "查询合约回报: 创建日:{0},交割月:{1},交割年份:{2},结束交割日:{3},交易所代码:{4},合约在交易所的代码:{5},到期日:{6},合约生命周期状态:{7},合约代码:{8},合约名称:{9},当前是否交易:{10},多头保证金率:{11},限价单最大下单量:{12},市价单最大下单量:{13},限价单最小下单量:{14},市价单最小下单量:{15},上市日:{16},持仓日期类型:{17},持仓类型:{18},最小变动价位:{19},产品类型:{20},产品代码:{21},空头保证金率:{22},开始交割日:{23},合约数量乘数:{24}", pInstrument.CreateDate, pInstrument.DeliveryMonth, pInstrument.DeliveryYear, pInstrument.EndDelivDate, pInstrument.ExchangeID, pInstrument.ExchangeInstID, pInstrument.ExpireDate, pInstrument.InstLifePhase, pInstrument.InstrumentID, pInstrument.InstrumentName, pInstrument.IsTrading, pInstrument.LongMarginRatio, pInstrument.MaxLimitOrderVolume, pInstrument.MaxMarketOrderVolume, pInstrument.MinLimitOrderVolume, pInstrument.MinMarketOrderVolume, pInstrument.OpenDate, pInstrument.PositionDateType, pInstrument.PositionType, pInstrument.PriceTick, pInstrument.ProductClass, pInstrument.ProductID, pInstrument.ShortMarginRatio, pInstrument.StartDelivDate, pInstrument.VolumeMultiple); } } if (bIsLast) { Thread.Sleep(1000); ReqQryTradingAccount(); } } catch (Exception ex) { MessageBox.Show("查询合约出错:" + ex.Message); } }
public override void OnRspQryInstrument(ThostFtdcInstrumentField pInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { this.instruments.Add(new Instrument(pInstrument)); if (bIsLast) { string[] instrumentIDs = this.instruments.Select(p => p.InstrumentID).ToArray(); MdAdapter.Instance.Start(instrumentIDs); Instrument[] instruments = this.instruments.OrderBy(p => p.InstrumentID).ToArray(); InstrumentListViewModel.Instance.Instruments = instruments; InstrumentDAL.Save(instruments); } }
public static void ReportError(ThostFtdcRspInfoField pRspInfo, string title) { ErrorInfo errorInfo = new ErrorInfo { ErrorID = pRspInfo.ErrorID, ErrorMsg = pRspInfo.ErrorMsg, IsRead = false, HappenTime = DateTime.Now.ToString(CultureInfo.InvariantCulture) }; ErrorList.Add(errorInfo); }
void _market_OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo.ErrorID != 0) { this.OnLog(string.Format("行情登录失败: 代码: {0}, 消息: {1}", pRspInfo.ErrorID, pRspInfo.ErrorMsg)); } else { this.OnLog("行情登录成功"); } this._asyncWaiter.Set(); }
void _trade_OnRspQryOrder(ThostFtdcOrderField pOrder, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pOrder != null) { var exists = this._orders.FirstOrDefault(_ => _.OrderSysID == pOrder.OrderSysID); if (exists == null) { this._orders.Add(pOrder); } } if (bIsLast) { this.Account.PendingOrders = this._orders.Where(_ => (_.OrderSysID ?? "").Trim().Length > 0 && _.GetOrderStatus() == OrderStatus.Pending).Select(_ => _.ToOptionOrder()).ToList(); } }
private void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); if (bIsLast) { bool isLogin = !IsErrorRspInfo(pRspInfo); if (isLogin) { // 订阅 Subscribe(); } // 通知登录结果 if (HandleLoginDel != null) { HandleLoginDel(isLogin); } } }
private void OnRspQryInstrument(ThostFtdcInstrumentField pInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); // 保存返回的合约代码 instruments.Add(pInstrument.InstrumentID); if (bIsLast) { HandleStatusInternal("CTP合约代码已获取"); if (mdClient != null) { mdClient.Subscribe(instruments.ToArray()); } //请求查询资金账户 ReqQryTradingAccount(); } }
void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); if (bIsLast && !IsErrorRspInfo(pRspInfo)) { // 保存会话参数 FRONT_ID = pRspUserLogin.FrontID; SESSION_ID = pRspUserLogin.SessionID; int iNextOrderRef = 0; if (!string.IsNullOrEmpty(pRspUserLogin.MaxOrderRef)) { iNextOrderRef = Convert.ToInt32(pRspUserLogin.MaxOrderRef); } iNextOrderRef++; ORDER_REF = Convert.ToString(iNextOrderRef); ///获取当前交易日 Console.WriteLine("--->>> 获取当前交易日 = " + api.GetTradingDay()); ///投资者结算结果确认 ReqSettlementInfoConfirm(); } }
public void QuoteAdapter_OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { try { Utils.ReportError(pRspInfo, "行情登录回报错误"); if (bIsLast && Utils.IsCorrectRspInfo(pRspInfo)) { _isReady = true; var temp = string.Format( "行情登录回报:经纪公司代码:{0},郑商所时间:{1},大商所时间:{2},中金所时间:{3},前置编号:{4},登录成功时间:{5},最大报单引用:{6},会话编号:{7},上期所时间:{8},交易系统名称:{9},交易日:{10},用户代码:{11}", pRspUserLogin.BrokerID, pRspUserLogin.CZCETime, pRspUserLogin.DCETime, pRspUserLogin.FFEXTime, pRspUserLogin.FrontID, pRspUserLogin.LoginTime, pRspUserLogin.MaxOrderRef, pRspUserLogin.SessionID, pRspUserLogin.SHFETime, pRspUserLogin.SystemName, pRspUserLogin.TradingDay, pRspUserLogin.UserID); Utils.WriteLine(temp, true); _frontId = pRspUserLogin.FrontID; _sessionId = pRspUserLogin.SessionID; //行情重连的时候,重新订阅需要的行情 if (SubscribedQuotes.Count > 0) { SubscribeMarketData(SubscribedQuotes.ToArray()); } } else { Utils.WriteLine("行情登录失败", true); } } catch (Exception ex) { Utils.WriteException(ex); } }
void _trade_OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo.ErrorID != 0) { this.OnLog(string.Format("交易登录失败: 代码: {0}, 消息: {1}", pRspInfo.ErrorID, pRspInfo.ErrorMsg)); } else { this.OnLog("交易登录成功"); this._session.FrontID = pRspUserLogin.FrontID; this._session.SessionID = pRspUserLogin.SessionID; if (!string.IsNullOrEmpty(pRspUserLogin.MaxOrderRef)) { this._session.OrderRef = Convert.ToInt32(pRspUserLogin.MaxOrderRef); } var orderRef = this._session.NextOrderRef(); this.QueryOrders(); this.QueryAccount(); this.QueryPositions(); } this._asyncWaiter.Set(); }
/// <summary> /// 登入应答 /// </summary> /// <param name="pRspUserLogin"></param> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); if (bIsLast && !IsErrorRspInfo(pRspInfo)) { //获取当前交易日 Console.WriteLine("--->>> 获取当前交易日 = " + api.GetTradingDay()); // 请求订阅行情 SubscribeMarketData(); } }
/// <summary> /// 错误应答 /// </summary> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> void OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); IsErrorRspInfo(pRspInfo); }
public override void OnRspSubMarketData(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { }
public override void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { this.instruments.Clear(); this.ReqQryInstrument(new ThostFtdcQryInstrumentField(), 0); }
/// <summary> /// 处理所有的OnErrRtn****回调事件 /// </summary> protected void CbOnErrRtnFunc(IntPtr pObject, EnumOnErrRtnType type, IntPtr pParam, ThostFtdcRspInfoField pRspInfo) { if (OnErrRtnEvent != null) { OnErrRtnEvent(this, new OnErrRtnEventArgs(type, pParam, pRspInfo)); } }
private void _trade_OnRspAuthenticate(ThostFtdcRspAuthenticateField pRspAuthenticateField, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo.ErrorID != 0) { throw new Exception($"认证失败:{nameof(pRspInfo.ErrorID)} {pRspInfo.ErrorID}, {nameof(pRspInfo.ErrorMsg)} {pRspInfo.ErrorMsg}"); } this.Login(); }
public void QuoteAdapter_OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { _isReady = true; }
void OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); IsErrorRspInfo(pRspInfo); }
void OnRspOrderAction(ThostFtdcInputOrderActionField pInputOrderAction, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); IsErrorRspInfo(pRspInfo); }
public override void OnRspQryInvestorPositionDetail(ThostFtdcInvestorPositionDetailField pInvestorPositionDetail, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
public override void OnRspQryTradingAccount(ThostFtdcTradingAccountField pTradingAccount, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
public override void OnRspOrderInsert(ThostFtdcInputOrderField pInputOrder, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
public override void OnRspUnSubMarketData(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo.ErrorID != 0) { LogCenter.Error("取消订阅行情错误:" + pRspInfo.ErrorMsg); } }
bool IsErrorRspInfo(ThostFtdcRspInfoField pRspInfo) { // 如果ErrorID != 0, 说明收到了错误的响应 bool bResult = ((pRspInfo != null) && (pRspInfo.ErrorID != 0)); if (bResult) cMainForm.SetTDErrorRspInfo((object)pRspInfo); return bResult; }
private void QuoteAdapter_OnRspSubMarketData(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { }
private void OnRspSettlementInfoConfirm(ThostFtdcSettlementInfoConfirmField p, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); if (bIsLast) { HandleStatusInternal("CTP投资者结算结果已确认"); // 获取合约信息 ReqQryInstrument(); } }
void OnRspSubMarketData(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); }
public void OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (!IsErrorRspInfo(pRspInfo)) { } }
void _trade_OnRspQryTradingAccount(ThostFtdcTradingAccountField pTradingAccount, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pTradingAccount != null) { this.Account.Available = pTradingAccount.Available; this.Account.Total = pTradingAccount.Balance; } }
private void OnRspOrderAction(ThostFtdcInputOrderActionField pInputOrderAction, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); //IsErrorRspInfo(pRspInfo); if (HandleErrRtnOrderCancelDel != null) { var customOrder = new CustomOrder(); // 原始报单信息 customOrder.OrderNo = int.Parse(pInputOrderAction.OrderRef); customOrder.InstrumentID = pInputOrderAction.InstrumentID; customOrder.Price = pInputOrderAction.LimitPrice; // 更新委托回报信息 customOrder.tradeRef = pInputOrderAction.ExchangeID + "_" + pInputOrderAction.OrderSysID; HandleErrRtnOrderCancelDel(customOrder, pRspInfo.ErrorMsg); } }
private void QuoteAdapter_OnRspUserLogout(ThostFtdcUserLogoutField pUserLogout, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { try { Utils.ReportError(pRspInfo, "登出账号回报错误"); if (pUserLogout != null) { Utils.WriteLine("登出回报", true); Utils.OutputField(pUserLogout); } } catch (Exception ex) { Utils.WriteException(ex); } }
void OnRspQryInvestorPosition(ThostFtdcInvestorPositionField pInvestorPosition, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); //pInvestorPosition.Position; }
public override void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { this.SubscribeMarketData(this.instrumentIDs); }
public OnErrRtnEventArgs(EnumOnErrRtnType EventType, IntPtr pParam, ThostFtdcRspInfoField pRspInfo) { this.EventType = EventType; this.Param = pParam; this.RspInfo = pRspInfo; }
/// <summary> /// 错误应答信息 /// </summary> /// <param name="pRspInfo"></param> /// <returns></returns> bool IsErrorRspInfo(ThostFtdcRspInfoField pRspInfo) { // 如果ErrorID != 0, 说明收到了错误的响应 bool bResult = ((pRspInfo != null) && (pRspInfo.ErrorID != 0)); if (bResult) Console.WriteLine("--->>> ErrorID={0}, ErrorMsg={1}", pRspInfo.ErrorID, pRspInfo.ErrorMsg); return bResult; }
public override void OnRspQryTradingAccount(ThostFtdcTradingAccountField pTradingAccount, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo != null && pRspInfo.ErrorID != 0) { LogCenter.Error("请求查询资金账户错误:" + pRspInfo.ErrorMsg); return; } if (pTradingAccount == null) { LogCenter.Error("请求查询资金账户错误,返回值为空"); return; } var tradingAccount = new TradingAccount { BrokerID = pTradingAccount.BrokerID, AccountID = pTradingAccount.AccountID, PreMortgage = pTradingAccount.PreMortgage, PreCredit = pTradingAccount.PreCredit, PreDeposit = pTradingAccount.PreDeposit, PreBalance = pTradingAccount.PreBalance, PreMargin = pTradingAccount.PreMargin, InterestBase = pTradingAccount.InterestBase, Interest = pTradingAccount.Interest, Deposit = pTradingAccount.Deposit, Withdraw = pTradingAccount.Withdraw, FrozenMargin = pTradingAccount.FrozenMargin, FrozenCash = pTradingAccount.FrozenCash, FrozenCommission = pTradingAccount.FrozenCommission, CurrMargin = pTradingAccount.CurrMargin, CashIn = pTradingAccount.CashIn, Commission = pTradingAccount.Commission, CloseProfit = pTradingAccount.CloseProfit, PositionProfit = pTradingAccount.PositionProfit, Balance = pTradingAccount.Balance, Available = pTradingAccount.Available, WithdrawQuota = pTradingAccount.WithdrawQuota, Reserve = pTradingAccount.Reserve, TradingDay = pTradingAccount.TradingDay, SettlementID = pTradingAccount.SettlementID, Credit = pTradingAccount.Credit, Mortgage = pTradingAccount.Mortgage, ExchangeMargin = pTradingAccount.ExchangeMargin, DeliveryMargin = pTradingAccount.DeliveryMargin, ExchangeDeliveryMargin = pTradingAccount.ExchangeDeliveryMargin, ReserveBalance = pTradingAccount.ReserveBalance, CurrencyID = pTradingAccount.CurrencyID, PreFundMortgageIn = pTradingAccount.PreFundMortgageIn, PreFundMortgageOut = pTradingAccount.PreFundMortgageOut, FundMortgageIn = pTradingAccount.FundMortgageIn, FundMortgageOut = pTradingAccount.FundMortgageOut, FundMortgageAvailable = pTradingAccount.FundMortgageAvailable, MortgageableFund = pTradingAccount.MortgageableFund, SpecProductMargin = pTradingAccount.SpecProductMargin, SpecProductFrozenMargin = pTradingAccount.SpecProductFrozenMargin, SpecProductCommission = pTradingAccount.SpecProductCommission, SpecProductFrozenCommission = pTradingAccount.SpecProductFrozenCommission, SpecProductPositionProfit = pTradingAccount.SpecProductPositionProfit, SpecProductCloseProfit = pTradingAccount.SpecProductCloseProfit, SpecProductPositionProfitByAlg = pTradingAccount.SpecProductPositionProfitByAlg, SpecProductExchangeMargin = pTradingAccount.SpecProductExchangeMargin, }; TradingAccountViewModel.Instance.Update(tradingAccount); }
/// <summary> /// 取消订阅行情应答 /// </summary> /// <param name="pSpecificInstrument"></param> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> void OnRspUnSubMarketData(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); }
public override void OnRspQryInstrument(ThostFtdcInstrumentField pInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo != null && pRspInfo.ErrorID != 0) { LogCenter.Error("请求查询合约错误:" + pRspInfo.ErrorMsg); return; } if (pInstrument.ProductClass == EnumProductClassType.Futures) { this.instruments.Add(new Instrument(pInstrument)); } if (bIsLast) { LogCenter.Log("收到期货合约数量:" + this.instruments.Count); InstrumentCenter.Instance.SetInstruments(this.instruments.OrderBy(p => p.InstrumentID).ToArray()); } }
/// <summary> /// 登出应答 /// </summary> /// <param name="pUserLogout"></param> /// <param name="pRspInfo"></param> /// <param name="nRequestID"></param> /// <param name="bIsLast"></param> void OnRspUserLogout(ThostFtdcUserLogoutField pUserLogout, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { DebugPrintFunc(new StackTrace()); }
public override void OnRspQryInvestorPositionDetail(ThostFtdcInvestorPositionDetailField pInvestorPositionDetail, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo != null && pRspInfo.ErrorID != 0) { LogCenter.Error("查询投资者持仓明细错误:" + pRspInfo.ErrorMsg); return; } if (pInvestorPositionDetail == null) { return; } var detial = new InvestorPositionDetail { InstrumentID = pInvestorPositionDetail.InstrumentID, BrokerID = pInvestorPositionDetail.BrokerID, InvestorID = pInvestorPositionDetail.InvestorID, HedgeFlag = (HedgeFlag)pInvestorPositionDetail.HedgeFlag, Direction = (DirectionType)pInvestorPositionDetail.Direction, OpenDate = pInvestorPositionDetail.OpenDate, TradeID = pInvestorPositionDetail.TradeID, Volume = pInvestorPositionDetail.Volume, OpenPrice = pInvestorPositionDetail.OpenPrice, TradingDay = pInvestorPositionDetail.TradingDay, SettlementID = pInvestorPositionDetail.SettlementID, TradeType = (TradeType)pInvestorPositionDetail.TradeType, CombInstrumentID = pInvestorPositionDetail.CombInstrumentID, ExchangeID = pInvestorPositionDetail.ExchangeID, CloseProfitByDate = pInvestorPositionDetail.CloseProfitByDate, CloseProfitByTrade = pInvestorPositionDetail.CloseProfitByTrade, PositionProfitByDate = pInvestorPositionDetail.PositionProfitByDate, PositionProfitByTrade = pInvestorPositionDetail.PositionProfitByTrade, Margin = pInvestorPositionDetail.Margin, ExchMargin = pInvestorPositionDetail.ExchMargin, MarginRateByMoney = pInvestorPositionDetail.MarginRateByMoney, MarginRateByVolume = pInvestorPositionDetail.MarginRateByVolume, LastSettlementPrice = pInvestorPositionDetail.LastSettlementPrice, SettlementPrice = pInvestorPositionDetail.SettlementPrice, CloseVolume = pInvestorPositionDetail.CloseVolume, CloseAmount = pInvestorPositionDetail.CloseAmount, }; this.positionDetails.Add(detial); if (bIsLast) { PositionViewModel.Instance.Update(this.positionDetails); } }
private void QuoteAdapter_OnRspUserLogout(ThostFtdcUserLogoutField pUserLogout, ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { _isReady = false; }
///期货发起查询银行余额应答 public void OnRspQueryBankAccountMoneyByFuture(ThostFtdcReqQueryAccountField pReqQueryAccount, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (!IsErrorRspInfo(pRspInfo)) { } }
private void QuoteAdapter_OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestId, bool bIsLast) { }
public void OnRspSubMarketData(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (!IsErrorRspInfo(pRspInfo)) { } }
void OnRspUserLogout(ThostFtdcUserLogoutField pUserLogout, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); }
public override void OnRspOrderInsert(ThostFtdcInputOrderField pInputOrder, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { LogCenter.Error("报单录入请求响应:{0} {1}", pRspInfo.ErrorMsg, pRspInfo.ErrorID); }
void OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { __DEBUGPF__(); IsErrorRspInfo(pRspInfo); }
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); } }
public void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (!IsErrorRspInfo(pRspInfo)) { cMainForm.SetMDLoginState((object)"已连接"); } }
public override void OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
public void OnRspUserLogout(ThostFtdcUserLogoutField pUserLogout, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { }
public override void OnRspUserLogout(ThostFtdcUserLogoutField pUserLogout, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
/// <summary> /// 处理所有的OnRsp****回调事件 /// </summary> protected void CbOnRspFunc(IntPtr pObject, EnumOnRspType type, IntPtr pParam, ThostFtdcRspInfoField pRspInfo, int nRequestID, [MarshalAs(UnmanagedType.I1)] bool bIsLast) { if (OnRspEvent != null) { OnRspEvent(this, new OnRspEventArgs(type, pParam, pRspInfo, nRequestID, bIsLast)); } }
public override void OnRspUnSubForQuoteRsp(ThostFtdcSpecificInstrumentField pSpecificInstrument, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { throw new NotImplementedException(); }
public override void OnRspError(ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { LogCenter.Error("交易错误:{0} {1}", pRspInfo.ErrorMsg, pRspInfo.ErrorID); }
public override void OnRspUserLogin(ThostFtdcRspUserLoginField pRspUserLogin, ThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast) { if (pRspInfo.ErrorID != 0) { LogCenter.Error("行情登录失败:" + pRspInfo.ErrorMsg); return; } LogCenter.Log("行情登录成功"); AccountCenter.Instance.IsMDLogin = true; int i = this.SubscribeMarketData(subscribeSet.ToArray()); if (i != 0) { LogCenter.Error("订阅行情错误:" + CTPErrorHelper.GetError(i)); } }