Esempio n. 1
0
        public override void LoadIndexPrice(SeriesIndexPrice pxs)
        {
            try
            {
                //读数据
                string sql = C_SQL_GetIndexPrice;
                sql += " AND " + base.BuildSQLClauseIn(pxs.Code, "SYMBOL");
                sql += " AND Tdate >= '" + pxs.TimeSeriesStartExtended.ToString("yyyyMMdd") + "' AND Tdate <= '" + pxs.TimeSeriesEnd.ToString("yyyyMMdd") + "'";
                sql += " ORDER BY Symbol, Tdate Desc";
                DataSet ds = base.DBInstance.ExecuteSQL(sql);

                //更新数据
                this.updateIndexPrice(ds, pxs);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        private void updateIndexPrice(DataSet ds, SeriesIndexPrice pxs)
        {
            DataRow[] rows = ds.Tables[0].Select("SYMBOL='" + pxs.Code + "'");
            if (rows.Length > 0)
            {
                //基本信息
                pxs.DataSource = this.DataSource;
                pxs.OriginalTimeSeries.Clear();

                foreach (DataRow row in rows)
                {
                    ExchangeTradingPrice px = new ExchangeTradingPrice();
                    px.TradeDate         = DataManager.ConvertToDate(row[C_ColName_TradeDate]);
                    px.PreClose          = DataManager.ConvertToDouble(row[C_ColName_PreClose]);
                    px.Close             = DataManager.ConvertToDouble(row[C_ColName_Close]);
                    px.High              = DataManager.ConvertToDouble(row[C_ColName_High]);
                    px.Low               = DataManager.ConvertToDouble(row[C_ColName_Low]);
                    px.Open              = DataManager.ConvertToDouble(row[C_ColName_Open]);
                    px.Volume            = DataManager.ConvertToDouble(row[C_ColName_Volume]);
                    px.Amount            = DataManager.ConvertToDouble(row[C_ColName_Amount]);
                    px.AdjustCoefficient = 1;

                    //判断停牌
                    if (px.Close == 0)
                    {
                        px.IsTrading = false;
                        px.Close     = px.PreClose;
                    }

                    pxs.OriginalTimeSeries.Add(px);
                }

                //复权并计算涨跌幅
                pxs.Adjust();
            }
            else
            {
                MessageManager.GetInstance().AddMessage(MessageType.Warning, Message.C_Msg_ID4, pxs.Code);
            }
        }
Esempio n. 3
0
 public abstract void LoadIndexPrice(SeriesIndexPrice pxs);