public void ReqQryQuotation(ref CWtpSymbolField pInstrumentID) { lock (locker) { MdApi.ReqQryQuotation(ref pInstrumentID); } }
private void OnRspQrySymbol_3(IntPtr pSymbol, int nCount) { CWtpSymbolField[] Symbols = new CWtpSymbolField[nCount]; for (int i = 0; i < nCount; ++i) { Symbols[i] = (CWtpSymbolField)Marshal.PtrToStructure( (IntPtr)pSymbol.ToInt32() + i * Marshal.SizeOf(typeof(CWtpSymbolField)), typeof(CWtpSymbolField)); } OnRspQrySymbol_1(this, ref Symbols, nCount); }
static void Main(string[] args) { //Thread.Sleep(10000); WtpMdApiWrapper md = new WtpMdApiWrapper(); md.OnFrontConnected += new OnFrontConnectedHandler(OnConnect); md.OnFrontDisconnected += new OnFrontDisconnectedHandler(OnDisconnect); md.OnRspUserLogin += new OnRspUserLoginHandler(OnRspUserLogin); md.OnRspUserLogout += new OnRspUserLogoutHandler(OnRspUserLogout); md.OnRspError += new OnRspErrorHandler(OnRspError); md.OnRspQrySymbol += new OnRspQrySymbolHandler(OnRspQrySymbol); md.OnRspQryQuotation += new OnRspQryQuotationHandler(OnRspQryQuotation); md.OnRtnQuotation += new OnRtnQuotationHandler(OnRtnQuotation); md.RegisterFront("tcp://121.42.157.92:8863"); Console.WriteLine(" 1.登录\n 2.登出\n 3.查合约列表\n 4.询价\n 5.订阅\n 6.取消订阅\n or.退出系统\n 请输入你的操作:"); int chose; while ((chose = Convert.ToInt32(Console.ReadLine())) != 0) { //getchar(); switch (chose) { case 1: { CWtpReqUserLoginField ReqUserLoginField = new CWtpReqUserLoginField(); ReqUserLoginField.m_UserId = "kiiik"; ReqUserLoginField.m_Password = "******"; md.ReqUserLogin(ref ReqUserLoginField); } break; case 2: { CWtpUserLogoutField ReqUserLogoutField = new CWtpUserLogoutField(); ReqUserLogoutField.m_UserID = "kiiik"; md.ReqUserLogout(ref ReqUserLogoutField); } break; case 3: { md.ReqQrySymbol(); } break; case 4: { CWtpSymbolField sym = new CWtpSymbolField(); sym.m_ExchangeId = "SHFE"; sym.m_ProductId = "CU"; sym.m_ContractDays = 30; md.ReqQryQuotation(ref sym); } break; case 5: { CWtpSymbolField[] syms = new CWtpSymbolField[7]; syms[0].m_ExchangeId = "SHFE"; syms[0].m_ProductId = "CU"; syms[0].m_ContractDays = 0; syms[1].m_ExchangeId = "SHFE"; syms[1].m_ProductId = "CU"; syms[1].m_ContractDays = 30; syms[2].m_ExchangeId = "SHFE"; syms[2].m_ProductId = "CU"; syms[2].m_ContractDays = 60; syms[3].m_ExchangeId = "SHFE"; syms[3].m_ProductId = "CU"; syms[3].m_ContractDays = 90; syms[4].m_ExchangeId = "SHFE"; syms[4].m_ProductId = "CU"; syms[4].m_ContractDays = 120; syms[5].m_ExchangeId = "SHFE"; syms[5].m_ProductId = "CU"; syms[5].m_ContractDays = 150; syms[6].m_ExchangeId = "SHFE"; syms[6].m_ProductId = "CU"; syms[6].m_ContractDays = 180; md.ReqSubQuotation(ref syms); } break; case 6: { CWtpSymbolField[] syms = new CWtpSymbolField[7]; syms[0].m_ExchangeId = "SHFE"; syms[0].m_ProductId = "CU"; syms[0].m_ContractDays = 0; syms[1].m_ExchangeId = "SHFE"; syms[1].m_ProductId = "CU"; syms[1].m_ContractDays = 30; syms[2].m_ExchangeId = "SHFE"; syms[2].m_ProductId = "CU"; syms[2].m_ContractDays = 60; syms[3].m_ExchangeId = "SHFE"; syms[3].m_ProductId = "CU"; syms[3].m_ContractDays = 90; syms[4].m_ExchangeId = "SHFE"; syms[4].m_ProductId = "CU"; syms[4].m_ContractDays = 120; syms[5].m_ExchangeId = "SHFE"; syms[5].m_ProductId = "CU"; syms[5].m_ContractDays = 150; syms[6].m_ExchangeId = "SHFE"; syms[6].m_ProductId = "CU"; syms[6].m_ContractDays = 180; md.ReqUnSubQuotation(ref syms); } break; default: { md.Dispose(); } return; } Thread.Sleep(1000); Console.WriteLine(" 1.登录\n 2.登出\n 3.查合约列表\n 4.询价\n 5.订阅\n 6.取消订阅\n or.退出系统\n 请输入你的操作:"); } while (false) { ; } while (true) { ; } }