32573/backend/src/services/marketDataService.js
Flatlogic Bot 72986fa192 upgrade_2
2025-07-02 06:28:27 +00:00

32 lines
984 B
JavaScript

const yahooFinance = require('yahoo-finance2').default;
async function getCurrentPrice(ticker) {
const quote = await yahooFinance.quote(ticker);
return quote.regularMarketPrice;
}
async function getHistoricalPrices(ticker, range) {
const now = new Date();
let days;
switch (range) {
case 'daily': days = 1; break;
case 'weekly': days = 7; break;
case 'monthly': days = 30; break;
case '3m': days = 90; break;
case '6m': days = 180; break;
case '1y': days = 365; break;
case '3y': days = 365 * 3; break;
case '5y': days = 365 * 5; break;
default: days = 30;
}
const from = new Date(now.getTime() - days * 24 * 60 * 60 * 1000);
const options = { period1: from, period2: now, interval: '1d' };
const result = await yahooFinance.historical(ticker, options);
// Return array of { date, price }
return result.map(item => ({ date: item.date, price: item.close }));
}
module.exports = {
getCurrentPrice,
getHistoricalPrices,
};