Exemplo n.º 1
0
        private IDataForward_Code GetDataForward()
        {
            if (isTickForward)
            {
                return(dataForward);
            }
            if (this.dataForward != null)
            {
                this.dataForward.NavigateTo(Time);
                return(this.dataForward);
            }
            ForwardPeriod         forwardPeriod  = new ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
            ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods();

            referedPeriods.UseTickData = true;
            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);
            this.dataForward = DataCenter.Default.HistoryDataForwardFactory.CreateDataForward_Code(this.DataPackage, referedPeriods, forwardPeriod);
            this.dataForward.Forward();
            this.dataForward.NavigateTo(this.Time);
            this.dataForward.OnRealTimeChanged += DataForward_OnRealTimeChanged;
            return(this.dataForward);
        }
Exemplo n.º 2
0
        public void TestSaveLoad_DataForward_Code()
        {
            string code      = "rb1710";
            int    startDate = 20170601;
            int    endDate   = 20170602;

            ForwardPeriod         forwardPeriod  = new ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
            ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods(new KLinePeriod[] { KLinePeriod.KLinePeriod_1Minute, KLinePeriod.KLinePeriod_15Minute, KLinePeriod.KLinePeriod_1Hour, KLinePeriod.KLinePeriod_1Day }, true, false);
            IDataForward_Code     dataForward    = DataCenter.Default.HistoryDataForwardFactory.CreateDataForward_Code(code, startDate, endDate, referedPeriods, forwardPeriod);

            for (int i = 0; i < 100; i++)
            {
                dataForward.Forward();
            }
            Console.WriteLine(XmlUtils.ToString(dataForward));
            XmlElement root = GetXmlRoot();

            dataForward.Save(root);

            IDataForward_Code dataForward2 = DataCenter.Default.HistoryDataForwardFactory.CreateDataForward_Code(root);

            for (int i = 0; i < 100; i++)
            {
                dataForward.Forward();
                dataForward2.Forward();
            }

            Console.WriteLine(XmlUtils.ToString(dataForward2));
            Assert.AreEqual(dataForward.Time, dataForward2.Time);
        }
Exemplo n.º 3
0
        public bool Forward(ForwardPeriod forwardPeriod)
        {
            if (!forwardPeriod.IsTickForward)
            {
                return(Forward(forwardPeriod.KlineForwardPeriod));
            }
            IDataForward_Code dataForward = GetDataForward();

            isTickForward = true;
            return(dataForward.Forward());
        }
Exemplo n.º 4
0
        public void TestSaveLoad_ForwardPeriod()
        {
            ForwardPeriod fp   = new ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
            XmlElement    root = GetXmlRoot();

            fp.Save(root);
            ForwardPeriod fp2 = new ForwardPeriod();

            fp2.Load(root);
            Assert.AreEqual(fp, fp2);
        }
Exemplo n.º 5
0
        public void Load(XmlElement xmlElem)
        {
            this.startDate = int.Parse(xmlElem.GetAttribute("start"));
            this.endDate   = int.Parse(xmlElem.GetAttribute("end"));

            XmlElement elemPeriods = (XmlElement)xmlElem.GetElementsByTagName("referperiods")[0];

            this.referedPeriods = new StrategyReferedPeriods();
            this.referedPeriods.Load(elemPeriods);

            XmlElement elemForward = (XmlElement)xmlElem.GetElementsByTagName("forwardperiod")[0];

            this.forwardPeriod = new ForwardPeriod();
            this.forwardPeriod.Load(elemForward);
        }
Exemplo n.º 6
0
        private void tbPeriod_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                bool isTickForward = this.cbTimeType.SelectedIndex == 0;
                this.forwardPeriod = new ForwardPeriod(isTickForward, new KLinePeriod(GetKLineTimeType(), int.Parse(tbPeriod.Text)));

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            if (e.KeyCode == Keys.Escape)
            {
                this.DialogResult = DialogResult.Cancel;
                this.Close();
            }
        }
Exemplo n.º 7
0
 public DataNavigater_Code_KLinePeriod(IDataPackage_Code dataPackage, IList <KLinePeriod> periods, KLinePeriod mainKLinePeriod, bool useTimeLineData)
 {
     this.code                 = dataPackage.Code;
     this.periods              = periods;
     this.dataPackage          = dataPackage;
     this.dic_Period_KLineData = this.dataPackage.CreateKLineData_RealTimes(periods);
     this.mainKLineData        = this.dic_Period_KLineData[mainKLinePeriod];
     this.currentTradingDay    = dataPackage.StartDate;
     this.useTimeLineData      = useTimeLineData;
     if (useTimeLineData)
     {
         this.timeLineData = dataPackage.GetTimeLineData(dataPackage.StartDate);
     }
     this.forwardPeriod = new ForwardPeriod(false, mainKLineData.Period);
     this.onBarArgument = new ForwardOnBarArgument(this.barFinishedInfos);
     InitKLine();
 }
