Пример #1
0
        public static List <DateTime> GetSchedule(this Frequency freq, DateTime EndDate, int Depth)
        {
            EndDate = freq.Adjust(EndDate, isNext: false);
            DateTime startDate = freq.Add(EndDate, -Depth);

            return(freq.GetSchedule(startDate, EndDate, IncludeEndDate: true));
        }
Пример #2
0
        public static List <DateTime> GetSchedule(this Frequency freq, DateTime Start, DateTime End, bool AdjustStart = false, bool IncludeEndDate = true)
        {
            if (Start > End)
            {
                throw new Exception($"The Start Date {Start.ToString()} must be before the End Date {End.ToString()}$");
            }
            long     DeltaSecs      = freq.GetFrequency(inSecs: true);
            DateTime EffectiveStart = Start < MinimumStartDate ? MinimumStartDate : Start;

            if (AdjustStart)
            {
                EffectiveStart = freq.Adjust(Start);
            }
            List <DateTime> res = new List <DateTime> {
                EffectiveStart
            };
            DateTime temp = EffectiveStart.AddSeconds(DeltaSecs);

            if (IncludeEndDate)
            {
                while (temp <= End)
                {
                    res.Add(temp); temp = temp.AddSeconds(DeltaSecs);
                }
            }
            else
            {
                while (temp < End)
                {
                    res.Add(temp); temp = temp.AddSeconds(DeltaSecs);
                }
            }
            return(res);
        }
Пример #3
0
        public static DateTime Add(this Frequency freq, DateTime date, int number = 1)
        {
            long     DeltaSecs   = freq.GetFrequency(inSecs: true);
            DateTime initialDate = freq.Adjust(date);

            return(initialDate.AddSeconds(number * DeltaSecs));
        }
Пример #4
0
        public Tuple <double, bool> GetFullData(CurrencyPair cp, DateTime date)
        {
            DateTime adjustedDate = FXMinimunFrequency.Adjust(date);

            try
            {
                XChangeRate xr = Data.GetQuote(adjustedDate, cp, isExactDate: true).Item2;
                return(new Tuple <double, bool> (xr.Rate, false));
            }
            catch
            {
                double value = 0;
                if (UseInternet)
                {
                    value = GetFXDataFromApi(cp, adjustedDate);
                }
                else
                {
                    XChangeRate xr = Data.GetQuote(Data.LastRealDate, cp, isExactDate: true).Item2;
                    value = xr.Rate;
                }
                Data.AddQuote(adjustedDate, new XChangeRate(value, cp));
                return(new Tuple <double, bool>(value, true));
            }
        }
        private void TenorTextBox_TextChanged(object sender, EventArgs e)
        {
            Tenor tnr = new Tenor(TenorTextBox.Text);

            if (tnr.IsTenor)
            {
                DateTimePicker.Value = ControlFreq.Adjust(DateTime.UtcNow.AddTenor("-" + TenorTextBox.Text));
            }
        }