bbgo_origin/pkg/strategy/drift/stoploss.go

20 lines
462 B
Go

package drift
func (s *Strategy) CheckStopLoss() bool {
if s.UseStopLoss {
stoploss := s.StopLoss.Float64()
if s.sellPrice > 0 && s.sellPrice*(1.+stoploss) <= s.highestPrice ||
s.buyPrice > 0 && s.buyPrice*(1.-stoploss) >= s.lowestPrice {
return true
}
}
if s.UseAtr {
atr := s.atr.Last(0)
if s.sellPrice > 0 && s.sellPrice+atr <= s.highestPrice ||
s.buyPrice > 0 && s.buyPrice-atr >= s.lowestPrice {
return true
}
}
return false
}