/// <summary> /// Looks for opening white marubozus. /// </summary> private void LookForOpeningWhiteMarubozus(CandlestickAnalyzer candlestick, List<StockDaily> dailies, int index, DateTime date) { if (candlestick.IsOpeningWhiteMarubozu()) { 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.openingWhiteMarubozuNumOccurences++; this.openingWhiteMarubozuTotalLumens += lumens; this.openingWhiteMarubozuLumenRating = Convert.ToInt32(this.openingWhiteMarubozuTotalLumens / this.openingWhiteMarubozuNumOccurences); Console.WriteLine("Opening White Marubozus -- Symbol=" + candlestick.TickerSymbol + "; Date=" + date.ToShortDateString() + "; Lumens=" + lumens + "; Rating=" + this.openingWhiteMarubozuLumenRating); } }
/// <summary> /// Looks for opening white marubozus. /// </summary> private void LookForOpeningWhiteMarubozus(CandlestickAnalyzer candlestick, List<StockDaily> dailies, int index, DateTime date) { if (candlestick.IsOpeningWhiteMarubozu()) { 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.openingWhiteMarubozuNumOccurences++; this.openingWhiteMarubozuTotalLumens += lumens; this.openingWhiteMarubozuLumenRating = Convert.ToInt32(this.openingWhiteMarubozuTotalLumens / this.openingWhiteMarubozuNumOccurences); Console.WriteLine("Opening White Marubozus -- Symbol=" + candlestick.TickerSymbol + "; Date=" + date.ToShortDateString() + "; Lumens=" + lumens + "; Rating=" + this.openingWhiteMarubozuLumenRating); using (var context = new StockScreenerEntities()) { if (context.CandlesticksToStocks.Count(entry => entry.CandlestickId == PatternIds.WhiteOpeningMarubozu && entry.Ticker.Equals(candlestick.TickerSymbol)) > 0) { var candlestickToStock = context.CandlesticksToStocks.First( entry => entry.CandlestickId == PatternIds.WhiteOpeningMarubozu && 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.WhiteOpeningMarubozu, Exchange = candlestick.Exchange, Ticker = candlestick.TickerSymbol, LumenRating = lumens, NumOccurrences = 1 }); } context.SaveChanges(); } } }