From f9ba5369bd1ee6558ea906703931052e33406119 Mon Sep 17 00:00:00 2001 From: caspar Date: Thu, 19 Mar 2026 06:01:54 -0400 Subject: [PATCH] Histogram successfully pulls data from database when data exists. --- DatabaseHandler/HistoricalRequestParser.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/DatabaseHandler/HistoricalRequestParser.cs b/DatabaseHandler/HistoricalRequestParser.cs index 21da50f..6b656cf 100644 --- a/DatabaseHandler/HistoricalRequestParser.cs +++ b/DatabaseHandler/HistoricalRequestParser.cs @@ -90,7 +90,18 @@ Console.WriteLine(raw); _ => throw new ArgumentOutOfRangeException(nameof(barSize)) }; - return Math.Max(1, (int)Math.Floor(duration.TotalSeconds / secondsPerBar)); + // Markets trade ~6.5 hours/day, 5 days/week — not 24/7 calendar time. + // Intraday fraction: (6.5h × 5 days) / (24h × 7 days) ≈ 0.194 + // Daily/weekly fraction (weekdays only): 5 / 7 ≈ 0.714 + // Monthly bars already map 1:1 to calendar months, no adjustment needed. + double marketFraction = barSize switch + { + HistoricalBarSize.OneMonth => 1.0, + HistoricalBarSize.OneDay or HistoricalBarSize.FiveDays => 5.0 / 7.0, + _ => (6.5 * 5.0) / (24.0 * 7.0) + }; + + return Math.Max(1, (int)Math.Floor(duration.TotalSeconds * marketFraction / secondsPerBar)); } } } \ No newline at end of file