コード例 #1
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);
        }
コード例 #2
0
ファイル: DataForward_Code_Tick2.cs プロジェクト: wanwei/sc2
        private static void ForwardNextDay_KLine(DataForForward_Code forwardData, IKLineData_RealTime klineData, KLinePeriod period)
        {
            ITickBar tickBar    = forwardData.CurrentTickData.GetCurrentBar();
            int      nextbarPos = klineData.BarPos + 1;

            klineData.ChangeCurrentBar(KLineUtils.GetKLineBar(tickBar), nextbarPos);
        }
コード例 #3
0
ファイル: DataForward_Code_Tick2.cs プロジェクト: wanwei/sc2
 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);
 }
コード例 #4
0
ファイル: DataForward_Code_Tick3.cs プロジェクト: wanwei/sc2
 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();
 }
コード例 #5
0
ファイル: DataForwardUtils_Tick.cs プロジェクト: wanwei/sc2
 public static void ForwardNextDay(DataForForward_Code forwardData, int tradingDay)
 {
     forwardData.TradingDay = tradingDay;
     foreach (KLinePeriod period in forwardData.ReferedKLinePeriods)
     {
         IKLineData_RealTime klineData = forwardData.GetKLineData(period);
         ForwardNextDay_KLine(forwardData, klineData, period);
     }
     ForwardNextDay_TimeLine(forwardData);
 }
コード例 #6
0
ファイル: DataForward_Code_Tick2.cs プロジェクト: wanwei/sc2
        public void Load(XmlElement xmlElem)
        {
            double time = double.Parse(xmlElem.GetAttribute("time"));

            this.forwardPeriod = new ForwardPeriod();
            this.forwardPeriod.Load(xmlElem);
            this.dataForForward_Code = new DataForForward_Code(dataCenter);
            this.dataForForward_Code.Load(xmlElem);
            this.NavigateTo(time);
        }
コード例 #7
0
ファイル: DataForward_Code_Tick2.cs プロジェクト: wanwei/sc2
        private static void ForwardNextDay_TimeLine(DataForForward_Code forwardData)
        {
            if (!forwardData.UseTimeLineData)
            {
                return;
            }

            //ITimeLineBar timeLineBar = GetTimeLineBar(forwardData.CurrentTickData, forwardData.CurrentTimeLineData.YesterdayEnd);
            //forwardData.CurrentTimeLineData.ChangeCurrentBar(timeLineBar);
        }
コード例 #8
0
ファイル: DataForward_Code_KLine.cs プロジェクト: wanwei/sc2
 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();
 }
コード例 #9
0
ファイル: DataForwardUtils_Tick.cs プロジェクト: wanwei/sc2
        private static void ForwardNextDay_KLine(DataForForward_Code forwardData, IKLineData_RealTime klineData, KLinePeriod period)
        {
            ITickBar tickBar    = forwardData.CurrentTickData.GetCurrentBar();
            int      nextbarPos = klineData.BarPos + 1;

            //TODO 这样nextday算法还是不够准确
            while (!klineData.IsDayStart(nextbarPos))
            {
                nextbarPos = klineData.BarPos + 1;
            }
            klineData.ChangeCurrentBar(GetKLineBar(tickBar), nextbarPos);
        }
コード例 #10
0
        public DataForForward_CodeIndeier(DataForForward_Code data)
        {
            this.data = data;
            IList <KLinePeriod> periods = data.ReferedKLinePeriods;

            for (int i = 0; i < periods.Count; i++)
            {
                KLinePeriod period = periods[i];
                if (period.Equals(data.MainKLinePeriod))
                {
                    continue;
                }
                dic_Period_CurrentIndex.Add(period, data.GetKLineData(period).BarPos);
            }
            this.Index();
        }
コード例 #11
0
        private void Print(IKLineBar bar, IList <KLineBarPos> posList, DataForForward_Code data1)
        {
            if (posList == null)
            {
                return;
            }
            StringBuilder sb = new StringBuilder();

            sb.Append(bar.Time + ":");
            //Console.Write(bar.Time + ":");
            for (int i = 0; i < posList.Count; i++)
            {
                KLineBarPos periodBar = posList[i];
                //Console.Write(periodBar + "," + data1.GetKLineData(periodBar.KLinePeriod).GetBar(periodBar.BarPos).Time + "|");
                sb.Append(periodBar + "," + data1.GetKLineData(periodBar.KLinePeriod).GetBar(periodBar.BarPos).Time + "|");
                //Assert.AreEqual(bar.Time, data1.GetKLineData(posList[i].KLinePeriod).Time);
            }
            //Console.WriteLine();
            printLine.Add(sb.ToString());
        }
コード例 #12
0
 public DataForward_AttachCode_Tick(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods)
 {
     this.dataPackage    = dataPackage;
     this.referedPeriods = referedPeriods;
     this.dataForForward = new DataForForward_Code(dataPackage, referedPeriods);
 }
コード例 #13
0
ファイル: KLineDataForward_Tick.cs プロジェクト: wanwei/sc2
 public KLineDataForward_Tick(DataForForward_Code dataForForward)
 {
     this.dataForForward = dataForForward;
     //this.forwardDataIndeier = new ForwardDataIndeier()
 }