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)); }
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); }
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)); }
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)); } }