mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-26 08:45:16 +00:00
fix kline window truncate
This commit is contained in:
parent
86769d4535
commit
31be04cc74
|
@ -214,6 +214,10 @@ func (k KLineWindow) First() KLine {
|
||||||
return k[0]
|
return k[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (k KLineWindow) Last() KLine {
|
||||||
|
return k[len(k)-1]
|
||||||
|
}
|
||||||
|
|
||||||
func (k KLineWindow) GetInterval() string {
|
func (k KLineWindow) GetInterval() string {
|
||||||
return k.First().Interval
|
return k.First().Interval
|
||||||
}
|
}
|
||||||
|
@ -330,17 +334,19 @@ func (k KLineWindow) Tail(size int) KLineWindow {
|
||||||
return win
|
return win
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Truncate removes the old klines from the window
|
||||||
func (k *KLineWindow) Truncate(size int) {
|
func (k *KLineWindow) Truncate(size int) {
|
||||||
if len(*k) <= size {
|
if len(*k) <= size {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
end := len(*k) - 1
|
end := len(*k)
|
||||||
start := end - size
|
start := end - size
|
||||||
if start < 0 {
|
if start < 0 {
|
||||||
start = 0
|
start = 0
|
||||||
}
|
}
|
||||||
*k = (*k)[start:end]
|
kn := (*k)[start:]
|
||||||
|
*k = kn
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k KLineWindow) GetBody() float64 {
|
func (k KLineWindow) GetBody() float64 {
|
||||||
|
|
|
@ -20,3 +20,25 @@ func TestKLineWindow_Tail(t *testing.T) {
|
||||||
var win4 = win.Tail(3)
|
var win4 = win.Tail(3)
|
||||||
assert.Len(t, win4, 2)
|
assert.Len(t, win4, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestKLineWindow_Truncate(t *testing.T) {
|
||||||
|
var win = KLineWindow{
|
||||||
|
{ Open: "11600.0", Close: "11600.0", High: "11600.0", Low: "11600.0"},
|
||||||
|
{ Open: "11601.0", Close: "11600.0", High: "11600.0", Low: "11600.0"},
|
||||||
|
{ Open: "11602.0", Close: "11600.0", High: "11600.0", Low: "11600.0"},
|
||||||
|
{ Open: "11603.0", Close: "11600.0", High: "11600.0", Low: "11600.0"},
|
||||||
|
}
|
||||||
|
|
||||||
|
win.Truncate(5)
|
||||||
|
assert.Len(t, win, 4)
|
||||||
|
assert.Equal(t, "11603.0", win.Last().Open)
|
||||||
|
|
||||||
|
win.Truncate(3)
|
||||||
|
assert.Len(t, win, 3)
|
||||||
|
assert.Equal(t, "11603.0", win.Last().Open)
|
||||||
|
|
||||||
|
|
||||||
|
win.Truncate(1)
|
||||||
|
assert.Len(t, win, 1)
|
||||||
|
assert.Equal(t, "11603.0", win.Last().Open)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user