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); }
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); }
public bool Forward(ForwardPeriod forwardPeriod) { if (!forwardPeriod.IsTickForward) { return(Forward(forwardPeriod.KlineForwardPeriod)); } IDataForward_Code dataForward = GetDataForward(); isTickForward = true; return(dataForward.Forward()); }
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); }
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); }
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(); } }
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(); }
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(); }
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); }
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); }
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; }
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; } } }
public void ForwardTime(ForwardPeriod forwardPeriod) { this.currentNavigater.Forward(forwardPeriod); }