From 2c9583cccb9343a08cb8fdf5bcb49758194a1e35 Mon Sep 17 00:00:00 2001 From: c9s Date: Mon, 18 Dec 2023 22:17:52 +0800 Subject: [PATCH] xdepthmaker: remove redundant notification --- pkg/strategy/xdepthmaker/strategy.go | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/pkg/strategy/xdepthmaker/strategy.go b/pkg/strategy/xdepthmaker/strategy.go index d947a3dc4..e6d52cab6 100644 --- a/pkg/strategy/xdepthmaker/strategy.go +++ b/pkg/strategy/xdepthmaker/strategy.go @@ -35,10 +35,6 @@ func init() { bbgo.RegisterStrategy(ID, &Strategy{}) } -func notifyTrade(trade types.Trade, _, _ fixedpoint.Value) { - bbgo.Notify(trade) -} - type CrossExchangeMarketMakingStrategy struct { ctx, parent context.Context cancel context.CancelFunc @@ -133,11 +129,19 @@ func (s *CrossExchangeMarketMakingStrategy) Initialize( // bbgo.Sync(ctx, s) }) + // global order store s.orderStore = core.NewOrderStore(s.Position.Symbol) s.orderStore.BindStream(hedgeSession.UserDataStream) s.orderStore.BindStream(makerSession.UserDataStream) + // global trade collector s.tradeCollector = core.NewTradeCollector(symbol, s.Position, s.orderStore) + s.tradeCollector.OnTrade(func(trade types.Trade, profit fixedpoint.Value, netProfit fixedpoint.Value) { + bbgo.Notify(trade) + }) + s.tradeCollector.OnPositionUpdate(func(position *types.Position) { + bbgo.Notify(position) + }) s.tradeCollector.OnTrade(func(trade types.Trade, profit, netProfit fixedpoint.Value) { c := trade.PositionChange() @@ -169,7 +173,6 @@ func (s *CrossExchangeMarketMakingStrategy) Initialize( }) s.tradeCollector.BindStream(s.hedgeSession.UserDataStream) s.tradeCollector.BindStream(s.makerSession.UserDataStream) - return nil } @@ -344,6 +347,8 @@ func (s *Strategy) CrossRun( return err } + log.Infof("makerSession: %s hedgeSession: %s", makerSession.Name, hedgeSession.Name) + if err := s.CrossExchangeMarketMakingStrategy.Initialize(ctx, s.Environment, makerSession, hedgeSession, s.Symbol, ID, s.InstanceID()); err != nil { return err } @@ -351,14 +356,6 @@ func (s *Strategy) CrossRun( s.pricingBook = types.NewStreamBook(s.Symbol) s.pricingBook.BindStream(s.hedgeSession.MarketDataStream) - if s.NotifyTrade { - s.tradeCollector.OnTrade(notifyTrade) - } - - s.tradeCollector.OnPositionUpdate(func(position *types.Position) { - bbgo.Notify(position) - }) - s.stopC = make(chan struct{}) if s.RecoverTrade {