private UpdateInfo_KLine GetGenerateKLine(String code) { UpdateInfo_KLine generate_KLine = new UpdateInfo_KLine(); generate_KLine.code = code; generate_KLine.dates_5second = update_KLine.GetUpdateDates(code, dataReaderFactory, new KLinePeriod(KLineTimeType.SECOND, 5)); generate_KLine.dates_1min = update_KLine.GetUpdateDates(code, dataReaderFactory, new KLinePeriod(KLineTimeType.MINUTE, 1)); generate_KLine.dates_15min = update_KLine.GetUpdateDates(code, dataReaderFactory, new KLinePeriod(KLineTimeType.MINUTE, 15)); generate_KLine.dates_1hour = update_KLine.GetUpdateDates(code, dataReaderFactory, new KLinePeriod(KLineTimeType.HOUR, 1)); generate_KLine.dates_Day = update_KLine.GetUpdateDates(code, dataReaderFactory, new KLinePeriod(KLineTimeType.DAY, 1)); return(generate_KLine); }
private void UpdateKLine(UpdateInfo_KLine generate_KLine) { String code = generate_KLine.code; //KLinePeriod period = new KLinePeriod(KLineTimeType.SECOND, 5); //DoAfterGenerateKLinePeriod(generate_KLine.dates_5second, period); //KLineData data = UpdateKLineByTick(code, generate_KLine.dates_5second, period); KLinePeriod period = null; IKLineData data = null; if (generate_KLine.dates_1min.Count != 0) { period = new KLinePeriod(KLineTimeType.MINUTE, 1); DoAfterGenerateKLinePeriod(generate_KLine.dates_1min, period); data = UpdateKLineByTick(code, generate_KLine.dates_1min, period); } if (generate_KLine.dates_15min.Count != 0) { period = new KLinePeriod(KLineTimeType.MINUTE, 15); DoAfterGenerateKLinePeriod(generate_KLine.dates_15min, period); if (IsOpenDateEquals(generate_KLine.dates_1min, generate_KLine.dates_15min)) { UpdateKLineByKLine(code, period, data); } else { List <int> days = generate_KLine.dates_15min; IKLineData dataFor15min = dataReaderFactory.KLineDataReader.GetData(code, days[0], days[days.Count - 1], new KLinePeriod(KLineTimeType.MINUTE, 1)); UpdateKLineByKLine(code, period, dataFor15min); } } if (generate_KLine.dates_1hour.Count != 0) { period = new KLinePeriod(KLineTimeType.HOUR, 1); DoAfterGenerateKLinePeriod(generate_KLine.dates_1hour, period); if (IsOpenDateEquals(generate_KLine.dates_1min, generate_KLine.dates_1hour)) { UpdateKLineByKLine(code, period, data); } else { List <int> days = generate_KLine.dates_1hour; IKLineData dataFor1Hour = dataReaderFactory.KLineDataReader.GetData(code, days[0], days[days.Count - 1], new KLinePeriod(KLineTimeType.MINUTE, 1)); UpdateKLineByKLine(code, period, dataFor1Hour); } } if (generate_KLine.dates_Day.Count != 0) { period = new KLinePeriod(KLineTimeType.DAY, 1); DoAfterGenerateKLinePeriod(generate_KLine.dates_Day, period); if (IsOpenDateEquals(generate_KLine.dates_1min, generate_KLine.dates_Day)) { UpdateKLineByKLine(code, period, data); } else { List <int> days = generate_KLine.dates_Day; IKLineData dataForDay = dataReaderFactory.KLineDataReader.GetData(code, days[0], days[days.Count - 1], new KLinePeriod(KLineTimeType.MINUTE, 1)); UpdateKLineByKLine(code, period, dataForDay); } } }