public int CompareTo(object obj) { try { //按交易日降序 AShareEODPrices p = (AShareEODPrices)obj; if (this.TradeDate > p.TradeDate) { return(-1); } else { return(1); } } catch (Exception ex) { throw ex; } }
public override List <AShareEODPrices> GetAShareEODPrices(DataTable dtDataSrc) { try { List <AShareEODPrices> list = new List <AShareEODPrices>(); if (dtDataSrc != null && dtDataSrc.Rows.Count > 0) { foreach (DataRow oRow in dtDataSrc.Rows) { AShareEODPrices d = new AShareEODPrices(); ExchangeType exchange = getExchangeType(oRow[C_Col_ExchMarket].ToString()); d.WindCode = base.getWindCode(oRow[C_Col_Code].ToString(), exchange); d.TradeDate = base.getDateTimeValueBy8Digits(oRow[C_Col_Trade_Date]); d.Volume = base.getDoubleValue(oRow[C_Col_Volume]); //股 d.Amount = base.getDoubleValue(oRow[C_Col_Amount]); //元 //if (d.Amount != null) // d.Amount = Math.Truncate(Math.Round(d.Amount.Value, 1)); //保留小数 d.PreClose = base.getDoubleValue(oRow[C_Col_PreClose]); if (d.Volume == 0) { //若停牌则所有值设为昨收盘 d.Status = TradingStatus.Suspend; d.Open = d.PreClose; d.High = d.PreClose; d.Low = d.PreClose; d.Close = d.PreClose; d.Average = d.PreClose; //px.AdjustedFactor = base.getDoubleValue(oRow[CaiHuiConsts.C_Col_AdjFactor]); //px.AdjustedPreClose = px.PreClose * px.AdjustedFactor; //px.AdjustedOpen = px.Open * px.AdjustedFactor; //px.AdjustedHigh = px.High * px.AdjustedFactor; //px.AdjustedLow = px.Low * px.AdjustedFactor; //px.AdjustedClose = px.Close * px.AdjustedFactor; //px.AdjustedAverage = (px.Average != null && px.AdjustedFactor != null) ? px.Average * px.AdjustedFactor : null; } else { d.Open = base.getDoubleValue(oRow[C_Col_Open]); d.High = base.getDoubleValue(oRow[C_Col_High]); d.Low = base.getDoubleValue(oRow[C_Col_Low]); d.Close = base.getDoubleValue(oRow[C_Col_Close]); d.Average = Math.Round(d.Amount.Value / d.Volume.Value, 4); //px.AdjustedFactor = base.getDoubleValue(oRow[CaiHuiConsts.C_Col_AdjFactor]); //px.AdjustedPreClose = px.PreClose * px.AdjustedFactor; //px.AdjustedOpen = px.Open * px.AdjustedFactor; //px.AdjustedHigh = px.High * px.AdjustedFactor; //px.AdjustedLow = px.Low * px.AdjustedFactor; //px.AdjustedClose = px.Close * px.AdjustedFactor; //px.AdjustedAverage = (px.Average != null && px.AdjustedFactor != null) ? px.Average * px.AdjustedFactor : null; } list.Add(d); } } return(list); } catch (Exception ex) { throw ex; } }
public override List <AShareEODPrices> GetAShareEODPrices(DataTable dtDataSrc) { try { List <AShareEODPrices> list = new List <AShareEODPrices>(); if (dtDataSrc != null && dtDataSrc.Rows.Count > 0) { foreach (DataRow oRow in dtDataSrc.Rows) { AShareEODPrices d = new AShareEODPrices(); d.WindCode = oRow[C_Col_WindCode].ToString(); d.TradeDate = base.getDateTimeValueBy8Digits(oRow[C_Col_Trade_Date]); d.Volume = base.getDoubleValue(oRow[C_Col_Volume]) * 100; //手 => 股 d.Amount = (base.getDoubleValue(oRow[C_Col_Amount]) * 1000); //千元 => 元 //if (d.Amount != null) // d.Amount = Math.Truncate(Math.Round(d.Amount.Value, 1)); //保留小数 if (d.Volume == 0) { d.Status = TradingStatus.Suspend; } else { if (oRow.Table.Columns.Contains(C_Col_TradeStatus)) { string status = oRow[C_Col_TradeStatus].ToString(); switch (status) { case "XR": d.Status = TradingStatus.ExRight; break; case "XD": d.Status = TradingStatus.ExDividend; break; case "DR": d.Status = TradingStatus.ExRightAndDividend; break; default: d.Status = TradingStatus.Trading; break; } } else { d.Status = TradingStatus.Trading; } } d.PreClose = base.getDoubleValue(oRow[C_Col_PreClose]); d.Open = base.getDoubleValue(oRow[C_Col_Open]); d.High = base.getDoubleValue(oRow[C_Col_High]); d.Low = base.getDoubleValue(oRow[C_Col_Low]); d.Close = base.getDoubleValue(oRow[C_Col_Close]); if (oRow.Table.Columns.Contains(C_Col_AvgPrice)) { d.Average = base.getDoubleValue(oRow[C_Col_AvgPrice]); } //px.AdjustedFactor = base.getDoubleValue(oRow[WindConsts.C_Col_AdjFactor]); //px.AdjustedPreClose = base.getDoubleValue(oRow[WindConsts.C_Col_AdjPreClose]); //px.AdjustedOpen = base.getDoubleValue(oRow[WindConsts.C_Col_AdjOpen]); //px.AdjustedHigh = base.getDoubleValue(oRow[WindConsts.C_Col_AdjHigh]); //px.AdjustedLow = base.getDoubleValue(oRow[WindConsts.C_Col_AdjLow]); //px.AdjustedClose = base.getDoubleValue(oRow[WindConsts.C_Col_AdjClose]); //px.AdjustedAverage = (px.Average != null && px.AdjustedFactor != null) ? px.Average * px.AdjustedFactor : null; d.PctChange = base.getDoubleValue(oRow[C_Col_PctChange]) / 100; //% list.Add(d); } } return(list); } catch (Exception ex) { throw ex; } }