mirror of
https://github.com/c9s/bbgo.git
synced 2024-09-20 08:11:08 +00:00
Merge 83dc290e73
into f6865f664c
This commit is contained in:
commit
67105d0582
|
@ -5,6 +5,9 @@ import "github.com/c9s/bbgo/pkg/types"
|
|||
const MaxNumOfKLines = 5_000
|
||||
const MaxNumOfKLinesTruncate = 100
|
||||
|
||||
const NumberOfKLinesThreshold = 6_000
|
||||
const NumberOfTruncatedKLines = 5_000
|
||||
|
||||
// MarketDataStore receives and maintain the public market data of a single symbol
|
||||
//go:generate callbackgen -type MarketDataStore
|
||||
type MarketDataStore struct {
|
||||
|
@ -57,8 +60,13 @@ func (store *MarketDataStore) AddKLine(k types.KLine) {
|
|||
}
|
||||
window.Add(k)
|
||||
|
||||
if len(*window) > MaxNumOfKLines {
|
||||
*window = (*window)[MaxNumOfKLinesTruncate-1:]
|
||||
LenOfWindow := len(*window)
|
||||
CapOfWindow := cap(*window)
|
||||
|
||||
if LenOfWindow == CapOfWindow && CapOfWindow > NumberOfKLinesThreshold {
|
||||
truncatedWindow := (*window)[LenOfWindow-NumberOfTruncatedKLines:]
|
||||
copy(*window, truncatedWindow)
|
||||
*window = (*window)[:len(truncatedWindow)]
|
||||
}
|
||||
|
||||
store.EmitKLineClosed(k)
|
||||
|
|
Loading…
Reference in New Issue
Block a user