f7ea2e7cf9
Motivation: 新增巴菲特激进/稳健策略(PUTEJJ/PUTEWJ)的跟单推送能力。该类信号仅有 rawMessage、无 action 字段,需按原文直接推送,并过滤启动文案、本地化时间字段。 Changes: * 支持无 action 的纯 rawMessage 信号,映射为 trade.message 事件 * 新增 not_contains 条件操作符,用于过滤启动文案 * 新增 replace 模板函数,将 Time: 替换为推送时间: * 补充巴菲特策略模板、规则与渠道配置文档
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package tradesignal
|
|
|
|
import "time"
|
|
|
|
type Signal struct {
|
|
SignalID string `json:"signalId"`
|
|
SourcePosID string `json:"sourcePosId"`
|
|
StrategyCode string `json:"strategyCode"`
|
|
Symbol string `json:"symbol"`
|
|
Side string `json:"side"`
|
|
Action string `json:"action"`
|
|
Quantity *float64 `json:"quantity"`
|
|
AmountMarginRatio *float64 `json:"amountMarginRatio"`
|
|
PosMarginRatio *float64 `json:"posMarginRatio"`
|
|
Price float64 `json:"price"`
|
|
Leverage int `json:"leverage"`
|
|
Period string `json:"period"`
|
|
EventTime string `json:"eventTime"`
|
|
TakeProfitPrice *float64 `json:"takeProfitPrice"`
|
|
StopLossPrice *float64 `json:"stopLossPrice"`
|
|
TakeProfitRatio *float64 `json:"takeProfitRatio"`
|
|
StopLossRatio *float64 `json:"stopLossRatio"`
|
|
PnL *float64 `json:"pnl"`
|
|
AccountBalance *float64 `json:"accountBalance"`
|
|
RawMessage string `json:"rawMessage"`
|
|
}
|
|
|
|
func (s *Signal) ParsedEventTime() time.Time {
|
|
if s.EventTime == "" {
|
|
return time.Now().UTC()
|
|
}
|
|
t, err := time.Parse(time.RFC3339, s.EventTime)
|
|
if err != nil {
|
|
return time.Now().UTC()
|
|
}
|
|
return t
|
|
}
|