package trend import ( "github.com/banbox/banbot/config" "github.com/banbox/banbot/strat" ta "github.com/banbox/banta" ) func rsi_macd(p *config.RunPolicyConfig) *strat.TradeStrat { return &strat.TradeStrat{ WarmupNum: 100, OnBar: func(s *strat.StratJob) { e := s.Env rsi := ta.RSI(e.Close, 2).Get(0) sml := ta.SMA(e.Close, 5).Get(0) big := ta.SMA(e.Close, 20).Get(0) if len(s.LongOrders) > 0 { for _, od := range s.LongOrders { barNum := e.BarCount(od.EnterAt) if barNum > 5 { s.CloseOrders(&strat.ExitReq{ Tag: "exitL", OrderID: od.ID, }) } } } else if rsi <= 10 && sml > big { s.OpenOrder(&strat.EnterReq{ Tag: "long", }) } if len(s.ShortOrders) > 0 { for _, od := range s.ShortOrders { barNum := e.BarCount(od.EnterAt) if barNum > 5 { s.CloseOrders(&strat.ExitReq{ Tag: "exitS", OrderID: od.ID, }) } } } else if rsi >= 90 && sml < big { s.OpenOrder(&strat.EnterReq{ Tag: "short", Short: true, }) } }, } }