Ejemplo n.º 1
0
 public DataNavigate_Code_KLine(IDataPackage_Code dataPackage, double time, KLinePeriod klinePeriod)
 {
     this.dataPackage   = dataPackage;
     this.klinePeriod   = klinePeriod;
     this.sessionReader = dataPackage.GetTradingTimeReader();
     this.ChangeTime(time);
 }
Ejemplo n.º 2
0
        private void AssertText(string code, int start, int end, string fileName)
        {
            List <string>      list_OnBar  = new List <string>();
            IDataPackage_Code  datapackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end, 0, 0);
            IKLineData_Extend  klineData   = datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Minute);
            ITickData          tickData    = datapackage.GetTickData(start);
            KLineToTickIndeier indeier     = new KLineToTickIndeier(tickData, klineData);

            int lastBarPos;

            for (int i = 0; i < tickData.Length; i++)
            {
                list_OnBar.Add("tick:" + tickData.GetBar(i));
                Console.WriteLine("tick:" + tickData.GetBar(i));
                int pos = indeier.GetKLineBarPosIfFinished(i, out lastBarPos);
                if (pos >= 0)
                {
                    list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(pos));
                    Console.WriteLine(klineData.Period + ":" + klineData.GetBar(pos));
                    for (int m = pos + 1; m <= lastBarPos; m++)
                    {
                        list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(m));
                        Console.WriteLine(klineData.Period + ":" + klineData.GetBar(m));
                        //lastBarPos = 1;
                    }
                }
            }
            AssertUtils.AssertEqual_List(fileName, GetType(), list_OnBar);
        }
Ejemplo n.º 3
0
        public void TestRunStrategy_Minute()
        {
            string            code        = "RB1710";
            int               startDate   = 20170301;
            int               endDate     = 20170603;
            IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, startDate, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_DataPackage strategyDataPackage = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            //strategyDataPackage.IsSaveResult = true;
            IStrategyExecutor_Single executor = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyDataPackage);

            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Simple));

            executor.Strategy = strategy;
            executor.Run();

            Console.WriteLine(executor.StrategyResult);
        }
Ejemplo n.º 4
0
        private void AssertForwardData(string code, int start, int end, List <string> list_OnBar)
        {
            IDataPackage_Code  dataPackage      = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end, 0, 0);
            List <KLinePeriod> usedKLinePeriods = new List <KLinePeriod>();

            usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            usedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            usedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);
            usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Hour);
            usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day);
            ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods(usedKLinePeriods, true, true);

            DataForForward_Code dataForForward = new DataForForward_Code(dataPackage, referedPeriods);
            List <int>          tradingDays    = dataForForward.TradingDayReader.GetAllTradingDays();

            dataForForward.TradingDay = tradingDays[0];
            ForwardDataIndeier indeier   = new ForwardDataIndeier(dataForForward);
            IKLineData_Extend  klineData = dataForForward.MainKLine;

            int currentBarPos = klineData.BarPos;

            for (int i = 0; i < tradingDays.Count; i++)
            {
                int tradingDay = tradingDays[i];
                dataForForward.TradingDay = tradingDay;
                currentBarPos             = Forward(dataForForward, indeier, tradingDay, currentBarPos, list_OnBar);
            }
        }
Ejemplo n.º 5
0
        private void btStrategyDataPackage_Click(object sender, EventArgs e)
        {
            IDataPackage_Code       dataPackage = this.chartComponent.Controller.CurrentNavigater.DataPackage;
            FormStrategyDataPackage form        = new FormStrategyDataPackage(dataPackage);

            form.ShowDialog();
        }
Ejemplo n.º 6
0
        public void TestRunStrategy_Tick()
        {
            //data.reader.IDataReader dataReader = CommonData.GetDataReader();

            string code    = "RB1710";
            int    start   = 20170601;
            int    endDate = 20170603;

            IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, start, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = true;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);

            StrategyForwardPeriod         forwardPeriod = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
            StrategyArguments_DataPackage arguments     = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single      runner        = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(arguments);

            DateTime prevtime = DateTime.Now;

            runner.Strategy = new MockStrategy(referedPeriods);
            runner.Run();

            DateTime time = DateTime.Now;
            TimeSpan span = time.Subtract(prevtime);

            Console.WriteLine(span.Minutes * 60 * 1000 + span.Seconds * 1000 + span.Milliseconds);
        }
