rename kline store to market data store back

This commit is contained in:
c9s 2020-10-18 20:24:16 +08:00
parent b7a450327c
commit 75115774f6
6 changed files with 41 additions and 41 deletions

View File

@ -102,7 +102,7 @@ func (environ *Environment) Init(ctx context.Context) (err error) {
session.lastPrices[symbol] = currentPrice session.lastPrices[symbol] = currentPrice
session.klineStores[symbol] = store.NewMarketDataStore(symbol) session.marketDataStores[symbol] = store.NewMarketDataStore(symbol)
} }
log.Infof("querying balances...") log.Infof("querying balances...")
@ -121,7 +121,7 @@ func (environ *Environment) Init(ctx context.Context) (err error) {
// update last prices // update last prices
stream.OnKLineClosed(func(kline types.KLine) { stream.OnKLineClosed(func(kline types.KLine) {
session.lastPrices[kline.Symbol] = kline.Close session.lastPrices[kline.Symbol] = kline.Close
session.klineStores[kline.Symbol].AddKLine(kline) session.marketDataStores[kline.Symbol].AddKLine(kline)
}) })
stream.OnTrade(func(trade *types.Trade) { stream.OnTrade(func(trade *types.Trade) {

View File

@ -30,7 +30,7 @@ type ExchangeSession struct {
// map: symbol -> []trade // map: symbol -> []trade
Trades map[string][]types.Trade Trades map[string][]types.Trade
klineStores map[string]*store.KLineStore marketDataStores map[string]*store.MarketDataStore
} }
func NewExchangeSession(name string, exchange types.Exchange) *ExchangeSession { func NewExchangeSession(name string, exchange types.Exchange) *ExchangeSession {
@ -41,12 +41,12 @@ func NewExchangeSession(name string, exchange types.Exchange) *ExchangeSession {
markets: make(map[string]types.Market), markets: make(map[string]types.Market),
Trades: make(map[string][]types.Trade), Trades: make(map[string][]types.Trade),
lastPrices: make(map[string]float64), lastPrices: make(map[string]float64),
klineStores: make(map[string]*store.KLineStore), marketDataStores: make(map[string]*store.MarketDataStore),
} }
} }
func (session *ExchangeSession) KLineStore(symbol string) (s *store.KLineStore, ok bool) { func (session *ExchangeSession) MarketDataStore(symbol string) (s *store.MarketDataStore, ok bool) {
s, ok = session.klineStores[symbol] s, ok = session.marketDataStores[symbol]
return s, ok return s, ok
} }

View File

@ -9,7 +9,7 @@ import (
) )
type SMA struct { type SMA struct {
store *store.KLineStore store *store.MarketDataStore
Window int Window int
} }
@ -49,9 +49,9 @@ func calculateMovingAverage(klines types.KLineWindow, period int) (values []Indi
return values return values
} }
func (i *SMA) SubscribeStore(store *store.KLineStore) { func (i *SMA) SubscribeStore(store *store.MarketDataStore) {
i.store = store i.store = store
// register kline update callback // register kline update callback
store.OnUpdate(i.handleUpdate) // store.OnUpdate(i.handleUpdate)
} }

View File

@ -1,17 +0,0 @@
// Code generated by "callbackgen -type KLineStore"; DO NOT EDIT.
package store
import (
"github.com/c9s/bbgo/pkg/types"
)
func (store *KLineStore) OnUpdate(cb func(kline types.KLine)) {
store.updateCallbacks = append(store.updateCallbacks, cb)
}
func (store *KLineStore) EmitUpdate(kline types.KLine) {
for _, cb := range store.updateCallbacks {
cb(kline)
}
}

View File

@ -4,8 +4,8 @@ import (
"github.com/c9s/bbgo/pkg/types" "github.com/c9s/bbgo/pkg/types"
) )
//go:generate callbackgen -type KLineStore //go:generate callbackgen -type MarketDataStore
type KLineStore struct { type MarketDataStore struct {
Symbol string Symbol string
// KLineWindows stores all loaded klines per interval // KLineWindows stores all loaded klines per interval
@ -13,11 +13,11 @@ type KLineStore struct {
LastKLine types.KLine LastKLine types.KLine
updateCallbacks []func(kline types.KLine) kLineUpdateCallbacks []func(kline types.KLine)
} }
func NewMarketDataStore(symbol string) *KLineStore { func NewMarketDataStore(symbol string) *MarketDataStore {
return &KLineStore{ return &MarketDataStore{
Symbol: symbol, Symbol: symbol,
// KLineWindows stores all loaded klines per interval // KLineWindows stores all loaded klines per interval
@ -25,22 +25,22 @@ func NewMarketDataStore(symbol string) *KLineStore {
} }
} }
func (store *KLineStore) BindStream(stream types.Stream) { func (store *MarketDataStore) BindStream(stream types.Stream) {
stream.OnKLineClosed(store.handleKLineClosed) stream.OnKLineClosed(store.handleKLineClosed)
} }
func (store *KLineStore) handleKLineClosed(kline types.KLine) { func (store *MarketDataStore) handleKLineClosed(kline types.KLine) {
if kline.Symbol == store.Symbol { if kline.Symbol == store.Symbol {
store.AddKLine(kline) store.AddKLine(kline)
} }
} }
func (store *KLineStore) AddKLine(kline types.KLine) { func (store *MarketDataStore) AddKLine(kline types.KLine) {
var interval = types.Interval(kline.Interval) var interval = types.Interval(kline.Interval)
var window = store.KLineWindows[interval] var window = store.KLineWindows[interval]
window.Add(kline) window.Add(kline)
store.LastKLine = kline store.LastKLine = kline
store.EmitUpdate(kline) store.EmitKLineUpdate(kline)
} }

View File

@ -0,0 +1,17 @@
// Code generated by "callbackgen -type MarketDataStore"; DO NOT EDIT.
package store
import (
"github.com/c9s/bbgo/pkg/types"
)
func (store *MarketDataStore) OnKLineUpdate(cb func(kline types.KLine)) {
store.kLineUpdateCallbacks = append(store.kLineUpdateCallbacks, cb)
}
func (store *MarketDataStore) EmitKLineUpdate(kline types.KLine) {
for _, cb := range store.kLineUpdateCallbacks {
cb(kline)
}
}