示例#1
0
        public static DataTable LoadCovMatrix()
        {
            DateTime  FolderDate;
            string    DirectoyRoot = DirectoryNames.GetDirectoryName("overnightCandlestick");
            string    FullFolderName;
            DataTable CovMatrix = null;

            for (int i = 1; i < 6; i++)
            {
                FolderDate     = BusinessDays.GetBusinessDayShifted(-i);
                FullFolderName = DirectoyRoot + DirectoryNames.GetDirectoryExtension(FolderDate);

                double CovDataIntegrity = Convert.ToDouble(FromTxt2List.LoadFile(FullFolderName + "/covDataIntegrity.txt")[0]);

                if (i > 1)
                {
                    Console.WriteLine("Most recent covFile not available or lower quality! ");
                }

                if (CovDataIntegrity > 80)
                {
                    CovMatrix = IOUtilities.ExcelDataReader.LoadFile(FullFolderName + "/cov_matrix.xlsx").Tables["cov_matrix"];
                    break;
                }
            }
            return(CovMatrix);
        }
示例#2
0
 public BusinessWeek(string instanceName, TimeSpan startTime, TimeSpan endTime, params DayOfWeek[] dayOfWeeks) : this(instanceName)
 {
     if (dayOfWeeks != null)
     {
         for (int i = 0; i < dayOfWeeks.Length; i++)
         {
             BusinessDays.Add(new BusinessDay(dayOfWeeks[i], startTime, endTime));
         }
     }
 }
示例#3
0
        /// <summary>
        /// Primary constructor
        /// </summary>
        public apiInitialize(string u, string p)
        {
            m_username   = u;
            m_password   = p;
            OutputFolder = "C:/Research/data/intraday_data/tt_api/" + BusinessDays.GetDirectoryExtension(DateTime.Now.Date);
            System.IO.Directory.CreateDirectory(OutputFolder);

            sw      = new StreamWriter(OutputFolder + "/ContractList.csv");
            plsList = new List <ProductLookupSubscription>();
        }
        public ActionResult CheckOut()
        {
            BusinessDays BookDdate         = new BusinessDays();
            var          receivedDatedTime = DateTime.Now;
            double       workdays          = 2;
            DateTime     PickUpDueDate     = DateTime.Now;

            ViewBag.PickUpDueDate = BusinessDays.GetDueDate(receivedDatedTime, workdays, PickUpDueDate);
            return(View());
        }
示例#5
0
 /// <summary>
 /// 清空工作单元
 /// </summary>
 public void ClearBusinessDays()
 {
     if (InstanceName == nameof(Default))
     {
         throw new InvalidOperationException($"Operation is forbidden as the default instance.");
     }
     if (BusinessDays != null)
     {
         BusinessDays.Clear();
     }
 }
示例#6
0
 /// <summary>
 /// 添加工作单元
 /// </summary>
 /// <param name="businessDay"></param>
 public void AddBusinessDay(BusinessDay businessDay)
 {
     if (InstanceName == nameof(Default))
     {
         throw new InvalidOperationException($"Operation is forbidden as the default instance.");
     }
     if (businessDay != null)
     {
         BusinessDays.Add(businessDay);
     }
 }
示例#7
0
 /// <summary>
 /// 验证当前实例是否存在工作单元
 /// </summary>
 /// <param name="throwException"></param>
 /// <returns></returns>
 ///
 protected virtual bool Validate(bool throwException)
 {
     if (BusinessDays.Any())
     {
         return(true);
     }
     if (throwException)
     {
         throw new InvalidOperationException($"The {nameof(BusinessDays)} property must have at least one {nameof(BusinessDay)}.");
     }
     return(false);
 }
示例#8
0
 /// <summary>
 /// 批量添加工作单元
 /// </summary>
 /// <param name="businessDays"></param>
 public void AddBusinessDays(IList <BusinessDay> businessDays)
 {
     if (InstanceName == nameof(Default))
     {
         throw new InvalidOperationException($"Operation is forbidden as the default instance.");
     }
     if (businessDays != null)
     {
         foreach (var item in businessDays)
         {
             BusinessDays.Add(item);
         }
     }
 }