Ejemplo n.º 7
0
        public void TestExecuteStrategy()
        {
            string            code        = "RB1710";
            int               start       = 20170601;
            int               endDate     = 20170603;
            IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, start, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_DataPackage arguments = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single      runner    = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(arguments);

            DateTime prevtime = DateTime.Now;

            runner.Strategy    = new MockStrategy(null);
            runner.OnFinished += Runner_OnFinished;
            runner.Execute();
            while (!isFinished)
            {
            }
            DateTime time = DateTime.Now;
            TimeSpan span = time.Subtract(prevtime);

            Console.WriteLine(span.Minutes * 60 + span.Seconds);
        }
Ejemplo n.º 8
0
        private static IDataForward_Code GetKLineDataForward(string code, int start, int endDate)
        {
            //KLineData_RealTime klineData_1Minute = CommonData.GetKLineData_RealTime(code, start, endDate, KLinePeriod.KLinePeriod_1Minute);
            //KLineData_RealTime klineData_5Minute = CommonData.GetKLineData_RealTime(code, start, endDate, KLinePeriod.KLinePeriod_5Minute);
            //KLineData_RealTime klineData_15Minute = CommonData.GetKLineData_RealTime(code, start, endDate, KLinePeriod.KLinePeriod_15Minute);
            //KLineData_RealTime klineData_1Day = CommonData.GetKLineData_RealTime(code, start, endDate, KLinePeriod.KLinePeriod_1Day);
            //Dictionary<KLinePeriod, KLineData_RealTime> dic = new Dictionary<KLinePeriod, KLineData_RealTime>();

            //IList<int> tradingDays = CommonData.GetDataReader().TradingDayReader.GetTradingDays(start, endDate);
            //dic.Add(KLinePeriod.KLinePeriod_1Minute, klineData_1Minute);
            //dic.Add(KLinePeriod.KLinePeriod_5Minute, klineData_5Minute);
            //dic.Add(KLinePeriod.KLinePeriod_15Minute, klineData_15Minute);
            //dic.Add(KLinePeriod.KLinePeriod_1Day, klineData_1Day);

            IDataPackage_Code     dataPackage    = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, endDate);
            ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods();

            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day);
            referedPeriods.UseTickData = true;

            ForwardPeriod     forwardPeriod    = new ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
            IDataForward_Code klineDataForward = DataCenter.Default.HistoryDataForwardFactory.CreateDataForward_Code(dataPackage, referedPeriods, forwardPeriod);

            //new HistoryDataForward_Code_TickPeriod(, code, periods, KLinePeriod.KLinePeriod_1Minute);
            return(klineDataForward);
        }
        public StrategyExecutor_CodePeriod_MainContract(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments) : base(strategyCenter, strategyArguments)
        {
            this.strategyArguments = strategyArguments;
            this.PrepareStrategyHelper();

            IList <ICodePeriod> codePeriods = this.strategyArguments.CodePeriod.Contracts;

            this.dataPackages = new List <IDataPackage_Code>();
            for (int i = 0; i < codePeriods.Count; i++)
            {
                ICodePeriod codePeriod = codePeriods[i];
                this.dataPackages.Add(strategyCenter.BelongDataCenter.DataPackageFactory.CreateDataPackage_Code(codePeriod.Code, codePeriod.StartDate, codePeriod.EndDate));
            }
            this.BuildExecutorInfo();
            for (int i = 0; i < dataPackages.Count; i++)
            {
                IDataPackage_Code dataPackage            = dataPackages[i];
                StrategyHelper    executorStrategyHelper = new StrategyHelper();
                executorStrategyHelper.QueryResultManager = this.strategyHelper.QueryResultManager;
                executorStrategyHelper.Drawer             = null;//TODO
                executorStrategyHelper.Trader             = this.strategyHelper.Trader;

                StrategyArguments_DataPackage strategyArgument = new StrategyArguments_DataPackage(dataPackage, strategyArguments.ReferedPeriods, strategyArguments.ForwardPeriod, executorStrategyHelper);
                StrategyExecutor_DataPackage  executor         = new StrategyExecutor_DataPackage(strategyCenter, strategyArgument, this.strategyExecutorInfo);
                executor.OnBarFinished += Executor_OnBarFinished;
                executor.OnDayFinished += Executor_OnDayFinished;
                this.executors.Add(executor);
            }
        }
