Example #1
0
 public override void DoExport(IExportCallback callback)
 {
     string sql = string.Format("select * from {0}", this.TableName);
     DbDataReader reader = this.ExecuteReader(sql);
     base.Export2TradeTable(reader, callback, this);
     this.Close();
 }
Example #2
0
 public override void DoExport(IExportCallback callback)
 {
     string sql = string.Format("select * from {0} order by '{1}'", this.TableName, JsmxRow_SZ.C_MXZQDM);
     DbDataReader reader = this.ExecuteReader(sql);
     base.Export2TradeTable(reader, callback, this);
     this.Close();
 }
        public override void DoExport(IExportCallback callback)
        {
            DbDataReader reader = this.GetTradeInfos();
            if (reader == null)
                return;

            this.Export2TradeTable(reader, callback, this);
            //this.WriteColumns2File(reader, @"D:\TradeInfoColumns_O32.txt");
            this.Close();
        }
        public override void DoExport(IExportCallback callback)
        {
            string sql = string.Format("select * from {0} where {1}=@{1}", this.TableName, BondFuturesEODPriceRow.C_TRADE_DT);
            SqlParameter[] parameters = new SqlParameter[]{
                new SqlParameter(string.Format("@{0}", BondFuturesEODPriceRow.C_TRADE_DT), this.DateName)
            };

            DbDataReader reader = this.ExecuteReader(sql, parameters);
            this.Export2MarketTable(reader, callback, this);
            this.Close();
        }
Example #5
0
 public override abstract void DoExport(IExportCallback callback);
Example #6
0
        /// <summary>
        /// 将数据导出到 MarketTable中。
        /// </summary>
        public void Export2MarketTable(DbDataReader reader, IExportCallback callback, IExport2MarketTable marketService)
        {
            if (reader == null)
                return;
            MarketTable marketTable = new MarketTable();
            if (!marketTable.Open())
                return;

            while (reader.Read())
            {
                if (this.TheProject.HasStop)
                {
                    marketService.ImportState = EImportStatus.Interrupt;
                    break;
                }

                MarketRow row = marketService.GetMarketRow(reader);
                marketTable.Add(row);
                callback.CurrentIndex++;
                callback.ValidIndex++;
            }

            marketTable.Close();
        }
Example #7
0
        /// <summary>
        /// 将数据导出到成交表(TradeTable)中。
        /// </summary>
        public virtual void Export2TradeTable(DbDataReader reader, IExportCallback callback, IExport2TradeTable tradeService)
        {
            if (reader == null)
                return;
            TradeTable tradeTable = new TradeTable();
            if (!tradeTable.Open())
                return;

            while (reader.Read())
            {
                if (this.TheProject.HasStop)
                {
                    tradeService.ImportState = EImportStatus.Interrupt;
                    break;
                }

                TradeRow data = tradeService.GetTradeRow(reader);
                tradeTable.Add(data);
                callback.CurrentIndex++;
                callback.ValidIndex++;
            }

            tradeTable.Close();
        }
Example #8
0
        /// <summary>
        /// 将数据导出到委托表(OrderTable)中。
        /// </summary>
        public void Export2OrderTable(DbDataReader reader, IExportCallback callback, IExport2OrderTable orderService)
        {
            if (reader == null)
                return;
            OrderTable orderTable = new OrderTable();
            if (!orderTable.Open())
                return;

            while (reader.Read())
            {
                if (this.TheProject.HasStop)
                {
                    orderService.ImportState = EImportStatus.Interrupt;
                    break;
                }

                OrderRow data = orderService.GetOrderRow(reader);
                orderTable.Add(data);
                callback.CurrentIndex++;
                callback.ValidIndex++;
            }

            orderTable.Close();
        }
Example #9
0
 /// <summary>
 /// 开始执行数据的导出操作。
 /// </summary>
 public abstract void DoExport(IExportCallback ballback);
Example #10
0
 public abstract override void DoExport(IExportCallback ballback);
        public override void Export2TradeTable(DbDataReader reader, IExportCallback callback, IExport2TradeTable tradeService)
        {
            if (reader == null)
                return;
            TradeTable tradeTable = new TradeTable();
            if (!tradeTable.Open())
                return;

            OrderRowService_LH lhService = new OrderRowService_LH(this.TheProject);
            if (!lhService.Open())
            {
                tradeTable.Close();
                this.ImportState = EImportStatus.Exception;
                this.TheProject.Output.WriteLine("量化平台数据库打开失败!");
                return;
            }

            ProjectInfoService_LH projInfoService = new ProjectInfoService_LH();
            projInfoService.DB = lhService;
            List<ProjectInfo_LH> projInfos = projInfoService.GetProjectInfos(true);

            bool bufferAll_lh = false;
            List<OrderRow_LH> buffer_lh = null;
            List<OrderRow_LH> lhDataList = null;
            string securityId = string.Empty;

            lhService.SyncImportState2Local();
            if (lhService.TotalCount < this.MaxBufferSize)
            {
                bufferAll_lh = true;
                buffer_lh = lhService.GetTradeItems(EMarketType.ALL);
            }

            while (reader.Read())
            {
                if (this.TheProject.HasStop)
                {
                    tradeService.ImportState = EImportStatus.Interrupt;
                    break;
                }

                TradeInfo_O32 row = this.GetTradeInfo(reader);
                // 过滤掉无效的zmdm
                ProjectInfo_LH projInfo = projInfos.Where(o => o.Zmdm.ToString() == row.VC_COMBI_NO).FirstOrDefault();
                if (projInfo == null)
                {
                    callback.CurrentIndex++;
                    continue;
                }

                string interCode = row.VC_REPORT_CODE;
                if (securityId != interCode)
                {
                    securityId = interCode;
                    if (bufferAll_lh)
                        lhDataList = buffer_lh.Where(o => o.zqdm.Equals(interCode)).ToList();   // 从内存中筛选,速度快
                    else
                        lhDataList = lhService.GetTradeItems(interCode, EMarketType.ALL);  // 直接从数据库查询,比较耗时
                }

                if (lhDataList.Where(o => o.zmdm.ToString() == row.VC_COMBI_NO).FirstOrDefault() == null)
                {
                    TradeRow tradeInfo = this.GetTradeRow(row);
                    tradeInfo.Xmdm = projInfo.Zmdm;
                    tradeTable.Add(tradeInfo);
                    callback.ValidIndex++;
                }

                callback.CurrentIndex++;
            }

            lhService.Close();
            tradeTable.Close();
        }
Example #12
0
 public override void DoExport(IExportCallback callback)
 {
     DbDataReader reader = this.GetOrderItems(false, EMarketType.ALL);
     this.Export2OrderAndTradeTable(reader, callback);
     this.Close();
 }
Example #13
0
        protected void Export2OrderAndTradeTable(DbDataReader reader, IExportCallback callBack)
        {
            OrderTable orderTable = new OrderTable();
            TradeTable tradeTable = new TradeTable();
            if (!orderTable.Open() || !tradeTable.Open())
            {
                orderTable.Close();
                tradeTable.Close();

                return;
            }

            while (reader.Read())
            {
                if (this.TheProject.HasStop)
                {
                    this.ImportState = EImportStatus.Interrupt;
                    break;
                }

                OrderRow_LH row = this.GetOrderRow_LH(reader as SqlDataReader);
                orderTable.Add(this.GetOrderRow(row));

                // 成交信息
                if (row.CjNum > 0)
                {
                    tradeTable.Add(GetTradeRow(row));
                    callBack.ValidIndex++;
                }

                callBack.CurrentIndex++;
            }

            orderTable.Close();
            tradeTable.Close();
        }