Exemplo n.º 8
0
        public void Play()
        {
            this.isPlaying = true;
            if (dataForward_Code == null || this.LastOperator == OPERATOR_NAVIGATE)
            {
                if (this.dataForward_Code != null)
                {
                    this.dataForward_Code.OnRealTimeChanged -= DataForward_Code_OnRealTimeChanged;
                }
                ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods(new KLinePeriod[] { KLinePeriod.KLinePeriod_1Minute, KLinePeriod.KLinePeriod_5Minute,
                                                                                                     KLinePeriod.KLinePeriod_15Minute, KLinePeriod.KLinePeriod_1Hour, KLinePeriod.KLinePeriod_1Day }, true, true);
                ForwardPeriod forwardPeriod = new ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute);
                this.dataForward_Code = dataCenter.HistoryDataForwardFactory.CreateDataForward_Code(this.DataPackage, referedPeriods, forwardPeriod);
                this.dataForward_Code.OnRealTimeChanged += DataForward_Code_OnRealTimeChanged;
                this.dataForward_Code.NavigateTo(Time);
            }

            this.LastOperator = OPERATOR_PLAY;
            this.dataForward_Code.Play();
        }
Exemplo n.º 9
0
        public bool Forward(ForwardPeriod forwardPeriod)
        {
            if (!forwardPeriod.IsTickForward)
            {
                return(Forward(forwardPeriod.KlineForwardPeriod));
            }
            ITickData tickData = this.GetTickData();

            if (tickData.BarPos >= tickData.Length - 1)
            {
                return(Forward(KLinePeriod.KLinePeriod_1Minute));
            }
            double time = tickData.Arr_Time[tickData.BarPos + 1];

            if (time != tickData.Time)
            {
                return(NavigateTo(time));
            }
            return(false);
        }
Exemplo n.º 10
0
        public bool Forward(ForwardPeriod forwardPeriod)
        {
            bool canForward = this.currentNavigate_Code.Forward(forwardPeriod);

            if (!canForward)
            {
                int endDate     = this.DataPackage.EndDate;
                int codeEndDate = codeInfo.End;
                if (codeEndDate == 0)
                {
                    codeEndDate = this.dataReader.TradingDayReader.FirstTradingDay;
                }
                if (endDate < codeEndDate)
                {
                    currentNavigate_Code = dataNavigateFactory.CreateDataNavigate_Code(Code, Time);
                    this.LastOperator    = OPERATOR_NAVIGATE;
                    return(currentNavigate_Code.Forward(forwardPeriod));
                }
            }
            this.LastOperator = OPERATOR_NAVIGATE;
            return(canForward);
        }
Exemplo n.º 11
0
        public RealTimeReader_Strategy(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
        {
            this.dataPackage    = dataPackage;
            this.code           = dataPackage.Code;
            this.startDate      = dataPackage.StartDate;
            this.endDate        = dataPackage.EndDate;
            this.referedPeriods = referedPeriods;
            this.forwardPeriod  = forwardPeriod;

            this.allKLineData = new Dictionary <KLinePeriod, KLineData_RealTime>();
            for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++)
            {
                KLinePeriod        period             = referedPeriods.UsedKLinePeriods[i];
                IKLineData         klineData          = dataPackage.GetKLineData(period);
                KLineData_RealTime klineData_RealTime = new KLineData_RealTime(klineData);
                allKLineData.Add(period, klineData_RealTime);
            }

            IList <int> allTradingDays = dataPackage.GetTradingDays();

            if (forwardPeriod.IsTickForward)
            {
                this.klineDataForward = new HistoryDataForward_Code_TickPeriod(dataPackage, allKLineData, allTradingDays, forwardPeriod.KlineForwardPeriod);
            }
            else
            {
                KLinePeriod        mainPeriod    = forwardPeriod.KlineForwardPeriod;
                KLineData_RealTime mainKLineData = allKLineData[mainPeriod];
                this.klineDataForward = new HistoryDataForward_Code_KLinePeriod(code, mainKLineData, allKLineData);
            }

            this.klineDataForward.OnRealTimeChanged += KlineDataForward_OnRealTimeChanged;
            this.klineDataForward.OnTick            += KlineDataForward_OnTick;
            this.klineDataForward.OnBar             += KlineDataForward_OnBar;

            //this.klineDataForward = HistoryDataForwardFactory.CreateHistoryDataForward_Code(dataPackage, referedPeriods, forwardPeriod);
            //this.klineDataForward.OnTick += KlineDataForward_OnTick;
            //this.klineDataForward.OnBar += KlineDataForward_OnBar;
        }
Exemplo n.º 12
0
        private void tb_ForwardSetting_Click(object sender, EventArgs e)
        {
            FormForwardSetting formForwardSetting = new FormForwardSetting();

            formForwardSetting.ForwardPeriod = forwardPeriod;
            DialogResult dialogResult = formForwardSetting.ShowDialog();

            if (dialogResult == DialogResult.OK)
            {
                this.forwardPeriod = formForwardSetting.ForwardPeriod;
                if (this.forwardPeriod.IsTickForward)
                {
                    this.tb_BackwordTime.Enabled = false;
                    this.tb_BackwordTime.Text    = "不支持tick后退";
                    this.tb_ForwordTime.Text     = "前进一个tick";
                }
                else
                {
                    this.tb_BackwordTime.Enabled = true;
                    this.tb_BackwordTime.Text    = "后退" + forwardPeriod.KlineForwardPeriod;
                    this.tb_ForwordTime.Text     = "前进" + forwardPeriod.KlineForwardPeriod;
                }
            }
        }
Exemplo n.º 13
0
 public void ForwardTime(ForwardPeriod forwardPeriod)
 {
     this.currentNavigater.Forward(forwardPeriod);
 }