/// <summary> /// 获取主力合约列表。 /// </summary> /// <returns></returns> private List <MainContractEntity> GetMainContractList() { string cmdText = string.Format(@"select varieties, exchange, settlement_date, main_contract from {0}.main_contract where settlement_date >= '{1:yyyy-MM-dd}' and settlement_date <= '{2:yyyy-MM-dd}' order by settlement_date, exchange, varieties;", m_alphaDBName, m_beginDate, m_endDate); DataTable table = new DataTable(); using (MySqlConnection connection = new MySqlConnection(m_dbConStr)) { MySqlDataAdapter adapter = new MySqlDataAdapter(cmdText, connection); adapter.Fill(table); } List <MainContractEntity> mainContractList = new List <MainContractEntity>(); foreach (DataRow row in table.Rows) { USeMarket exchange = (USeMarket)Enum.Parse(typeof(USeMarket), row["exchange"].ToString()); MainContractEntity mainContract = new MainContractEntity() { Varieties = row["varieties"].ToString(), Exchange = exchange, SettlementDate = Convert.ToDateTime(row["settlement_date"]), BaseContract = row["main_contract"].ToString(), MainContractCode = USeTraderProtocol.GetMainContractCode(row["varieties"].ToString(), exchange).InstrumentCode }; mainContractList.Add(mainContract); } return(mainContractList); }
/// <summary> /// 获取主力合约K线Delete语句。 /// </summary> /// <param name="mainContract"></param> /// <returns></returns> private string GetMainContractMin1KLineDeleteSql(MainContractEntity mainContract) { string cmdText = string.Format(@"delete from {0}.min1_kline_{1} where contract = '{2}' and DATE_FORMAT(date_time, '%Y-%m-%d') = '{3:yyyy-MM-dd}';", m_alphaDBName, mainContract.Exchange.ToString().ToLower(), mainContract.MainContractCode, mainContract.SettlementDate); return(cmdText); }
/// <summary> /// 获取主力合约K线Insert语句。 /// </summary> /// <param name="mainContract"></param> /// <returns></returns> private string GetMainContractMin1KLineInsertSql(MainContractEntity mainContract) { string cmdText = string.Format(@"insert into {0}.min1_kline_{1}(contract, exchange, date_time, price_open, price_high, price_low, price_close, volumn, turnover, openinterest) select '{2}',exchange,date_time,price_open,price_high,price_low,price_close,volumn,turnover,openinterest from {0}.min1_kline_{1} where contract = '{3}' and DATE_FORMAT(date_time, '%Y-%m-%d') = '{4:yyyy-MM-dd}';", m_alphaDBName, mainContract.Exchange.ToString().ToLower(), mainContract.MainContractCode, mainContract.BaseContract, mainContract.SettlementDate); return(cmdText); }