示例#9
0
        /// <summary>
        /// Saves the BusinessDays
        /// </summary>
        /// <param name="businessDaysDTO"></param>
        /// <returns></returns>
        public bool SaveBusinessDays(List <BusinessModel.BusinessModels.BusinessDays> businessDaysDTO)
        {
            try
            {
                List <BusinessDays> businessDays        = new List <DomainModel.DomainModels.BusinessDays>();
                List <BusinessDays> businessDaysUpdated = new List <DomainModel.DomainModels.BusinessDays>();

                foreach (BusinessModel.BusinessModels.BusinessDays businessDayDTO in businessDaysDTO)
                {
                    BusinessDays businessDay = _m3pactContext.BusinessDays.FirstOrDefault(x => x.MonthId == businessDayDTO.MonthID && x.Year == businessDayDTO.Year);
                    BusinessDays businessDayModel;
                    if (businessDay != null)
                    {
                        businessDayModel = businessDay;
                        businessDaysUpdated.Add(businessDayModel);
                    }
                    else
                    {
                        businessDayModel             = new BusinessDays();
                        businessDayModel.CreatedDate = DateTime.UtcNow;
                        businessDayModel.CreatedBy   = userContext.UserId;
                        businessDays.Add(businessDayModel);
                    }
                    businessDayModel.BusinessDays1 = businessDayDTO.NumberOfBusinessDays;
                    businessDayModel.Year          = businessDayDTO.Year;
                    businessDayModel.MonthId       = businessDayDTO.MonthID;
                    businessDayModel.RecordStatus  = businessDayDTO.RecordStatus;
                    businessDayModel.ModifiedBy    = userContext.UserId;
                    businessDayModel.ModifiedDate  = DateTime.UtcNow;;
                }
                if (businessDaysUpdated.Count > 0)
                {
                    _m3pactContext.BusinessDays.UpdateRange(businessDaysUpdated);
                }
                if (businessDays.Count > 0)
                {
                    _m3pactContext.AddRange(businessDays);
                }
                if (businessDaysUpdated.Count > 0 || businessDays.Count > 0)
                {
                    _m3pactContext.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#10
0
 /// <summary>
 /// 移除周中指定天的工作单元
 /// </summary>
 /// <param name="dayOfWeek"></param>
 public void RemoveBusinessDays(DayOfWeek dayOfWeek)
 {
     if (InstanceName == nameof(Default))
     {
         throw new InvalidOperationException($"Operation is forbidden as the default instance.");
     }
     if (BusinessDays != null)
     {
         var toRemove = BusinessDays.Where(o => o.DayOfWeek == dayOfWeek);
         foreach (var item in toRemove)
         {
             BusinessDays.Remove(item);
         }
     }
 }
示例#11
0
        private Dictionary <DayOfWeek, IList <BusinessDay> > GetDayTree()
        {
            if (_dayTree != null)
            {
                return(_dayTree);
            }
            _dayTree = new Dictionary <DayOfWeek, IList <BusinessDay> >();
            var days = BusinessDays.OrderBy(o => o.DayOfWeek).ThenBy(o => o.StartTime).ToList();

            foreach (var day in days)
            {
                if (!_dayTree.ContainsKey(day.DayOfWeek))
                {
                    _dayTree.Add(day.DayOfWeek, new List <BusinessDay>());
                }
                _dayTree[day.DayOfWeek].Add(day);
            }
            return(_dayTree);
        }
示例#12
0
 /// <summary>
 /// 判断指定时间点是否处于工作时间
 /// </summary>
 /// <param name="date"></param>
 /// <returns></returns>
 public bool IsBusinessDay(DateTime date)
 {
     return(BusinessDays.Any(day => day.IsBusinessDay(date)));
 }
        public static IEnumerable <ContractVolume> GetContractVolumes(DateTime folderDate)
        {
            ContractVolumeFolder = DirectoryNames.GetDirectoryName("ttapiContractVolume") + DirectoryNames.GetDirectoryExtension(BusinessDays.GetBusinessDayShifted(-1));
            var sr     = new StreamReader(ContractVolumeFolder + "/ContractList.csv");
            var reader = new CsvHelper.CsvReader(sr);

            reader.Configuration.RegisterClassMap(new MyClassMap());
            ContractVolumeList = reader.GetRecords <ContractVolume>().ToList();

            for (int i = 0; i < ContractVolumeList.Count(); i++)
            {
                string[] words = ContractVolumeList[i].instrumentName.Split();
                ContractVolumeList[i].SeriesKey = words[words.Count() - 1];
            }

            return(ContractVolumeList);
        }
        public static IEnumerable <ContractVolume> GetContractVolumes()
        {
            DateTime folderDate = BusinessDays.GetBusinessDayShifted(-1);

            return(GetContractVolumes(folderDate));
        }
示例#15
0
        /// <summary>
        /// Primary constructor
        /// </summary>
        public MarketRecorder(string u, string p)
        {
            m_username = u;
            m_password = p;

            OutputFolder = TA.DirectoryNames.GetDirectoryName(ext: "ttapiBidAsk") + TA.DirectoryNames.GetDirectoryExtension(DateTime.Now.Date);

            System.IO.Directory.CreateDirectory(OutputFolder);

            PriceFileDictionary = new Dictionary <string, StreamWriter>();
            FilteredList        = new List <ttapiTicker>();

            DateTime referanceDate = DateTime.Today;

            EndTime = new DateTime(referanceDate.Year, referanceDate.Month, referanceDate.Day, 15, 45, 0);


            ContractVolumeList = TA.LoadContractVolumeFile.GetContractVolumes(folderDate: BusinessDays.GetBusinessDayShifted(-1));
            FilteredList       = ContractVolumeList.Where(x => x.Volume > 100).ToList().OfType <ttapiTicker>().ToList();

            string [] TickerHeadList = ContractUtilities.ContractMetaInfo.cmeFuturesTickerheadList.Union(ContractUtilities.ContractMetaInfo.iceFuturesTickerheadList).ToArray();

            LiquidContractList = new ContractUtilities.ContractList(TickerHeadList);
            //LiquidDbTickerList = LiquidContractList.dbTickerList;
            LiquidDbTickerList = new List <string>();

            for (int i = 0; i < FilteredList.Count; i++)
            {
                //Console.WriteLine(FilteredList[i].instrumentName);
                PriceFileDictionary.Add(FilteredList[i].instrumentName, new StreamWriter(OutputFolder + "/" + FilteredList[i].instrumentName.Replace("/", "-").Replace(":", "-") + ".csv"));
            }

            TTAPISubs = new ttapiUtils.Subscription(m_username, m_password);
            TTAPISubs.TTAPITickerList    = FilteredList;
            TTAPISubs.LiquidDbTickerList = LiquidDbTickerList;
            TTAPISubs.ilsUpdateList      = new List <EventHandler <InstrumentLookupSubscriptionEventArgs> > {
                TTAPISubs.startPriceSubscriptions
            };
            TTAPISubs.AsuUpdateList = new List <EventHandler <AuthenticationStatusUpdateEventArgs> > {
                TTAPISubs.startInstrumentLookupSubscriptionsFromTTAPITickers
            };
            TTAPISubs.priceUpdatedEventHandler = m_ps_FieldsUpdated;
        }