public void ClearData() { DailyCandles.Clear(); MinuteData.Clear(); UnfilledGaps.Clear(); GapFibRetraceLevels = NewFibRetraceDictionary(); GapFibExtensionLevels = NewFibExtensionDictionary(); }
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(); } } }