Files
banstagy/demo/bar_stat.go
2026-08-24 20:53:21 +08:00

41 lines
843 B
Go

package demo
import (
"fmt"
"github.com/banbox/banbot/config"
"github.com/banbox/banbot/strat"
"github.com/banbox/banexg/log"
"go.uber.org/zap"
"slices"
)
type Stat struct {
rates []float64
}
func BarStat(pol *config.RunPolicyConfig) *strat.TradeStrat {
return &strat.TradeStrat{
WarmupNum: 50,
OnStartUp: func(s *strat.StratJob) {
s.More = &Stat{}
},
OnBar: func(s *strat.StratJob) {
m, _ := s.More.(*Stat)
// rate := genCurFutProbs(s.Env)[0]
m.rates = append(m.rates, 0)
},
OnShutDown: func(s *strat.StratJob) {
m, _ := s.More.(*Stat)
slices.Sort(m.rates)
var sum float64
var outs []string
for _, v := range m.rates {
sum += v
outs = append(outs, fmt.Sprintf("%.2f", v*100))
}
log.Info("", zap.Float64("avg", sum/float64(len(m.rates))),
zap.Strings("arr", outs))
},
}
}