Beispiel #1
0
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <returns>
        /// key:品种编码
        /// value:字典[beginTime, endTime]
        /// </returns>
        public static Dictionary <string, string> GetBy(string variCode)
        {
            var variID = VarietyDao.GetVarietyID(variCode);

            if (variID <= 0)
            {
                return(new Dictionary <string, string>());
            }
            return(GetBy(variID));
        }
        /// <summary>
        /// 是否交易时间
        /// </summary>
        /// <param name="time"></param>
        /// <param name="vid">品种编号</param>
        /// <param name="defaultValue">出错时的默认值</param>
        /// <returns></returns>
        public static bool IsTradingTime(DateTime time, long vid, bool defaultValue = true)
        {
            var vari = VarietyDao.Get(vid);

            if (vari == null)
            {
                return(defaultValue);
            }
            return(IsTradingTime(time, vari.TradeTimeList, defaultValue));
        }
        /// <summary>
        /// 获取交易开始时间
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static DateTime GetTradingBeginTime(DateTime time, long vid)
        {
            var vari = VarietyDao.Get(vid);

            if (vari == null)
            {
                return(time.Date.AddHours(-9));
            }
            bool isHasNight = vari.IsNight();
            var  openTime   = vari.GetOpenTime();

            return(GetBeginTime(time, openTime, isHasNight));
        }
        public static bool IsNight(long contractId)
        {
            if (!AllContractDao.IsIndustryIndexContract(contractId))
            {
                var variety = VarietyDao.Get(contractId);
                if (variety == null)
                {
                    return(false);
                }

                return(variety.IsNight());
            }

            return(IndexOpenTimeDao.IsNight(contractId));
        }
        /// <summary>
        /// 根据合约和当前时间 判断下个间隔时间
        /// </summary>
        /// <param name="time">当前时间</param>
        /// <param name="contractId">合约ID</param>
        /// <param name="minute">间隔分钟</param>
        /// <returns></returns>
        public static DateTime GetNextTime(DateTime time, long contractId, int minute)
        {
            var contract = AllContractDao.Get(contractId);

            if (contract == null)
            {
                return(DateTime.MinValue);
            }
            if (!AllContractDao.IsIndustryIndexContract(contractId))
            {
                return(VarietyDao.GetNextTime(time, contract.VarietyID, minute));
            }
            var tradeTimeRange = IndexOpenTimeDao.GetTimeRanges(contractId);

            return(VarietyDao.GetNextTimeByContractId(time, tradeTimeRange, contractId, minute));
        }
        /// <summary>
        /// 获取所有现货合约
        /// </summary>
        /// <returns></returns>
        public static List <ContractDetail> GetAllSpotContract()
        {
            var allSpotContracts = SpotContractDao.GetAll();
            var allFutureSpots   = new List <ContractDetail>();

            foreach (var contract in allSpotContracts)
            {
                var model   = new ContractDetail();
                var variety = VarietyDao.Get(contract.VarietyID);
                if (variety != null)
                {
                    model.Exchange = variety.EID;
                }
                model.ContractID   = contract.SpotID;
                model.VarietyID    = contract.VarietyID;
                model.Symbol       = contract.SpotCode;
                model.ContractName = contract.SpotName;
                model.FutureType   = FutureType.Spot;
                allFutureSpots.Add(model);
            }

            return(allFutureSpots);
        }