You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

42 lines
1.1 KiB

package trade
import (
"sig-pub/pkg/types"
)
type IRickStrategy interface {
OnSignal(signalSide types.Side) (ok bool, cause Cause)
}
type RiskStrategyParam struct {
SkipOnSideOpposite bool // 当前持有反方向单时
SkipOnSideSame bool // 当前持有相同方向单时
}
// RiskStrategy 风险管理策略
// Kelly准则优化方法
type RiskStrategy struct {
RiskStrategyParam
}
func NewRiskStrategy(param RiskStrategyParam) (rs *RiskStrategy, err error) {
rs = &RiskStrategy{
RiskStrategyParam: param,
}
return
}
// SideAssess 收到信号时进行评估, 返回过滤后的交易信号
// 对交易方向进行信心分数评估, 后续开仓仓位
// 1.当前持有反方向单时, 不进行开仓
// 2.当前持有同方向单时, 根据信心分数评估是否加仓
func (s *RiskStrategy) SigRiskAnalyze(signalSide types.Side) (doTrade bool, causes []Cause, err error) {
return true, nil, nil
}
func (s *RiskStrategy) SigRiskAnalyze1(account string, signalSide types.Side) (doTrade bool, causes []Cause, err error) {
return true, nil, nil
}