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");
        }
示例#3
0
        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));
        }