all files / technicalindicators/lib/candlestick/ AbandonedBaby.js

100% Statements 21/21
100% Branches 7/7
100% Functions 2/2
100% Lines 21/21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                    
const CandlestickFinder = require('./CandlestickFinder');
const Doji              = require('./Doji');
 
 
class AbandonedBaby extends CandlestickFinder {
    constructor() {
        super();
        this.requiredCount  = 3;
    }
    logic (data) {
        let firstdaysOpen   = data.open[0];
        let firstdaysClose  = data.close[0];
        let firstdaysHigh   = data.high[0];
        let firstdaysLow    = data.low[0]
        let seconddaysOpen  = data.open[1];
        let seconddaysClose = data.close[1];
        let seconddaysHigh  = data.high[1];
        let seconddaysLow   = data.low[1]
        let thirddaysOpen   = data.open[2];
        let thirddaysClose  = data.close[2];
        let thirddaysHigh   = data.high[2];
        let thirddaysLow    = data.low[2];
         
        let isFirstBearish  = firstdaysClose<firstdaysOpen;
        let dojiExists      =  new Doji().hasPattern({
                                    "open" : [seconddaysOpen],
                                    "close": [seconddaysClose],
                                    "high" : [seconddaysHigh],
                                    "low"  : [seconddaysLow]
                                });
        let gapExists       = ((seconddaysHigh < firstdaysLow) && 
                              (thirddaysLow > seconddaysHigh) && 
                              (thirddaysClose > thirddaysOpen));
        let isThirdBullish  = (thirddaysHigh< firstdaysOpen);                  
        return (isFirstBearish && dojiExists && gapExists && isThirdBullish );
     }
}
 
module.exports = AbandonedBaby;