Exemple #1
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);
        }
Exemple #2
0
        private static void DoIndex(List <string> list_OnBar, IKLineData_Extend klineData, ITickData tickData, KLineToTickIndeier indeier)
        {
            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));
                    }
                }
            }
        }
        private void AssertKLineToKLine(string code, int start, int end, List <string> list_OnBar)
        {
            IDataPackage_Code         datapackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end);
            IKLineData_Extend         mainKLine   = datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Minute);
            IList <IKLineData_Extend> indexKLines = new List <IKLineData_Extend>();

            indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_5Minute));
            indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_15Minute));
            indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Hour));
            indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Day));
            KLineToKLineIndeier indeier = new KLineToKLineIndeier(mainKLine, indexKLines);

            int startMainPos = mainKLine.BarPos;
            int endMainPos   = mainKLine.Length - 1;

            for (int i = startMainPos; i <= endMainPos; i++)
            {
                Console.WriteLine(mainKLine.Period + ":" + mainKLine.GetBar(i));
                list_OnBar.Add(mainKLine.Period + ":" + mainKLine.GetBar(i));
                PrintKLines(i, indeier, indexKLines, list_OnBar);
            }
        }
Exemple #4
0
 private static void PrintData(DataForForward_Code dataForForward, ForwardDataIndeier indeier, IKLineData_Extend klineData, int mainBarPos, KLinePeriod mainPeriod, List <string> list_OnBar)
 {
     Console.WriteLine(klineData.Period + ":" + klineData.GetBar(mainBarPos));
     list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(mainBarPos));
     for (int m = 0; m < dataForForward.ReferedKLinePeriods.Count; m++)
     {
         KLinePeriod period = dataForForward.ReferedKLinePeriods[m];
         if (mainPeriod.Equals(period))
         {
             continue;
         }
         int barPos = indeier.GetOtherKLineBarPosIfFinished(mainBarPos, period);
         if (barPos >= 0)
         {
             IKLineData otherKLine = dataForForward.GetKLineData(period);
             Console.WriteLine(period + ":" + otherKLine.GetBar(barPos));
             list_OnBar.Add(period + ":" + otherKLine.GetBar(barPos));
         }
     }
     Console.WriteLine("分时线:" + dataForForward.CurrentTimeLineData.GetBar(mainBarPos));
     list_OnBar.Add("分时线:" + dataForForward.CurrentTimeLineData.GetBar(mainBarPos));
 }
        public void TestTimeLineToKLine()
        {
            string code  = "RB1710";
            int    start = 20170601;
            int    end   = 20170605;

            IDataPackage_Code datapackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end, 0, 0);
            IKLineData_Extend klineData   = datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Minute);
            //IKLineData_Extend klineData = datapackage.GetKLineData(KLinePeriod.KLinePeriod_5Minute);
            IList <int>            tradingDays  = datapackage.GetTradingDays();
            ITimeLineData          timeLineData = datapackage.GetTimeLineData(tradingDays[0]);
            TimeLineToKLineIndeier indeier      = new TimeLineToKLineIndeier(klineData, timeLineData);

            int  tradingDayIndex = 0;
            bool isFirst         = true;

            for (int i = klineData.BarPos; i < klineData.Length; i++)
            {
                if (!isFirst && klineData.IsDayStart(i))
                {
                    tradingDayIndex++;
                    if (tradingDayIndex >= tradingDays.Count)
                    {
                        return;
                    }
                    timeLineData = datapackage.GetTimeLineData(tradingDays[tradingDayIndex]);
                    indeier.ChangeTradingDay(timeLineData);
                }
                isFirst          = false;
                klineData.BarPos = i;
                Console.WriteLine(klineData.Period + ":" + klineData.GetBar(i));
                int barPos = indeier.GetTimeLineBarPosIfFinished(i);
                if (barPos >= 0)
                {
                    timeLineData.BarPos = barPos;
                    Console.WriteLine("分时线:" + timeLineData.GetBar(barPos));
                }
                Assert.AreEqual(klineData.Time, timeLineData.Time);
                Assert.AreEqual(klineData.End, timeLineData.Price);
            }
        }
Exemple #6
0
        public void TestKLineDataExtendDayStart()
        {
            string            code      = "RB1710";
            int               start     = 20170601;
            int               end       = 20170603;
            IKLineData_Extend klineData = DataCenter.Default.DataReader.KLineDataReader.GetData_Extend(code, start, end, KLinePeriod.KLinePeriod_1Minute);
            int               barPos    = klineData.BarPos;

            for (int i = 0; i < klineData.Length; i++)
            {
                Console.WriteLine(i + ":" + klineData.GetBar(i).ToString());
            }

            Assert.IsTrue(klineData.IsDayStart());
            klineData.BarPos += 1;
            Assert.IsFalse(klineData.IsDayStart());
            Assert.IsFalse(klineData.IsDayStart(barPos + 1));

            Assert.IsFalse(klineData.IsDayEnd(12));
            Assert.IsTrue(klineData.IsDayEnd(344));
            Assert.IsTrue(klineData.IsDayStart(345));
        }