コード例 #1
0
        public IKLineData GetKLineData(string code, int startDate, int endDate, KLinePeriod period)
        {
            ITradingDayReader openDateReader = dataReaderFactory.OpenDateReader;

            IList <int>       openDates     = openDateReader.GetOpenDates(startDate, endDate);
            int               prevOpenDate  = openDateReader.GetPrevOpenDate(startDate);
            IKLineData        lastKLineData = dataReaderFactory.KLineDataReader.GetData(code, prevOpenDate, prevOpenDate, period);
            List <IKLineData> klineDataList = new List <IKLineData>();

            for (int i = 0; i < openDates.Count; i++)
            {
                int      openDate = openDates[i];
                TickData tickdata = dataReaderFactory.TickDataReader.GetTickData(code, openDate);
                if (tickdata != null)
                {
                    List <double[]>   openTimes = dataProvider.GetOpenTime(code, openDate);
                    OpenTimeUtilsArgs args      = new OpenTimeUtilsArgs(openDate, openDateReader, openTimes, period);
                    KLineData         klineData = DataTransfer_Tick2KLine2.Transfer(tickdata, lastKLineData, args);
                    klineDataList.Add(klineData);
                }
            }
            if (klineDataList.Count == 0)
            {
                return(null);
            }
            return(KLineData.Merge(klineDataList));
        }
コード例 #2
0
 /// <summary>
 /// 构建函数
 /// </summary>
 /// <param name="date">指定要transfer的日期</param>
 /// <param name="data">要转换的tick数据</param>
 /// <param name="openDateReader">开盘日读取器,传入该接口是为了得到</param>
 /// <param name="opentime"></param>
 /// <param name="targetPeriod"></param>
 /// <param name="lastKLineData"></param>
 public DataTransfer_Tick2KLine2(TickData data, IKLineData lastKLineData, OpenTimeUtilsArgs openTimeUtilsArgs)
 {
     this.tickData      = data;
     this.lastKLineData = lastKLineData;
     this.klineTimes    = OpenTimeUtils.GetKLineTimeList(openTimeUtilsArgs);
 }
コード例 #3
0
        public static KLineData Transfer(TickData data, IKLineData lastKLineData, OpenTimeUtilsArgs args)
        {
            DataTransfer_Tick2KLine2 transfer = new DataTransfer_Tick2KLine2(data, lastKLineData, args);

            return(transfer.CalcKLineData());
        }