UNPKG

@sunrise1002/tats

Version:

Techincal Indicators written in javascript

36 lines (35 loc) 1.45 kB
import CandlestickFinder from './CandlestickFinder'; export default class ThreeWhiteSoldiers extends CandlestickFinder { constructor() { super(); this.name = 'ThreeWhiteSoldiers'; this.requiredCount = 3; } logic(data, needGap) { 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 isUpTrend = seconddaysHigh > firstdaysHigh && thirddaysHigh > seconddaysHigh; let isAllBullish = firstdaysOpen < firstdaysClose && seconddaysOpen < seconddaysClose && thirddaysOpen < thirddaysClose; let doesOpenWithinPreviousBody = firstdaysClose > seconddaysOpen && seconddaysOpen < firstdaysHigh && seconddaysHigh > thirddaysOpen && thirddaysOpen < seconddaysClose; return (isUpTrend && isAllBullish && (!needGap || doesOpenWithinPreviousBody)); } } export function threewhitesoldiers(data, needGap) { return new ThreeWhiteSoldiers().hasPattern(data, needGap); }