public void DownTrend_Wrong_Period_Return_False() { var context = new TestCandlesContext() .WithCandleIndex(3); var downTrendPattern = new DownTrend(); var match = downTrendPattern.Match(context); Assert.False(match.Success); }
public void Is_DownTrend_Test() { var context = new TestCandlesContext() .WithDownTrend() .WithCandleIndex(3); var downTrendPattern = new DownTrend(); var match = downTrendPattern.Match(context); Assert.True(match.Success, "Candles create an DownTrend pattern"); }
public CandlePatternMatch Match(IAnalyzableContext analyzableContext) { var candle = analyzableContext.TimeBarAtIndex; if (candle.Open == candle.Close) { return(CandlePatternMatch.NoMatch); } var upTrendContext = new CandlestickContext(analyzableContext.TimeBars, analyzableContext.TimeBarIndexToAnalyze - 1); var isDownTrendMatch = downTrendPattern.Match(upTrendContext); if (!isDownTrendMatch.Success) { return(CandlePatternMatch.NoMatch); } var sizeFromHighToLow = candle.SizeFromHighToLow(); var isHammer = sizeFromHighToLow > RealBodyMultiplier *candle.RealBody() && candle.LowerShadow() / (Treshold + sizeFromHighToLow) < LowerWickLengthRatio; return(new CandlePatternMatch(isHammer, true)); }