/// <summary> /// 市场状态查询应答 /// </summary> /// <param name="rsp"></param> /// <param name="islast"></param> void OnQueryExchangeState(/*TEsExchangeStateRspField*/ IntPtr rsp, bool islast) { TEsExchangeStateRspField data = PInvokeUtility.GetObjectFromIntPtr <TEsExchangeStateRspField>(rsp); this.trader.exchangeStateList.Add(data); Trace.WriteLine(string.Format("【市场状态查询应答】{0} : {1} {2}", data.Exchange, data.ExchangeDateTime, data.ExchangeState)); if (islast == true) { EventProcessor.BeginInvoke(this.trader.QueryExchangeStateResponse, this.trader, new EsunnyEventArgs <List <TEsExchangeStateRspField> >(this.trader.exchangeStateList)); } }
/// <summary> /// 组合合约查询应答 /// </summary> /// <param name="rsp"></param> /// <param name="islast"></param> void OnQueryCmbContract(/*TEsCmbContractRspField*/ IntPtr rsp, bool islast) { if (rsp != IntPtr.Zero) { TEsCmbContractRspField data = PInvokeUtility.GetObjectFromIntPtr <TEsCmbContractRspField>(rsp); this.trader.combinContractList.Add(data); Trace.WriteLine(string.Format("【组合合约查询应答】{0} : {1} {2}", data.Exchange, data.CmbType, data.Contract1 + "/" + data.Contract2)); } if (islast == true) { EventProcessor.BeginInvoke(this.trader.QueryCmbContractResponse, this.trader, new EsunnyEventArgs <List <TEsCmbContractRspField> >(this.trader.combinContractList)); } }
/// <summary> /// 持仓查询应答 /// </summary> /// <param name="rsp"></param> /// <param name="islast"></param> void OnQueryHold(/*TEsHoldRspField*/ IntPtr rsp, bool islast) { if (rsp != IntPtr.Zero) { TEsHoldRspField data = PInvokeUtility.GetObjectFromIntPtr <TEsHoldRspField>(rsp); this.trader.holdList.Add(data); Trace.WriteLine(string.Format("【持仓查询应答】{0} : {1} {2}", data.Contract1, data.HoldPrice, data.HoldVol)); } if (islast == true) { EventProcessor.BeginInvoke(this.trader.QueryHoldResponse, this.trader, new EsunnyEventArgs <List <TEsHoldRspField> >(this.trader.holdList)); } }
/// <summary> /// 商品查询应答 /// </summary> /// <param name="rsp"></param> /// <param name="islast"></param> void OnQueryCommodity(/*TEsCommodityRspField*/ IntPtr rsp, bool islast) { if (rsp != IntPtr.Zero) { TEsCommodityRspField data = PInvokeUtility.GetObjectFromIntPtr <TEsCommodityRspField>(rsp); this.trader.commodityList.Add(data); Trace.WriteLine(string.Format("【商品查询应答】{0} : {1} {2}", data.Exchange, data.Name, data.Commodity)); } if (islast == true) { EventProcessor.BeginInvoke(this.trader.QueryCommodityResponse, this.trader, new EsunnyEventArgs <List <TEsCommodityRspField> >(this.trader.commodityList)); } }
/// <summary> /// 委托查询应答 /// </summary> /// <param name="rsp"></param> /// <param name="islast"></param> void OnQueryOrder(/*TEsOrderInsertRspField*/ IntPtr rsp, bool islast) { if (rsp != IntPtr.Zero) { TEsOrderInsertRspField data = PInvokeUtility.GetObjectFromIntPtr <TEsOrderInsertRspField>(rsp); this.trader.orderList.Add(data); Trace.WriteLine(string.Format("【委托查询应答】{0} : {1} {2}", data.ReqData.Contract1, data.OrderNo, data.OrderState)); } if (islast == true) { EventProcessor.BeginInvoke(this.trader.QueryOrderResponse, this.trader, new EsunnyEventArgs <List <TEsOrderInsertRspField> >(this.trader.orderList)); } }
void OnLogin(TEsRspField rsp) { if (rsp.ErrorCode == 0) { this.trader.isLogin = true; StringBuilder s = new StringBuilder(); EsunnyWrapper.InvokeAPI(this.trader._instance, EsunnyWrapperAction.GetTradingDay, s); Trace.WriteLine("交易日:" + s); } else { PInvokeUtility.GetUnicodeString(rsp.ErrorInfo); this.trader.isLogin = false; } EventProcessor.BeginInvoke(this.trader.LoginResponse, this.trader, new EsunnyEventArgs <TEsRspField>(rsp)); }