Files
banstagy/llmjob/1357.go
2026-08-24 20:53:21 +08:00

60 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package llmjob
import (
"github.com/banbox/banbot/config"
"github.com/banbox/banbot/core"
"github.com/banbox/banbot/strat"
ta "github.com/banbox/banta"
)
func J1357(pol *config.RunPolicyConfig) *strat.TradeStrat {
fastLength := pol.DefInt("fastLength", 16, core.PNorm(5, 20))
slowLength := pol.DefInt("slowLength", 26, core.PNorm(15, 50))
signalLength := pol.DefInt("signalLength", 9, core.PNorm(5, 15))
return &strat.TradeStrat{
WarmupNum: slowLength + signalLength,
EachMaxLong: 3,
EachMaxShort: 3,
HedgeOff: true,
RunTimeFrames: []string{"8h"},
OnBar: func(s *strat.StratJob) {
e := s.Env
// 计算MACD指标
macd, signal := ta.MACD(e.Close, fastLength, slowLength, signalLength)
// 检测MACD线与信号线的交叉
buySignal := macd.Cross(signal)
sellSignal := signal.Cross(macd)
// 买入信号:MACD线上穿信号线
if buySignal == 1 {
// 开多单
s.OpenOrder(&strat.EnterReq{
Tag: "Long Trigger",
})
// 平空单
s.CloseOrders(&strat.ExitReq{
Tag: "Close Short Trigger",
Dirt: core.OdDirtShort,
})
}
// 卖出信号:MACD线下穿信号线
if sellSignal == 1 {
// 开空单
s.OpenOrder(&strat.EnterReq{
Tag: "Short Trigger",
Short: true,
})
// 平多单
s.CloseOrders(&strat.ExitReq{
Tag: "Close Long Trigger",
Dirt: core.OdDirtLong,
})
}
},
}
}