Exemple #1
0
 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;
     }
 }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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;
            }
        }