public List <SecurityDayQuotationDomain> GetSSEDayQuotationFromWangYi(string securityCode, DateTime startDate, DateTime endDate) { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); HttpWebClient client = new HttpWebClient(); client.Encoding = System.Text.Encoding.GetEncoding("GB2312"); //http://quotes.money.163.com/service/chddata.html?code=0601857&start=20200101&end=20200224&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP client.URL = "http://quotes.money.163.com/service/chddata.html"; client.Data = string.Format("code=0{0}&start={1}&end={2}&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP" , securityCode, startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd")); string result = client.SendGetRequest(); result = result.Replace("'", ""); string[] arrSecurities = result.Split(new string[] { "\r\n" }, StringSplitOptions.None); string[] arrTemp; List <SecurityDayQuotationDomain> values = new List <SecurityDayQuotationDomain>(); SecurityDayQuotationDomain value; int count = arrSecurities.Length; for (int i = 1; i < arrSecurities.Length - 1; i++) { arrTemp = arrSecurities[i].Split(','); value = new SecurityDayQuotationDomain(); value.TxDate = Convert.ToDateTime(arrTemp[0]); value.SecurityCode = arrTemp[1]; value.SecurityAbbr = arrTemp[2]; value.ClosePrice = Convert.ToDouble(arrTemp[3]); value.HighPrice = Convert.ToDouble(arrTemp[4]); value.LowPrice = Convert.ToDouble(arrTemp[5]); value.OpenPrice = Convert.ToDouble(arrTemp[6]); value.LastClosePrice = Convert.ToDouble(arrTemp[7]); value.PriceChange = arrTemp[8] == "None" ? -10000 : Convert.ToDouble(arrTemp[8]); value.Change = arrTemp[9] == "None" ? -10000: Convert.ToDouble(arrTemp[9]); value.TurnOver = arrTemp[10] == "None" ? -10000: Convert.ToDouble(arrTemp[10]); value.VolumeTurnOver = Convert.ToDouble(arrTemp[11]); value.PriceTurnOver = Convert.ToDouble(arrTemp[12]); value.MarketValue = Math.Round(Convert.ToDouble(arrTemp[13]) / 100000000, 4); value.NegoValue = Math.Round(Convert.ToDouble(arrTemp[14]) / 100000000, 4); values.Add(value); } return(values); }
public override void InsertIntoDB(SecurityDayQuotationDomain dayQuotation) { StringBuilder sb = new StringBuilder(); sb.Append("INSERT INTO SecurityDayQuotation"); sb.Append("("); sb.Append("SecurityCode,TxDate,ClosePrice,HighPrice,LowPrice,OpenPrice,LastClosePrice,PriceChange,Change,TurnOver,VolumeTurnOver,PriceTurnOver,MarketValue,NegoValue"); sb.Append(")"); sb.Append("VALUES"); sb.Append("("); sb.Append("@SecurityCode,@TxDate,@ClosePrice,@HighPrice,@LowPrice,@OpenPrice,@LastClosePrice,@PriceChange,@Change,@TurnOver,@VolumeTurnOver,@PriceTurnOver,@MarketValue,@NegoValue"); sb.Append(")"); SqliteParameter prmSecurityCode = new SqliteParameter("@SecurityCode", DbType.String) { Value = dayQuotation.SecurityCode }; SqliteParameter prmTxDate = new SqliteParameter("@TxDate", DbType.DateTime) { Value = dayQuotation.TxDate }; SqliteParameter prmClosePrice = new SqliteParameter("@ClosePrice", dayQuotation.ClosePrice); SqliteParameter prmHighPrice = new SqliteParameter("@HighPrice", DbType.Single) { Value = dayQuotation.HighPrice }; SqliteParameter prmLowPrice = new SqliteParameter("@LowPrice", DbType.Single) { Value = dayQuotation.LowPrice }; SqliteParameter prmOpenPrice = new SqliteParameter("@OpenPrice", DbType.Single) { Value = dayQuotation.OpenPrice }; SqliteParameter prmLastClosePrice = new SqliteParameter("@LastClosePrice", DbType.Single) { Value = dayQuotation.LastClosePrice }; SqliteParameter prmPriceChange = new SqliteParameter("@PriceChange", DbType.Single) { Value = dayQuotation.PriceChange }; SqliteParameter prmChange = new SqliteParameter("@Change", DbType.Single) { Value = dayQuotation.Change }; SqliteParameter prmTurnOver = new SqliteParameter("@TurnOver", DbType.Single) { Value = dayQuotation.TurnOver }; SqliteParameter prmVolumeTurnOver = new SqliteParameter("@VolumeTurnOver", DbType.Single) { Value = dayQuotation.VolumeTurnOver }; SqliteParameter prmPriceTurnOver = new SqliteParameter("@PriceTurnOver", DbType.Single) { Value = dayQuotation.PriceTurnOver }; SqliteParameter prmMarketValue = new SqliteParameter("@MarketValue", DbType.Single) { Value = dayQuotation.MarketValue }; SqliteParameter prmNegoValue = new SqliteParameter("@NegoValue", DbType.Single) { Value = dayQuotation.NegoValue }; dbContext.ExecuteNoQuery(sb.ToString(), prmSecurityCode, prmTxDate, prmClosePrice, prmHighPrice, prmLowPrice, prmOpenPrice, prmLastClosePrice, prmPriceChange, prmChange, prmTurnOver, prmVolumeTurnOver, prmPriceTurnOver, prmMarketValue, prmNegoValue); }
public abstract void InsertIntoDB(SecurityDayQuotationDomain dayQuotation);