diff --git a/pkg/bbgo/strategy_controller.go b/pkg/bbgo/strategy_controller.go index f30d11b65..99d19982f 100644 --- a/pkg/bbgo/strategy_controller.go +++ b/pkg/bbgo/strategy_controller.go @@ -1 +1,22 @@ package bbgo + +import ( + "context" + "github.com/c9s/bbgo/pkg/types" +) + +type StrategyController struct { + status types.StrategyStatus + + SuspendCallbacks []func(ctx context.Context) +} + +func (s *StrategyController) OnSuspend(cb func(ctx context.Context)) { + s.SuspendCallbacks = append(s.SuspendCallbacks, cb) +} + +func (s *StrategyController) EmitKLineClosed(ctx context.Context) { + for _, cb := range s.SuspendCallbacks { + cb(ctx) + } +}