This commit is contained in:
yanweidong
2026-01-29 03:22:42 +08:00
parent fd511e1695
commit 72e9e89221
3 changed files with 141 additions and 139 deletions

View File

@@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"git.apinb.com/bsm-sdk/core/utils"
"git.apinb.com/quant/gostock/internal/impl"
"git.apinb.com/quant/gostock/internal/logic/types"
"git.apinb.com/quant/gostock/internal/models"
@@ -66,16 +67,17 @@ func (r *Rsi) Run(code string) *types.RuleResult {
rsiResult := talib.Rsi(close, r.Args.RsiPeriod)
prveRsi := rsiResult[len(rsiResult)-2]
lastRsi := rsiResult[len(rsiResult)-1]
lastRsi = utils.FloatRound(lastRsi, 2)
prveRsiInt := int(prveRsi)
lastRsiInt := int(lastRsi)
// 跌破RSI下轨
if lastRsiInt > r.Args.RsiOversold {
if CheckLowest(close, lastRsiInt, 14) {
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: 1, Desc: fmt.Sprintf("RSI=%d 跌破下轨,14日最低", lastRsiInt)}
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: 1, Rsi: lastRsi, Desc: fmt.Sprintf("RSI=%d 跌破下轨,14日最低", lastRsiInt)}
}
if CheckLowest(close, lastRsiInt, 20) {
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: 1, Desc: fmt.Sprintf("RSI=%d 跌破下轨,20日最低", lastRsiInt)}
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: 1, Rsi: lastRsi, Desc: fmt.Sprintf("RSI=%d 跌破下轨,20日最低", lastRsiInt)}
}
return &types.RuleResult{Key: r.Key, Name: r.Name, Score: -1, Desc: fmt.Sprintf("RSI=%d 高于%d", lastRsiInt, r.Args.RsiOversold)}
}