/// <summary> /// Looks for closing white marubozus. /// </summary> private void LookForClosingWhiteMarubozus(CandlestickAnalyzer candlestick, List<StockDaily> dailies, int index, DateTime date) { if (candlestick.IsClosingWhiteMarubozu()) { var peekIndex = index + 1; var lumens = 0; while (peekIndex < dailies.Count) { if (dailies[peekIndex].LowPrice > candlestick.Low) { lumens++; } else { break; } if (peekIndex - index >= 20) { break; } peekIndex++; } this.closingWhiteMarubozuNumOccurences++; this.closingWhiteMarubozuTotalLumens += lumens; this.closingWhiteMarubozuLumenRating = Convert.ToInt32(this.closingWhiteMarubozuTotalLumens / this.closingWhiteMarubozuNumOccurences); Console.WriteLine("Closing White Marubozus -- Symbol=" + candlestick.TickerSymbol + "; Date=" + date.ToShortDateString() + "; Lumens=" + lumens + "; Rating=" + this.closingWhiteMarubozuLumenRating); } }
/// <summary> /// Looks for closing white marubozus. /// </summary> private void LookForClosingWhiteMarubozus(CandlestickAnalyzer candlestick, List<StockDaily> dailies, int index, DateTime date) { if (candlestick.IsClosingWhiteMarubozu()) { var peekIndex = index + 1; var lumens = 0; while (peekIndex < dailies.Count) { if (dailies[peekIndex].LowPrice > candlestick.Low) { lumens++; } else { break; } if (peekIndex - index >= 100) { break; } peekIndex++; } this.closingWhiteMarubozuNumOccurences++; this.closingWhiteMarubozuTotalLumens += lumens; this.closingWhiteMarubozuLumenRating = Convert.ToInt32(this.closingWhiteMarubozuTotalLumens / this.closingWhiteMarubozuNumOccurences); Console.WriteLine("Closing White Marubozus -- Symbol=" + candlestick.TickerSymbol + "; Date=" + date.ToShortDateString() + "; Lumens=" + lumens + "; Rating=" + this.closingWhiteMarubozuLumenRating); using (var context = new StockScreenerEntities()) { if (context.CandlesticksToStocks.Count(entry => entry.CandlestickId == PatternIds.WhiteClosingMarubozu && entry.Ticker.Equals(candlestick.TickerSymbol)) > 0) { var candlestickToStock = context.CandlesticksToStocks.First( entry => entry.CandlestickId == PatternIds.WhiteClosingMarubozu && entry.Ticker.Equals(candlestick.TickerSymbol)); var newLumenRating = ((candlestickToStock.LumenRating * candlestickToStock.NumOccurrences) + lumens) / ++candlestickToStock.NumOccurrences; candlestickToStock.LumenRating = newLumenRating; } else { context.CandlesticksToStocks.AddObject(new CandlesticksToStock { CandlestickId = PatternIds.WhiteClosingMarubozu, Exchange = candlestick.Exchange, Ticker = candlestick.TickerSymbol, LumenRating = lumens, NumOccurrences = 1 }); } context.SaveChanges(); } } }