private ConvertibleBondDailyInfo getBondDailyInfo(ConvertibleBondInfo info, DateTime date) { ConvertibleBondDailyInfo data = new ConvertibleBondDailyInfo(); var tempDataTable = windReader.GetDailyDataTable(info.code, "clause_conversion2_swapshareprice,underlyingcode,clause_conversion_2_swapsharestartdate,clause_conversion_2_swapshareenddate", info.startDate, date); List <ConvertibleBondDailyInfo> bondDaily = new List <ConvertibleBondDailyInfo>(); foreach (DataRow dt in tempDataTable.Rows) { ConvertibleBondDailyInfo bondDailyInfoNow = new ConvertibleBondDailyInfo(); bondDailyInfoNow.code = info.code; bondDailyInfoNow.name = info.name; bondDailyInfoNow.startDate = info.startDate; bondDailyInfoNow.endDate = info.endDate; bondDailyInfoNow.stockCode = info.stockCode; bondDailyInfoNow.conversionPrice = Convert.ToDouble(dt["clause_conversion2_swapshareprice"]); //bondDailyInfoNow.forceConvertDate = Convert.ToDateTime(dt["clause_conversion_2_forceconvertdate"]); bondDailyInfoNow.conversionStartDate = Convert.ToDateTime(dt["clause_conversion_2_swapsharestartdate"]); bondDailyInfoNow.conversionEndDate = Convert.ToDateTime(dt["clause_conversion_2_swapshareenddate"]); bondDailyInfoNow.date = Convert.ToDateTime(dt["datetime"]); bondDaily.Add(bondDailyInfoNow); } for (int i = bondDaily.Count() - 1; i >= 0; i--) { if (bondDaily[i].conversionPrice != 0) { data = bondDaily[i]; break; } } return(data); }
private List <ConvertibleBondInfo> GetConvertibleBondInfos(DateTime date) { List <ConvertibleBondInfo> info = new List <ConvertibleBondInfo>(); List <string> codeList = new List <string>(); string dateStr = date.ToString("yyyy-MM-dd"); string optionStr = string.Format("date={0};sectorid=a101020600000000", dateStr); var dt = windReader.GetDataSetTable("sectorconstituent", optionStr); foreach (DataRow dr in dt.Rows) { string code = Convert.ToString(dr["wind_code"]); string name = Convert.ToString(dr["sec_name"]); string[] strList = code.Split('.'); string market = strList[1]; if (market == "SH" || market == "SZ") { if (codeList.Contains(code) == false) { try { codeList.Add(code); var dt2 = windReader.GetDailyDataTable(code, "underlyingcode,ipo_date,delist_date", date, date); foreach (DataRow dr2 in dt2.Rows) { string stockCode = Convert.ToString(dr2["UNDERLYINGCODE"]); string stockMarket = stockCode.Split('.')[1]; if (stockMarket == "SH" || stockMarket == "SZ") { DateTime startTime = Convert.ToDateTime(dr2["IPO_DATE"]); DateTime endTime = Convert.ToDateTime(dr2["DELIST_DATE"]); ConvertibleBondInfo infoNow = new ConvertibleBondInfo(); infoNow.code = code; infoNow.endDate = endTime; infoNow.startDate = startTime; infoNow.stockCode = stockCode; infoNow.name = name; if (infoNow.endDate >= date) { info.Add(infoNow); } } } } catch (Exception) { Console.WriteLine("bond:{0},no information!", code); } } } } return(info); }