using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using KArtSell.Modules.ModelOperations.ShadowRun.Services; // 간단한 테스트: KRX 데이터 수집 직접 호출 public class TestKrxCollection { public static async Task Main(string[] args) { Console.WriteLine("=== KRX 실제 데이터 수집 테스트 ==="); Console.WriteLine("1개 심볼(005930-삼성), 1일(2024-01-02) 수집"); Console.WriteLine(""); // DI 설정 var services = new ServiceCollection(); services.AddLogging(config => config.AddConsole()); services.AddMemoryCache(); services.AddHttpClient(); var provider = services.BuildServiceProvider(); var krxService = provider.GetRequiredService(); try { // 실제 KRX 데이터 수집 var ticker = "005930"; // 삼성전자 var startDate = new DateOnly(2024, 1, 2); var endDate = new DateOnly(2024, 1, 2); Console.WriteLine($"수집 중: {ticker} ({startDate:yyyy-MM-dd})"); Console.WriteLine(""); var bars = await krxService.GetDailyOhlcvAsync(ticker, startDate, endDate, CancellationToken.None); Console.WriteLine($"✅ 수집 완료! {bars.Count}개 봉 수신"); Console.WriteLine(""); if (bars.Count > 0) { var bar = bars[0]; Console.WriteLine($"첫 봉:"); Console.WriteLine($" 날짜: {bar.Date:yyyy-MM-dd}"); Console.WriteLine($" 종목: {bar.Ticker}"); Console.WriteLine($" 시가: {bar.Open:F0}"); Console.WriteLine($" 고가: {bar.High:F0}"); Console.WriteLine($" 저가: {bar.Low:F0}"); Console.WriteLine($" 종가: {bar.Close:F0}"); Console.WriteLine($" 거래량: {bar.Volume:F0}"); } } catch (Exception ex) { Console.WriteLine($"❌ 오류: {ex.Message}"); Console.WriteLine($"스택트레이스: {ex.StackTrace}"); } Console.WriteLine(""); Console.WriteLine("테스트 완료."); } }