27 lines
919 B
TypeScript
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] };
|
|
}
|