Ejemplo n.º 10
0
        public void TestForwardCodeIndeier()
        {
            string code    = "RB1710";
            int    start   = 20170601;
            int    endDate = 20170603;

            IDataPackage_Code     dataPackage    = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, endDate);
            ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods();

            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Hour);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day);
            referedPeriods.UseTickData     = true;
            referedPeriods.UseTimeLineData = true;

            printLine.Clear();
            DataForForward_Code        data1   = new DataForForward_Code(dataPackage, referedPeriods);
            DataForForward_CodeIndeier indeier = new DataForForward_CodeIndeier(data1);

            int len = data1.GetMainKLineData().Length;

            for (int i = 0; i < len; i++)
            {
                IKLineBar bar = data1.GetMainKLineData().GetBar(i);
                Print(bar, indeier.GetFinishedBarsRelativeToMainKLine(i), data1);
            }

            AssertUtils.AssertEqual_List("forwardcodeindeier", GetType(), printLine);
        }
Ejemplo n.º 11
0
        public HistoryDataForward_Code(IDataReader dataReader, string code, HistoryDataForwardArguments args)
        {
            IDataPackage_Code     dataPackage    = DataPackageFactory.CreateDataPackage(dataReader, code, args.StartDate, args.EndDate);
            ForwardReferedPeriods referedPeriods = args.ReferedPeriods;
            ForwardPeriod         forwardPeriod  = new ForwardPeriod(args.IsTickForward, args.ForwardKLinePeriod);

            this.Init(dataPackage, referedPeriods, forwardPeriod);
        }
Ejemplo n.º 12
0
        public FormStrategyDataPackage(IDataPackage_Code dataPackage)
        {
            InitializeComponent();

            this.lbCode.Text  = dataPackage.Code;
            this.lbStart.Text = dataPackage.StartDate.ToString();
            this.lbEnd.Text   = dataPackage.EndDate.ToString();
        }
