init
This commit is contained in:
60
llmjob/6697.go
Normal file
60
llmjob/6697.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package llmjob
|
||||
|
||||
import (
|
||||
"github.com/banbox/banbot/config"
|
||||
"github.com/banbox/banbot/core"
|
||||
"github.com/banbox/banbot/strat"
|
||||
ta "github.com/banbox/banta"
|
||||
)
|
||||
|
||||
func J6697(pol *config.RunPolicyConfig) *strat.TradeStrat {
|
||||
// 定义可调超参数
|
||||
periodK := pol.DefInt("periodK", 13, core.PNorm(5, 30))
|
||||
smoothK := pol.DefInt("smoothK", 5, core.PNorm(2, 8))
|
||||
periodD := pol.DefInt("periodD", 2, core.PNorm(2, 5))
|
||||
tpTicks := pol.DefInt("tpTicks", 100, core.PNorm(10, 500)) // 固定tick止盈
|
||||
overboughtLevel := pol.DefInt("overboughtLevel", 80, core.PNorm(70, 90))
|
||||
oversoldLevel := 100 - overboughtLevel // 自动计算超卖水平
|
||||
|
||||
return &strat.TradeStrat{
|
||||
WarmupNum: periodK + smoothK + periodD + 10, // 确保足够的数据计算指标
|
||||
HedgeOff: true, // 启用单向持仓模式
|
||||
EachMaxLong: 100, // 对应pyramiding=100
|
||||
EachMaxShort: 100, // 对应pyramiding=100
|
||||
TimeFrames: "8h",
|
||||
OnBar: func(s *strat.StratJob) {
|
||||
e := s.Env
|
||||
|
||||
// 计算KDJ指标,返回[K, D, RSV]
|
||||
k, d, _ := ta.KDJ(e.High, e.Low, e.Close, periodK, smoothK, periodD)
|
||||
|
||||
// 获取最新值
|
||||
kVal := k.Get(0)
|
||||
|
||||
// 计算交叉信号
|
||||
kdCross := k.Cross(d) // 1:上穿, -1:下穿, 0:重合
|
||||
|
||||
// 使用ATR作为动态止盈参考
|
||||
atr := ta.ATR(e.High, e.Low, e.Close, 14)
|
||||
|
||||
// 做多条件:K线上穿D线,且K值未达超买区
|
||||
if kdCross == 1 && kVal < float64(overboughtLevel) {
|
||||
s.OpenOrder(&strat.EnterReq{
|
||||
Tag: "Long",
|
||||
OrderType: core.OrderTypeMarket,
|
||||
TakeProfitVal: atr.Get(0) * float64(tpTicks) / 100, // 使用ATR作为动态止盈
|
||||
})
|
||||
}
|
||||
|
||||
// 做空条件:K线下穿D线,且K值未破超卖区
|
||||
if kdCross == -1 && kVal > float64(oversoldLevel) {
|
||||
s.OpenOrder(&strat.EnterReq{
|
||||
Tag: "Short",
|
||||
Short: true,
|
||||
OrderType: core.OrderTypeMarket,
|
||||
TakeProfitVal: atr.Get(0) * float64(tpTicks) / 100, // 使用ATR作为动态止盈
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user