Add some type safety to getting DOHLCV columns

This commit is contained in:
Luke I. Wilson 2023-05-20 16:16:37 -05:00
parent ed08bd275d
commit 920df02bcc
2 changed files with 18 additions and 14 deletions

View File

@ -178,29 +178,29 @@ func (d *Frame) Dates() *Series {
return d.Series("Date") return d.Series("Date")
} }
// Opens returns a Series of all the open prices in the Frame. This is equivalent to calling Series("Open"). // Opens returns a FloatSeries of all the open prices in the Frame. This is equivalent to calling Series("Open").
func (d *Frame) Opens() *Series { func (d *Frame) Opens() *FloatSeries {
return d.Series("Open") return &FloatSeries{d.Series("Open")}
} }
// Highs returns a Series of all the high prices in the Frame. This is equivalent to calling Series("High"). // Highs returns a FloatSeries of all the high prices in the Frame. This is equivalent to calling Series("High").
func (d *Frame) Highs() *Series { func (d *Frame) Highs() *FloatSeries {
return d.Series("High") return &FloatSeries{d.Series("High")}
} }
// Lows returns a Series of all the low prices in the Frame. This is equivalent to calling Series("Low"). // Lows returns a FloatSeries of all the low prices in the Frame. This is equivalent to calling Series("Low").
func (d *Frame) Lows() *Series { func (d *Frame) Lows() *FloatSeries {
return d.Series("Low") return &FloatSeries{d.Series("Low")}
} }
// Closes returns a Series of all the close prices in the Frame. This is equivalent to calling Series("Close"). // Closes returns a FloatSeries of all the close prices in the Frame. This is equivalent to calling Series("Close").
func (d *Frame) Closes() *Series { func (d *Frame) Closes() *FloatSeries {
return d.Series("Close") return &FloatSeries{d.Series("Close")}
} }
// Volumes returns a Series of all the volumes in the Frame. This is equivalent to calling Series("Volume"). // Volumes returns a Series of all the volumes in the Frame. This is equivalent to calling Series("Volume").
func (d *Frame) Volumes() *Series { func (d *Frame) Volumes() *FloatSeries {
return d.Series("Volume") return &FloatSeries{d.Series("Volume")}
} }
// Contains returns true if the Frame contains all the given series names. Remember that names are case sensitive. // Contains returns true if the Frame contains all the given series names. Remember that names are case sensitive.

View File

@ -33,6 +33,10 @@ func NewSeries(name string, vals ...any) *Series {
} }
} }
func (s *Series) ISetName(name string) {
s.SetName(name)
}
// Copy is equivalent to CopyRange(0, -1). // Copy is equivalent to CopyRange(0, -1).
func (s *Series) Copy() *Series { func (s *Series) Copy() *Series {
return s.CopyRange(0, -1) return s.CopyRange(0, -1)