コード例 #1
0
        public static bool BullishMorningStar(Candle candle, Candle prevCandle, Candle prevPrevCandle)
        {
            bool cond1 = (candle.High > prevCandle.High && candle.Close > prevCandle.High) ? true : false;
            bool cond2 = (candle.Open > prevCandle.Close) ? true : false;
            bool cond3 = (prevPrevCandle.High > prevCandle.High && prevPrevCandle.Open > prevCandle.High) ? true : false;
            bool cond4 = (prevPrevCandle.Close > prevCandle.Close) ? true : false;
            double midPoint = (prevPrevCandle.Close + prevPrevCandle.Open) / 2;
            bool cond5 = (candle.Close > midPoint) ? true : false;

            if (candle.IsBuy() && (prevCandle.IsBuy() || prevCandle.IsSell()) && prevPrevCandle.IsSell() && cond1 && cond2 && cond3 && cond4 && cond5)
                return true;

            return false;
        }
コード例 #2
0
        public static bool BullishHarami(Candle candle, Candle prevCandle)
        {
            bool cond1 = (candle.High < prevCandle.High) ? true : false;
            bool cond2 = (candle.Low > prevCandle.Low) ? true : false;
            bool cond3 = (candle.Open < prevCandle.Close) ? true : false;
            bool cond4 = (candle.Close > prevCandle.Open) ? true : false;
            bool cond5 = (candle.Close < prevCandle.Close) ? true : false;
            bool cond6 = (candle.Open > prevCandle.Open) ? true : false;
            double midPoint = (prevCandle.Open + prevCandle.Close) * 0.5;
            bool cond7 = (candle.Close >= midPoint) ? true : false;
            bool cond8 = (candle.Close <= midPoint) ? true : false;

            if (candle.IsSell() && prevCandle.IsBuy() && cond1 && cond2 && cond3 && cond4 && cond7)
                return true;

            if (candle.IsBuy() && prevCandle.IsBuy() && cond1 && cond2 && cond5 && cond6 && cond8)
                return true;

            return false;
        }
コード例 #3
0
        // Bullish reversal patterns
        public static bool BullishEngulfing(Candle candle, Candle prevCandle)
        {
            bool cond1 = (candle.High > prevCandle.High) ? true : false;
            bool cond2 = (candle.High > prevCandle.Open) ? true : false;
            bool cond3 = (candle.Close > prevCandle.High) ? true : false;
            bool cond4 = (candle.Close >= prevCandle.Open) ? true : false;
            bool cond5 = (candle.Low < prevCandle.Close) ? true : false;
            bool cond6 = (candle.Low < prevCandle.Low) ? true : false;
            bool cond7 = (candle.Open <= prevCandle.Close) ? true : false;
            bool cond8 = (candle.Open < prevCandle.Low) ? true : false;
            double midPoint = (candle.Close + candle.Open) * 0.5;
            bool cond9 = (prevCandle.High >= midPoint) ? true : false;
            bool cond10 = (prevCandle.Low <= midPoint) ? true : false;

            // Ideally situation
            if (candle.IsBuy() && prevCandle.IsSell() && cond1 && cond2 && cond3 && cond4 && cond5 && cond6 && cond7 && cond7 && cond9 && cond10)
                if (!IsDojiCandles(candle, prevCandle))
                    return true;

            // Normal situation
            if (candle.IsBuy() && prevCandle.IsSell() && cond1 && cond4 && cond6 && cond7 && cond9 && cond10)
                if (!IsDojiCandles(candle, prevCandle))
                    return true;

            return false;
        }
コード例 #4
0
 public static bool BullishHammer(Candle candle)
 {
     double point = candle.High - (candle.High - candle.Low) * 0.3;
     if ((candle.IsBuy() || candle.IsSell()) && candle.Close > point && candle.Open > point)
         return true;
     return false;
 }
コード例 #5
0
        public static bool BearishEveningStar(Candle candle, Candle prevCandle, Candle prevPrevCandle)
        {
            bool cond1 = (candle.Low < prevCandle.Low && candle.Close < prevCandle.Low) ? true : false;
            bool cond2 = (candle.Open < prevCandle.Close) ? true : false;
            bool cond3 = (prevPrevCandle.Low < prevCandle.Low && prevPrevCandle.Open < prevCandle.Low) ? true : false;
            bool cond4 = (prevPrevCandle.Close < prevCandle.Close) ? true : false;
            double midPoint = (prevPrevCandle.Close + prevPrevCandle.Open) / 2;
            bool cond5 = (candle.Close < midPoint) ? true : false;

            if (candle.IsSell() && (prevCandle.IsBuy() || prevCandle.IsSell()) && prevPrevCandle.IsBuy() && cond1 && cond2 && cond3 && cond4 && cond5)
                return true;

            return false;
        }