Ejemplo n.º 13
0
 public DataForward_Code_Tick2(IDataCenter dataCenter, IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
 {
     this.dataCenter          = dataCenter;
     this.dataPackage         = dataPackage;
     this.referedPeriods      = referedPeriods;
     this.forwardPeriod       = forwardPeriod;
     this.dataForForward_Code = new DataForForward_Code(dataPackage, referedPeriods);
 }
Ejemplo n.º 14
0
 public IDataNavigate_Code CreateDataNavigate_Code(string code, double time)
 {
     int openDate = this.dataReader.CreateTradingTimeReader(code).GetRecentTradingDay(time);
     if (openDate < 0)
         return null;
     IDataPackage_Code dataPackage = DataPackageFactory.CreateDataPackage(dataReader, code, openDate, 500, 500);
     return CreateDataNavigate_Code(dataPackage, time);
 }
Ejemplo n.º 15
0
        public FormStrategy(CompChartStrategyBinder binder, IStrategyInfo strategyInfo, IStrategy strategy, IDataPackage_Code dataPackage)
        {
            InitializeComponent();
            this.binder      = binder;
            this.dataPackage = dataPackage;

            InitStrategy(strategyInfo, strategy);
        }
Ejemplo n.º 16
0
 public DataForward_Code_Tick3(IDataCenter dataCenter, IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
 {
     this.dataCenter         = dataCenter;
     this.forwardData        = new DataForForward_Code(dataPackage, referedPeriods);
     this.forwardDataIndeier = new DataForForward_CodeIndeier(forwardData);
     this.forwardPeriod      = forwardPeriod;
     Init();
     InitData();
 }
Ejemplo n.º 17
0
 public IDataForward_Code CreateDataForward_Code(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
 {
     if (forwardPeriod.IsTickForward)
     {
         return(new DataForward_Code_Tick2(dataCenter, dataPackage, referedPeriods, forwardPeriod));
     }
     //return new HistoryDataForward_Code_TickPeriod(dataPackage, referedPeriods.UsedKLinePeriods, forwardPeriod.KlineForwardPeriod, referedPeriods.UseTimeLineData);
     return(new DataForward_Code_KLine(dataCenter, dataPackage, referedPeriods, forwardPeriod));
 }
Ejemplo n.º 18
0
 public DataForForward_Code(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods)
 {
     this.dataPackage          = dataPackage;
     this.referedPeriods       = referedPeriods;
     this.dic_Period_KLineData = dataPackage.CreateKLineData_RealTimes(referedPeriods.UsedKLinePeriods);
     this.mainKLinePeriod      = referedPeriods.GetMinPeriod();
     this.mainKLineData        = this.dic_Period_KLineData[mainKLinePeriod];
     this.cache_TradingDay     = new CacheUtils_TradingDay(dataPackage.GetTradingDays());
 }
Ejemplo n.º 19
0
        public IStrategyExecutor CreateExecutor(IDataPackage_Code dataPackage, IStrategy strategy, KLinePeriod period)
        {
            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UsedKLinePeriods.Add(period);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, period);

            return(StrategyCenter.Default.GetStrategyExecutorFactory_History().CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, compChart1.StrategyHelper));
        }
Ejemplo n.º 20
0
        public HistoryDataForward_Code_TickPeriod(IDataPackage_Code dataPackage, IList <KLinePeriod> periods, KLinePeriod forwardPeriod, bool useTimeLineData)
        {
            this.allKLinePeriods = periods;
            Dictionary <KLinePeriod, IKLineData_RealTime> allKLineData = dataPackage.CreateKLineData_RealTimes(periods);
            IList <int> tradingDays = dataPackage.GetTradingDays();

            this.useTimeLineData = useTimeLineData;
            this.onBarArgument   = new ForwardOnBarArgument(barFinishedInfos);
            Init(dataPackage, allKLineData, tradingDays, forwardPeriod);
        }
Ejemplo n.º 21
0
        private void InitCodePackage(ChartComponent chartComponent)
        {
            IDataPackage_Code     dataPackage     = chartComponent.Controller.CurrentNavigater.DataPackage;
            CodePeriodListChooser codePackageInfo = new CodePeriodListChooser();

            codePackageInfo.Codes.Add(dataPackage.Code);
            codePackageInfo.Start = dataPackage.StartDate;
            codePackageInfo.End   = dataPackage.EndDate;
            this.compCodePackage1.Init(codePackageInfo);
        }
Ejemplo n.º 22
0
        public void Load(XmlElement xmlElem)
        {
            this.dataPackage    = this.dataCenter.DataPackageFactory.CreateDataPackage_Code(xmlElem);
            this.referedPeriods = new ForwardReferedPeriods();
            this.referedPeriods.Load(xmlElem);

            this.dic_Period_KLineData = dataPackage.CreateKLineData_RealTimes(referedPeriods.UsedKLinePeriods);
            this.cache_TradingDay     = new CacheUtils_TradingDay(dataPackage.GetTradingDays());
            this.TradingDay           = int.Parse(xmlElem.GetAttribute("tradingDay"));
        }
Ejemplo n.º 23
0
 public StrategyDrawer(IDataPackage_Code dataPackage, StrategyReferedPeriods referPeriods)
 {
     this.dataPackage = dataPackage;
     foreach (KLinePeriod period in referPeriods.UsedKLinePeriods)
     {
         IKLineData_Extend klineData = dataPackage.GetKLineData(period);
         dic_KLinePeriod_Start.Add(period, klineData.BarPos);
         dic_KLinePeriod_DataKey.Add(period, new KLineKey(dataPackage.Code, dataPackage.StartDate, dataPackage.EndDate, period));
     }
 }
Ejemplo n.º 24
0
 public IDataForward CreateHistoryDataForward(string[] codes, int startDate, int endDate, ForwardReferedPeriods[] referedPeriods, ForwardPeriod forwardPeriod)
 {
     IDataPackage_Code[] dataPackages = new IDataPackage_Code[codes.Length];
     for (int i = 0; i < codes.Length; i++)
     {
         string            code        = codes[i];
         IDataPackage_Code dataPackage = dataCenter.DataPackageFactory.CreateDataPackage_Code(code, startDate, endDate);
         dataPackages[i] = dataPackage;
     }
     return(CreateHistoryDataForward(dataPackages, referedPeriods, forwardPeriod));
 }
Ejemplo n.º 25
0
 public DataForward_Code_KLine(IDataCenter dataCenter, IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
 {
     this.dataCenter              = dataCenter;
     this.navigateData            = new DataForForward_Code(dataPackage, referedPeriods);
     this.navigateData.TradingDay = navigateData.StartDate;
     this.forwardPeriod           = forwardPeriod;
     this.mainKLineData           = this.navigateData.GetKLineData(forwardPeriod.KlineForwardPeriod);
     this.listenedCodes[0]        = mainKLineData.Code;
     this.onBarArgument           = new ForwardOnBarArgument(this.barFinishedInfos, this);
     InitKLine();
 }
Ejemplo n.º 26
0
        private void Init(IDataPackage_Code dataPackage, Dictionary <KLinePeriod, IKLineData_RealTime> allKLineData, IList <int> tradingDays, KLinePeriod forwardPeriod)
        {
            this.dataPackage          = dataPackage;
            this.dic_Period_KLineData = allKLineData;
            this.tradingDays          = tradingDays;
            this.forwardPeriod        = new ForwardPeriod(true, forwardPeriod);
            InitData();

            timer.Elapsed  += Timer_Elapsed;
            timer.AutoReset = true;
        }
Ejemplo n.º 27
0
 public DataNavigate_Code2(IDataPackage_Code dataPackage, DataForForward_Code forwarddata)
 {
     this.dataPackage = dataPackage;
     foreach (KLinePeriod klinePeriod in forwarddata.ReferedKLinePeriods)
     {
         IKLineData_RealTime klineData = forwarddata.GetKLineData(klinePeriod);
         //this.dicNavigateKLine.Add(klinePeriod,new DataNavigate_Code_KLine())
     }
     //dicNavigateKLine
     //this.NavigateTo(time);
 }
Ejemplo n.º 28
0
        public static IStrategyExecutor_Single CreateExecutor_DataPackage(string code, int start, int end)
        {
            IStrategyExecutorFactory executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory();
            StrategyReferedPeriods   referedPeriods  = GetReferedPeriods();
            StrategyForwardPeriod    forwardPeriod   = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);

            IDataPackage_Code             dataPackage        = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end);
            StrategyArguments_DataPackage strategyCodePeriod = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single      executor           = executorFactory.CreateExecutor_History(strategyCodePeriod);

            return(executor);
        }
