/// <summary> /// 所有的历史交易时段 /// </summary> /// <param name="market">市场类型</param> /// <param name="exchangeId">交易所ID</param> /// <param name="productId">期货和期货期权需要填写-ProductID</param> /// <returns>所有的交易时段</returns> public TradingFrameSeries GetAllTradingTimeFrames(EnumMarket market, string exchangeId, string productId = "") { if (market == EnumMarket.股票) { if (_dictStockTradingFrame.ContainsKey(exchangeId)) { return(_dictStockTradingFrame[exchangeId]); } } else if (market == EnumMarket.股票期权) { if (_dictStockOptionTradingFrame.ContainsKey(exchangeId)) { return(_dictStockOptionTradingFrame[exchangeId]); } } else if (market == EnumMarket.期货) { if (_dictFutureTradingFrame.ContainsKey(productId)) { return(_dictFutureTradingFrame[productId]); } } else if (market == EnumMarket.期货期权) { if (_dictFutureOptionTradingFrame.ContainsKey(productId)) { return(_dictFutureOptionTradingFrame[productId]); } } return(null); }
/// <summary> /// 获取默认的交易时段 /// </summary> /// <param name="market"></param> /// <param name="exchangeId"></param> /// <returns></returns> public List <TimeSlice> GetDefaultTradingFrame(EnumMarket market, string exchangeId) { if (market == EnumMarket.股票) { if (_dictDefaultStockTradingFrame.ContainsKey(exchangeId)) { return(_dictDefaultStockTradingFrame[exchangeId]); } } else if (market == EnumMarket.股票期权) { if (_dictDefaultStockOptionTradingFrame.ContainsKey(exchangeId)) { return(_dictDefaultStockOptionTradingFrame[exchangeId]); } } else if (market == EnumMarket.期货) { if (_dictDefaultFutureTradingFrame.ContainsKey(exchangeId)) { return(_dictDefaultFutureTradingFrame[exchangeId]); } } else if (market == EnumMarket.期货期权) { if (_dictDefaultFutureOptionTradingFrame.ContainsKey(exchangeId)) { return(_dictDefaultFutureOptionTradingFrame[exchangeId]); } } return(_defaultFrame); }
/// <summary> /// 创建文件读取类 /// </summary> /// <param name="market"></param> /// <returns></returns> public static FutureTickFileNew CreateTickFile(EnumMarket market) { switch (market) { case EnumMarket.期货: return(new FutureTickFileNew()); } throw new Exception("没有" + market.ToString() + "对应的Tick文件读取类"); }
/// <summary> /// Create a new bar file. /// </summary> /// <param name="filePath"></param> /// <param name="market"></param> /// <param name="barType"></param> /// <param name="period"></param> public BarFileV1(string filePath, EnumMarket market, EnumBarType barType = EnumBarType.иооМ, int period = 1) : base(filePath, new FileHeader { FileVersion = FileVersion, Period = period, Market = market, BarType = barType }) { }
public MqTickReader(string strFile, string futureId, EnumMarket market, string exCode) { _tickFileName = strFile; _futureId = futureId; _exCode = exCode; _firstRead = true; _bValid = false; _tradingDay = default(DateTime); _market = market; }
public TimeSpan GetCloseTime(DateTime tradingday, EnumMarket market, string exchangid, string productid = "") { List <TimeSlice> lstslice = GetTradingFrame(tradingday, market, exchangid, productid); if (lstslice != null && lstslice.Count > 0) { return(lstslice[lstslice.Count - 1].EndTime); } return(default(TimeSpan)); }
/// <summary> /// 获取最后的(当前执行的)交易时段 /// 实盘的时候调用这个方法 /// </summary> /// <param name="market">市场</param> /// <param name="exchangeId">交易所ID</param> /// <param name="productId">产品ID(股票和股票期权填空)</param> /// <returns>指定的交易时段</returns> public List <TimeSlice> GetLastTradingFrame(EnumMarket market, string exchangeId, string productId = "") { TradingFrameSeries frameSeries = GetAllTradingTimeFrames(market, exchangeId, productId); if (frameSeries != null) { return(frameSeries.Last.TradingTimes); } else { //没有历史数据,取其交易所的 return(GetDefaultTradingFrame(market, exchangeId)); } }
public TimeSlice GetLivingTime(DateTime tradingday, EnumMarket market, string exchangid, string productid = "") { List <TimeSlice> lstslice = GetTradingFrame(tradingday, market, exchangid, productid); if (lstslice != null && lstslice.Count > 0) { return(new TimeSlice() { BeginTime = lstslice[0].BeginTime, EndTime = lstslice[lstslice.Count - 1].EndTime }); } return(null); }
public bool Load( string strDir, List <string> instrIdlist, EnumMarket market, DateTime tradingDay) { _tfMgr.LoadData(strDir + "\\TradingFrame.xml"); switch (market) { case EnumMarket.期货: return(Load(strDir, instrIdlist, market, false)); } return(false); }
public TestTradeCase( string _insId, EnumMarket _market, string _exchange, EnumBuySell _direction, double _limitPrice, int _volume, int _year, int _month, int _day) { insId = _insId; Market = _market; ExchangeID = _exchange; Direction = _direction; LimitPrice = _limitPrice; Volume = _volume; Year = _year; Month = _month; Day = _day; }
/// <summary> /// 载入股票 /// </summary> /// <param name="strDir">配置目录</param> /// <param name="instrIdlist">品种代码表</param> /// <param name="market">市场</param> /// <param name="isLive">是否实盘</param> /// <returns></returns> public bool Load( string strDir, List <string> instrIdlist, EnumMarket market, bool isLive) { _tfMgr.LoadData(strDir + "\\TradingFrame.xml"); switch (market) { case EnumMarket.期货: #region FutureManager fmgr = new FutureManager(); if (isLive) { if (!FutureFile.Read(strDir, fmgr, instrIdlist, isLive)) { Clear(); return(false); } } else { if (!FutureFile.Read(strDir, fmgr)) { Clear(); return(false); } } Merge(fmgr); return(true); #endregion } return(false); }
/// <summary> /// 给定一个交易日,获取这个交易日的交易时段 /// </summary> /// <param name="theDate">指定交易日</param> /// <param name="market">市场</param> /// <param name="exchangeId">交易所ID</param> /// <param name="productId">产品ID(股票和股票期权填空)</param> /// <returns>指定的交易时段</returns> public List <TimeSlice> GetTradingFrame(DateTime theDate, EnumMarket market, string exchangeId, string productId = "") { if (theDate == default(DateTime)) { return(GetLastTradingFrame(market, exchangeId, productId)); } TradingFrameSeries frameSeries = GetAllTradingTimeFrames(market, exchangeId, productId); if (frameSeries != null) { List <TimeSlice> timeSlice = frameSeries.GetTradingTimes(theDate); if (timeSlice != null) { return(timeSlice); } } //如果找不到,则返回默认的 return(GetDefaultTradingFrame(market, exchangeId)); }
public List <Instrument> ExpandInstrument(string instId, EnumMarket market) { if (market == EnumMarket.股票期权) { if (instId.Length < 11) // 510050X8.SH { return(null); } if (instId.Contains("X")) { var refstock = instId.Remove(6, 2); if (_mapRefOptionCurMonth.ContainsKey(refstock)) { var curMonth = _mapRefOptionCurMonth[refstock]; #region 计算是哪个月的合约 switch (instId[7]) { case '7': // 下月 curMonth = curMonth.AddMonths(1); break; case '6': // 下季 { var itmp = curMonth.Month % 3; switch (itmp) { case 0: curMonth = curMonth.AddMonths(3); break; case 1: curMonth = curMonth.AddMonths(2); break; default: curMonth = curMonth.AddMonths(4); break; } break; } case '5': // 隔季 { var itmp = curMonth.Month % 3; switch (itmp) { case 0: curMonth = curMonth.AddMonths(6); break; case 1: curMonth = curMonth.AddMonths(5); break; default: curMonth = curMonth.AddMonths(7); break; } break; } } #endregion var lstInsts = new List <Instrument>(); foreach (var inst in AllInstruments) { if (inst is Option) { var option = inst as Option; if (option.RefInstrumentID == refstock && option.EndDate.Month == curMonth.Month) { lstInsts.Add(option); } } } return(lstInsts); } } } var instrument = this[instId]; if (instrument != null) { return(new List <Instrument>(1) { instrument }); } return(null); }