ai-trading-sys/src/services/indicatorService.ts
2025-07-08 18:03:36 +07:00

27 lines
919 B
TypeScript

import { EMA, MACD } from 'technicalindicators';
import { Candle } from '../dao/candles';
export function analyze(candles: Candle[]): { ema34: number; ema200: number; macd: any } {
let close = candles.map(c => c.close);
const ema34 = EMA.calculate({ period: 34, values: close, reversedInput: true });
const ema200 = EMA.calculate({ period: 200, values: close, reversedInput: true });
const macd = MACD.calculate({
values: close,
fastPeriod: 45,
slowPeriod: 90,
signalPeriod: 9,
SimpleMAOscillator: false,
SimpleMASignal: false,
reversedInput: true
});
const candle = candles[0];
if (candle.low < ema200[0] && candle.high > ema200[0] && candle.close > ema200[0]) {
console.log('Buy');
}
if (candle.high > ema200[0] && candle.low < ema200[0] && candle.close < ema200[0]) {
console.log('Sell');
}
return { ema34: ema34[0], ema200: ema200[0], macd: macd[0] };
}