38.7 kB
olywwe's picture
Usar dados reais usando essa api import { CandleData } from '@/types/trading'; const API_BASE_URL = 'https://api.binance.com/api/v3'; export const fetchMarketData = async (symbol: string, timeframe: string): Promise<CandleData[]> => { try { console.log('Fetching market data for:', symbol); // Convert forex pair to Binance spot format const formattedSymbol = symbol === 'EURUSD' ? 'EURUSDT' : symbol; // Convert timeframe to interval format expected by Binance const interval = timeframe.replace('m', 'm').replace('h', 'h').replace('d', 'd'); // Get current timestamp const endTime = Date.now(); const startTime = endTime - (30 * 60 * 1000); // Last 30 minutes of data console.log('Making API request with:', { symbol: formattedSymbol, interval, startTime, endTime }); // Fetch real market data from Binance Spot API const response = await fetch( `${API_BASE_URL}/klines?symbol=${formattedSymbol}&interval=${interval}&startTime=${startTime}&endTime=${endTime}&limit=30` ); if (!response.ok) { const errorText = await response.text(); console.error('API Error Response:', errorText); throw new Error(`Failed to fetch market data: ${response.statusText}. ${errorText}`); } const data = await response.json(); // Transform Binance data to CandleData format const candles: CandleData[] = data.map((candle: any) => ({ timestamp: candle[0], open: parseFloat(candle[1]), high: parseFloat(candle[2]), low: parseFloat(candle[3]), close: parseFloat(candle[4]), volume: parseFloat(candle[5]) })); console.log('Processed market data:', candles); return candles; } catch (error) { console.error('Error fetching market data:', error); throw error; } }; - Follow Up Deployment
b40745e verified