@gabriel3615/ta_analysis
Version:
stock ta analysis
41 lines (40 loc) • 1.45 kB
JavaScript
import { TradeDirection } from '../../../types.js';
function clamp(value, min = 0, max = 100) {
return Math.max(min, Math.min(max, value));
}
export function createRangePlugin() {
return {
id: 'range',
category: 'additional',
extract(input, _context) {
const r = input.analyses.range;
let direction = TradeDirection.Neutral;
let confidence = 50;
if (r.breakout) {
direction =
r.breakout.direction === 'up'
? TradeDirection.Long
: TradeDirection.Short;
confidence = r.breakout.qualityScore ?? 60;
if (r.breakout.volumeExpansion)
confidence += 10;
if (r.breakout.followThrough)
confidence += 10;
if (r.breakout.retested)
confidence += 10;
}
else if (r.compressionScore > 70) {
confidence = 35;
}
return { direction, confidence: clamp(confidence), source: 'range' };
},
summarize(input) {
const r = input.analyses.range;
const comp = r.compressionScore;
const br = r.breakout
? `${r.breakout.direction}/${r.breakout.qualityScore}`
: '无突破';
return `压缩:${comp} 突破:${br}`;
},
};
}