Ejemplo n.º 1
0
        /// <summary>
        /// Auxiliary function in order to fill in the FX Market History (including the increasing Frequency feature)
        /// </summary>
        /// <param name="fxmh"></param>
        /// <param name="cpts"></param>
        /// <param name="startDate"></param>
        private void FillFXMarketHistory(FXMarketHistory fxmh, CurrencyPairTimeSeries cpts, DateTime startDate)
        {
            List <Tuple <DateTime, double> > ts = GetTimeSeries(cpts, isIndex: false, startDate: startDate);

            if (ts.Count > 0)
            {
                foreach (Tuple <DateTime, double> item in ts)
                {
                    fxmh.AddQuote(item.Item1, new XChangeRate(item.Item2, cpts.CurPair));
                }
            }
            DateTime firstDate = fxmh.GetFirstDate(cpts.CurPair);

            if (firstDate > startDate)
            {
                CurrencyPairTimeSeries newCpts = (CurrencyPairTimeSeries)cpts.Clone();
                newCpts.IncreaseFreq();
                if (newCpts.Freq != Frequency.None)
                {
                    FillFXMarketHistory(fxmh, newCpts, startDate);
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Create, Update and Save OHLC data (as much as needed)
 /// </summary>
 /// <param name="itsk"></param>
 /// <param name="useLowerFrequencies"></param>
 public void LoadOHLC(ITimeSeriesKey itsk, bool useLowerFrequencies = false)
 {
     if (itsk.GetKeyType() == TimeSeriesKeyType.CurrencyPair)
     {
         CurrencyPairTimeSeries cpts = CurrencyPairTimeSeries.RequestIDToCurrencyPairTimeSeries(itsk.GetTimeSeriesKey());
         if (!cpts.CurPair.IsIdentity)
         {
             if (cpts.Freq == Frequency.None)
             {
                 cpts.Freq = SavingMinimumFrequency.GetNextFrequency();
             }
             List <Frequency> freqList = (useLowerFrequencies && SaveableFrequency(cpts.Freq)) ? cpts.Freq.GetFrequencyList() : new List <Frequency> {
                 cpts.Freq
             };
             foreach (Frequency item in freqList)
             {
                 CurrencyPairTimeSeries newCpts = (CurrencyPairTimeSeries)cpts.Clone();
                 newCpts.Freq = item;
                 LoadOHLCCore(newCpts);
             }
         }
     }
 }