Ejemplo n.º 29
0
 public StrategyExecutor_DataPackage(IStrategyCenter strategyCenter, StrategyArguments_DataPackage strategyArguments, StrategyExecutorInfo strategyExecutorInfo) : base(strategyCenter, strategyArguments)
 {
     this.dataPackage = strategyArguments.DataPackage;
     this.codePeriod  = new CodePeriod(dataPackage.Code, dataPackage.StartDate, dataPackage.EndDate);
     if (strategyExecutorInfo == null)
     {
         this.InitStrategyExecutorInfo();
     }
     else
     {
         this.strategyExecutorInfo = strategyExecutorInfo;
     }
 }
Ejemplo n.º 30
0
        public void AttachOtherData(string code)
        {
            if (dic_Code_DataForward.ContainsKey(code))
            {
                return;
            }
            int startDate = this.DataPackage.StartDate;
            int endDate   = this.DataPackage.EndDate;
            IDataPackage_Code dataPackage_AttachCode = dataCenter.DataPackageFactory.CreateDataPackage_Code(code, startDate, endDate);
            IDataForward_Code dataForward_AttachCode = new DataForward_Code_KLine(dataCenter, dataPackage_AttachCode, navigateData.ReferedPeriods, forwardPeriod);

            this.dic_Code_DataForward.Add(code, dataForward_AttachCode);
        }