Пример #1
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);
            }
        }
Пример #2
0
        private int Forward(DataForForward_Code dataForForward, ForwardDataIndeier indeier, int tradingDay, int klineIndex, List <string> list_OnBar)
        {
            IKLineData_Extend klineData = dataForForward.GetMainKLineData();
            ITickData_Extend  tickData  = dataForForward.CurrentTickData;
            int         lastMainKLineBarPos;
            int         mainBarPos = 0;
            KLinePeriod mainPeriod = dataForForward.MainKLinePeriod;

            for (int i = 0; i < tickData.Length; i++)
            {
                tickData.BarPos = i;
                Console.WriteLine("tick:" + tickData);
                list_OnBar.Add("tick:" + tickData);
                mainBarPos = indeier.GetMainKLineBarPosIfFinished(i, out lastMainKLineBarPos);
                if (mainBarPos < 0)
                {
                    continue;
                }
                PrintData(dataForForward, indeier, klineData, mainBarPos, mainPeriod, list_OnBar);
                if (lastMainKLineBarPos >= 0 && lastMainKLineBarPos != mainBarPos)
                {
                    for (int m = mainBarPos + 1; m <= lastMainKLineBarPos; m++)
                    {
                        PrintData(dataForForward, indeier, klineData, m, mainPeriod, list_OnBar);
                    }
                }
            }
            return(mainBarPos);
        }
Пример #3
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));
 }