public DeepInstrumentView(string sTablename,string stip, SQLiteBase.SQLiteBase MemDB) { InitializeComponent(); sqldb = MemDB; table_name = sTablename; vSQL = "SELECT INSTRUMENTID as 合约名,TRADINGDAY as 交易日,UPDATETIME as 时间, UPDATEMILLISEC 毫秒, lastprice 最新价 ,VOLUME ,TURNOVER, OPENINTEREST, BIDPRICE1 as 叫买价, BIDVOLUME1 as 叫买量,ASKPRICE1 as 叫卖价, ASKVOLUME1 as 叫卖量 from " + sTablename + " where INSTRUMENTID='" + stip + "';"; sqldb.setSQL(vSQL); sqldb.OpenSQL(); dt = sqldb.dt_Result.Copy(); this.Text = stip + " - " + this.Text; }
public DeepInstrumentView(string sTablename, string stip, SQLiteBase.SQLiteBase MemDB) { InitializeComponent(); sqldb = MemDB; table_name = sTablename; vSQL = "SELECT INSTRUMENTID as 合约名,TRADINGDAY as 交易日,UPDATETIME as 时间, UPDATEMILLISEC 毫秒, lastprice 最新价 ,VOLUME ,TURNOVER, OPENINTEREST, BIDPRICE1 as 叫买价, BIDVOLUME1 as 叫买量,ASKPRICE1 as 叫卖价, ASKVOLUME1 as 叫卖量 from " + sTablename + " where INSTRUMENTID='" + stip + "';"; sqldb.setSQL(vSQL); sqldb.OpenSQL(); dt = sqldb.dt_Result.Copy(); this.Text = stip + " - " + this.Text; }
/// <summary> /// 注销按钮点击 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Loginout_Click(object sender, EventArgs e) { ThostFtdcUserLogoutField pUserLogout = new ThostFtdcUserLogoutField(); pUserLogout.BrokerID = sBrokerID; pUserLogout.UserID = sUserID; if (this.TSS_MDLoginState.Text == "已连接") { CtpMDApi.ReqUserLogout(pUserLogout, nRequestID++); } if (this.TSS_TDLoginState.Text == "已连接") { CtpMDApi.ReqUserLogout(pUserLogout, nRequestID++); } CtpMDApi.Release(); CtpMDApi = null; CtpTDApi.Release(); CtpTDApi = null; this.TSS_MDConnState.Text = "已断开"; this.TSS_TDConnState.Text = "已断开"; this.TSS_MDLoginState.Text = "已断开"; this.TSS_TDLoginState.Text = "已断开"; Button_Loginout.Enabled = false; MemDB.CloseDB(); MemDB = null; }
/// <summary> /// 修改按钮点击 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Edit_Click(object sender, EventArgs e) { if (this.TextBox_TDADDRESS.Enabled) { string sDbType = string.Empty; SQLiteBase.SQLiteBase SQLiteRun = new SQLiteBase.SQLiteBase("ConfigDB.db"); if (this.radioButton_MemDB.Checked == true) { sDbType = "0"; } else { sDbType = "1"; } string sSql = "REPLACE INTO CTP_LOGIN_INFO SELECT 1,'" + this.TextBox_TDADDRESS.Text + "','" + this.TextBox_MDADDRESS.Text + "','" + this.TextBox_BrokerID.Text + "','" + this.TextBox_UserID.Text + "','" + this.TextBox_PassWord.Text + "','" + sDbType + "'"; //先尝试打开一下 SQLiteRun.OpenDB(); SQLiteRun.setSQL(sSql); SQLiteRun.Execute(); SQLiteRun.Commit(); SQLiteRun.CloseDB(); this.TextBox_TDADDRESS.Enabled = false; this.TextBox_MDADDRESS.Enabled = false; this.TextBox_BrokerID.Enabled = false; this.TextBox_UserID.Enabled = false; this.TextBox_PassWord.Enabled = false; this.Button_Login.Enabled = true; this.Button_Connect.Enabled = true; } else { this.TextBox_TDADDRESS.Enabled = true; this.TextBox_MDADDRESS.Enabled = true; this.TextBox_BrokerID.Enabled = true; this.TextBox_UserID.Enabled = true; this.TextBox_PassWord.Enabled = true; this.Button_Login.Enabled = false; this.Button_Connect.Enabled = false; } }
/// <summary> /// 点击连接按钮连接前置机 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Connect_Click(object sender, EventArgs e) { sTDAddress = this.TextBox_TDADDRESS.Text; sMDAddress = this.TextBox_MDADDRESS.Text; sBrokerID = this.TextBox_BrokerID.Text; sUserID = this.TextBox_UserID.Text; sPassword = this.TextBox_PassWord.Text; sTableName = string.Empty; #region 数据库初始化 //内存数据库打开 if (this.radioButton_MemDB.Checked && MemDB == null) { MemDB = new SQLiteBase.SQLiteBase(); } else if (MemDB == null) { MemDB = new SQLiteBase.SQLiteBase("InstrmentDataBase.db"); } MemDB.OpenDB(); #endregion #region 交易初始化 CtpMDApi = new CTPMDAdapter("MDAPI", false); CtpMDApi.OnFrontConnected += new FrontConnected(sCtpMdApi.OnFrontConnected); CtpMDApi.OnFrontDisconnected += new FrontDisconnected(sCtpMdApi.OnFrontDisconnected); CtpMDApi.OnHeartBeatWarning += new HeartBeatWarning(sCtpMdApi.OnHeartBeatWarning); CtpMDApi.OnRspError += new RspError(sCtpMdApi.OnRspError); CtpMDApi.OnRspSubMarketData += new RspSubMarketData(sCtpMdApi.OnRspSubMarketData); CtpMDApi.OnRspUnSubMarketData += new RspUnSubMarketData(sCtpMdApi.OnRspUnSubMarketData); CtpMDApi.OnRspUserLogin += new RspUserLogin(sCtpMdApi.OnRspUserLogin); CtpMDApi.OnRspUserLogout += new RspUserLogout(sCtpMdApi.OnRspUserLogout); CtpMDApi.OnRtnDepthMarketData += new RtnDepthMarketData(sCtpMdApi.OnRtnDepthMarketData); //注册前置机 CtpMDApi.RegisterFront(sMDAddress); //初始化 CtpMDApi.Init(); #endregion 交易初始化 #region 行情初始化 CtpTDApi = new CTPTDAdapter("TDAPI"); CtpTDApi.OnFrontConnected += new FrontConnected(sCtpTdApi.OnFrontConnected); CtpTDApi.OnFrontDisconnected += new FrontDisconnected(sCtpTdApi.OnFrontDisconnected); CtpTDApi.OnHeartBeatWarning += new HeartBeatWarning(sCtpTdApi.OnHeartBeatWarning); CtpTDApi.OnRspError += new RspError(sCtpTdApi.OnRspError); CtpTDApi.OnRspUserLogin += new RspUserLogin(sCtpTdApi.OnRspUserLogin); CtpTDApi.OnRspOrderAction += new RspOrderAction(sCtpTdApi.OnRspOrderAction); CtpTDApi.OnRspOrderInsert += new RspOrderInsert(sCtpTdApi.OnRspOrderInsert); CtpTDApi.OnRspQryInstrument += new RspQryInstrument(sCtpTdApi.OnRspQryInstrument); CtpTDApi.OnRspQryInvestorPosition += new RspQryInvestorPosition(sCtpTdApi.OnRspQryInvestorPosition); CtpTDApi.OnRspQryInvestorPositionDetail += new RspQryInvestorPositionDetail(sCtpTdApi.OnRspQryInvestorPositionDetail); CtpTDApi.OnRspQryTradingAccount += new RspQryTradingAccount(sCtpTdApi.OnRspQryTradingAccount); CtpTDApi.OnRspSettlementInfoConfirm += new RspSettlementInfoConfirm(sCtpTdApi.OnRspSettlementInfoConfirm); CtpTDApi.OnRtnOrder += new RtnOrder(sCtpTdApi.OnRtnOrder); CtpTDApi.OnRtnTrade += new RtnTrade(sCtpTdApi.OnRtnTrade); //注册流 switch (comboBox_ResumeType.Text) { case "断线恢复": CtpTDApi.SubscribePublicTopic(EnumTeResumeType.THOST_TERT_RESUME); // 注册公有流 CtpTDApi.SubscribePrivateTopic(EnumTeResumeType.THOST_TERT_RESUME); // 注册私有流 break; case "当天全部": CtpTDApi.SubscribePublicTopic(EnumTeResumeType.THOST_TERT_RESTART); // 注册公有流 CtpTDApi.SubscribePrivateTopic(EnumTeResumeType.THOST_TERT_RESTART); // 注册私有流 break; default: CtpTDApi.SubscribePublicTopic(EnumTeResumeType.THOST_TERT_QUICK); // 注册公有流 CtpTDApi.SubscribePrivateTopic(EnumTeResumeType.THOST_TERT_QUICK); // 注册私有流 break; } //注册前置机 CtpTDApi.RegisterFront(sTDAddress); //初始化 CtpTDApi.Init(); #endregion 行情初始化 }
/// <summary> /// SQLite数据库配置的读取和初始化 /// </summary> private void InitConfig() { SQLiteBase.SQLiteBase SQLiteCtl = new SQLiteBase.SQLiteBase("ConfigDB.db"); string sSql = string.Empty; SQLiteCtl.OpenDB(); if (!SQLiteCtl.existTable("CTP_LOGIN_INFO")) { sSql = "CREATE TABLE CTP_LOGIN_INFO " + "(ID INT,TDADDR VARCHAR(200),MDADDR VARCHAR(200),BROKER_ID VARCHAR(20),USER_ID VARCHAR(20),PASSWD VARCHAR(20),DB_TYPE INT,PRIMARY KEY (ID))"; SQLiteCtl.setSQL(sSql); SQLiteCtl.Execute(); sSql = "INSERT INTO CTP_LOGIN_INFO SELECT 1, 'tcp://ctpmn1-front1.citicsf.com:51205','tcp://ctpmn1-front1.citicsf.com:51213','1017','00000054','123456','0'"; SQLiteCtl.setSQL(sSql); SQLiteCtl.Execute(); SQLiteCtl.Commit(); MessageBox.Show("CTP_LOGIN_INFO数据库初始化成功!"); } sSql = "SELECT * FROM CTP_LOGIN_INFO"; SQLiteCtl.setSQL(sSql); SQLiteCtl.OpenSQL(); if (SQLiteCtl.Next()) { TextBox_TDADDRESS.Text = SQLiteCtl.filed["TDADDR"].ToString(); TextBox_MDADDRESS.Text = SQLiteCtl.filed["MDADDR"].ToString(); TextBox_BrokerID.Text = SQLiteCtl.filed["BROKER_ID"].ToString(); TextBox_UserID.Text = SQLiteCtl.filed["USER_ID"].ToString(); TextBox_PassWord.Text = SQLiteCtl.filed["PASSWD"].ToString(); if (SQLiteCtl.filed["DB_TYPE"].ToString() == "0") { this.radioButton_MemDB.Checked = true; this.radioButton_FileDB.Checked = false; } else { this.radioButton_MemDB.Checked = false; this.radioButton_FileDB.Checked = true; } } SQLiteCtl.CloseDB(); }