UNPKG

@gabriel3615/ta_analysis

Version:

stock ta analysis

27 lines (26 loc) 1.19 kB
import { backtestStrategiesConfig } from '../strategyConfig.js'; import { analyzeRange } from '../../analyzer/range/rangeDetector.js'; export function RangeBreakoutStrategy(symbol, timeframe, params = {}) { const { minQuality = backtestStrategiesConfig.rangeBreakout.minQuality, requireRetest = backtestStrategiesConfig.rangeBreakout.requireRetest, } = params; return { name: 'RangeBreakout', generateSignal(history, i) { if (i < 60) return null; const window = history.slice(Math.max(0, i - 200), i + 1); const res = analyzeRange(symbol, window, timeframe); if (!res.breakout) return null; if (requireRetest && !res.breakout.retested) return null; if ((res.breakout.qualityScore ?? 0) < minQuality) return null; return { timestamp: history[i].timestamp, direction: res.breakout.direction === 'up' ? 'long' : 'short', strength: res.breakout.qualityScore, reason: 'Range breakout' + (requireRetest ? ' with retest' : ''), }; }, }; }