Esempio n. 1
0
 public void ClearData()
 {
     DailyCandles.Clear();
     MinuteData.Clear();
     UnfilledGaps.Clear();
     GapFibRetraceLevels   = NewFibRetraceDictionary();
     GapFibExtensionLevels = NewFibExtensionDictionary();
 }
Esempio n. 2
0
        public void DeriveDailyFromMinute(Del counter)
        {
            DailyCandles.Clear();

            foreach (var(date, minuteCandles) in MinuteData)
            {
                var    cash          = false;
                double high          = 0;
                var    low           = double.PositiveInfinity;
                double open          = 0;
                double close         = 0;
                double previousClose = 0;

                var length = minuteCandles.Count;
                var i      = 0;

                foreach (var candle in minuteCandles)
                {
                    if (!cash && candle.IsCash)
                    {
                        open = (candle.AskOpen - candle.BidOpen) / 2 + candle.BidOpen;
                        cash = true;
                    }

                    if (candle.AskHigh > high && candle.IsCash)
                    {
                        high = candle.AskHigh;
                    }

                    if (candle.BidLow < low && candle.IsCash)
                    {
                        low = candle.BidLow;
                    }

                    if (cash && !candle.IsCash)
                    {
                        close = previousClose;
                        cash  = false;
                    }

                    previousClose = (candle.AskClose - candle.BidClose) / 2 + candle.BidClose;

                    // Handle cash only list
                    i++;
                    if (i == length && candle.IsCash)
                    {
                        close = (candle.AskClose - candle.BidClose) / 2 + candle.BidClose;
                    }
                }

                if (close != 0)
                {
                    var dailyCandle = new DailyCandle(date, open, high, low, close, 0);
                    DailyCandles.Add(dailyCandle);
                    counter();
                }
            }
        }