コード例 #1
0
        private static Dictionary <long, ContractDetail> GetContractFromDB()
        {
            var contracts = GetDbContracts();

            if (contracts == null)
            {
                return(null);
            }

            var result = new Dictionary <long, ContractDetail>();

            foreach (var contract in contracts)
            {
                var detail = new ContractDetail
                {
                    ContractID       = contract.ContractID,
                    VarietyID        = contract.VarietyID,
                    Symbol           = contract.Code,
                    ContractName     = contract.ContractName,
                    Exchange         = (Exchange)contract.Exchange,
                    OpenDate         = contract.OpenDate,
                    ExpireDate       = contract.ExpireDate,
                    FutureType       = FutureType.General,
                    StartDeliverDate = contract.StartDeliverDate,
                    EndDeliverDate   = contract.StartDeliverDate
                };
                result.Add(contract.ContractID, detail);
            }
            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 获取期现合约
        /// </summary>
        /// <returns></returns>
        public static List <ContractDetail> GetAllFutureSpotContract()
        {
            var allFutureSpots     = new List <ContractDetail>();
            var allVarietyIds      = SpotContractDao.GetAllVarietyId();
            var allFutureContracts = GetActiveContracts().Where(p => p.FutureType == FutureType.General).ToList();

            allFutureContracts = allFutureContracts.Where(p => allVarietyIds.Contains((int)p.VarietyID)).ToList();
            var allSpotContracts = SpotContractDao.GetAll();

            foreach (var item in allFutureContracts)
            {
                var spotContract = allSpotContracts.FirstOrDefault(p => p.VarietyID == item.VarietyID);
                if (spotContract == null)
                {
                    continue;
                }

                var contract = new ContractDetail();
                contract.ContractID     = item.ContractID;
                contract.VarietyID      = item.VarietyID;
                contract.Symbol         = string.Format("{0}&XH", item.Symbol);
                contract.ContractName   = string.Format("{0}期现", item.ContractName);
                contract.Exchange       = item.Exchange;
                contract.FutureType     = FutureType.FutureSpot;
                contract.ExpireDate     = item.ExpireDate;
                contract.EndDeliverDate = item.EndDeliverDate;
                allFutureSpots.Add(contract);
            }
            return(allFutureSpots);
        }
コード例 #3
0
        /// <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);
        }