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);
        }