/// <summary> /// 得到单日的K线数据 /// </summary> /// <param name="code"></param> /// <param name="date"></param> /// <param name="period"></param> /// <returns></returns> public virtual IKLineData GetKLineData(string code, int date, KLinePeriod period) { string path = CsvHistoryData_PathUtils.GetKLineDataPath(GetCsvDataPath(), code, date, period); if (!File.Exists(path)) { return(null); } return(CsvUtils_KLineData.Load(path)); }
public virtual ITradingTime GetDefaultTradingTime() { List <ITradingTime> tts = CsvUtils_TradingTime.Load(CsvHistoryData_PathUtils.GetDefaultTradingTimePath(GetCsvDataPath())); if (tts == null || tts.Count == 0) { return(null); } return(tts[0]); }
/// <summary> /// 得到现有的K线所有数据 /// </summary> /// <param name="code"></param> /// <returns></returns> public IList <int> GetKLineDataDays(string code) { string klinePath = CsvHistoryData_PathUtils.GetKLineDataPath(GetCsvDataPath(), code, KLinePeriod.KLinePeriod_1Minute); string[] files = Directory.GetFiles(klinePath); List <int> klineDays = new List <int>(files.Length); for (int i = 0; i < files.Length; i++) { string file = files[i]; int startIndex = file.LastIndexOf('_') + 1; klineDays.Add(int.Parse(file.Substring(startIndex, 8))); } return(klineDays); }
/// <summary> /// 得到现有的tick所有数据 /// </summary> /// <param name="code"></param> /// <returns></returns> public IList <int> GetTickDataDays(string code) { string tickPath = CsvHistoryData_PathUtils.GetTickDataPath(GetCsvDataPath(), code); if (!Directory.Exists(tickPath)) { return(null); } string[] files = Directory.GetFiles(tickPath); List <int> tickDays = new List <int>(files.Length); for (int i = 0; i < files.Length; i++) { string file = files[i]; int startIndex = file.LastIndexOf('_') + 1; tickDays.Add(int.Parse(file.Substring(startIndex, 8))); } return(tickDays); }
/// <summary> /// 得到所有开盘日的开盘时间 /// 实现该方法的原因: /// 系统需要有一个方法来获取指定日期的K线,比如获取20130106的1分钟K线 /// 由于所有1分钟K线是保存在一个文件里的,系统无法获取20130106开盘那根K线的起始位置。 /// 所以此处需要获取开盘时间数据 /// /// 各个市场的开盘时间数据很混乱: /// 比如中国期货市场就有夜盘,而夜盘在交易时间上算是第二天,所以20160105可能在20160104就开盘了 /// </summary> /// <param name="code"></param> /// <returns></returns> public virtual List <TradingSession> GetTradingSessions(String code) { return(CsvUtils_TradingSession.Load(CsvHistoryData_PathUtils.GetTradingSessionPath(GetCsvDataPath(), code))); }
/// <summary> /// 得到所有开盘日 /// </summary> /// <returns></returns> public virtual List <int> GetTradingDays() { return(CsvUtils_TradingDay.Load(CsvHistoryData_PathUtils.GetTradingDaysPath(GetCsvDataPath()))); }
/// <summary> /// 该插件提供的所有股票或期货信息 /// </summary> /// <returns></returns> public virtual List <CodeInfo> GetInstruments() { return(CsvUtils_Code.Load(CsvHistoryData_PathUtils.GetInstrumentsPath(GetCsvDataPath()))); }
public virtual IList <MainContractInfo> GetMainContractInfos() { string mainFuturesPath = CsvHistoryData_PathUtils.GetMainFuturesPath(GetCsvDataPath()); return(TextExchangeUtils.Load <MainContractInfo>(mainFuturesPath, typeof(MainContractInfo))); }
private bool Exist(string code, int date, KLinePeriod period) { string path = CsvHistoryData_PathUtils.GetKLineDataPath(GetCsvDataPath(), code, date, period); return(File.Exists(path)); }
/// <summary> /// 得到股票或期货的Tick数据 /// </summary> /// <param name="code"></param> /// <param name="date"></param> /// <returns></returns> public virtual ITickData GetTickData(String code, int date) { return(CsvUtils_TickData.Load(CsvHistoryData_PathUtils.GetTickDataPath(GetCsvDataPath(), code, date))); }
public virtual IList <ITradingTime> GetTradingTime(string code) { return(CsvUtils_TradingTime.Load(CsvHistoryData_PathUtils.GetTradingTimePath(GetCsvDataPath(), code))); }