diff --git a/market_hours_range.go b/market_hours_range.go index 93a203c..7fbc098 100644 --- a/market_hours_range.go +++ b/market_hours_range.go @@ -78,9 +78,8 @@ func (mhr *MarketHoursRange) GetTicks(vf ValueFormatter) []Tick { // figure out how to advance one ticke per market day. var ticks []Tick - cursor := date.On(mhr.MarketOpen, mhr.Min) + cursor := date.On(mhr.MarketClose, mhr.Min) maxClose := date.On(mhr.MarketClose, mhr.Max) - for date.BeforeDate(cursor, maxClose) { if date.IsWeekDay(cursor.Weekday()) && !mhr.GetHolidayProvider()(cursor) { ticks = append(ticks, Tick{ @@ -92,6 +91,13 @@ func (mhr *MarketHoursRange) GetTicks(vf ValueFormatter) []Tick { cursor = cursor.AddDate(0, 0, 1) } + endMarketClose := date.On(mhr.MarketClose, cursor) + if date.IsWeekDay(endMarketClose.Weekday()) && !mhr.GetHolidayProvider()(endMarketClose) { + ticks = append(ticks, Tick{ + Value: TimeToFloat64(endMarketClose), + Label: vf(endMarketClose), + }) + } return ticks } diff --git a/market_hours_range_test.go b/market_hours_range_test.go index 5bf5edd..8698b36 100644 --- a/market_hours_range_test.go +++ b/market_hours_range_test.go @@ -55,6 +55,7 @@ func TestMarketHoursRangeGetTicks(t *testing.T) { ticks := r.GetTicks(TimeValueFormatter) assert.NotEmpty(ticks) - assert.Equal(TimeToFloat64(r.Min), ticks[0].Value) + assert.Len(ticks, 5) + assert.NotEqual(TimeToFloat64(r.Min), ticks[0].Value) assert.NotEmpty(ticks[0].Label) }