Skip to content

Commit b4fc5e4

Browse files
committed
xmaker: add metrics for weighted quote price
1 parent 81daf8d commit b4fc5e4

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

pkg/strategy/xmaker/metrics.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,22 @@ var splitHedgeBidHigherThanAskCounter = prometheus.NewCounterVec(
151151
[]string{"strategy_type", "strategy_id", "exchange", "symbol"},
152152
)
153153

154+
var splitHedgeWeightedBidPriceMetrics = prometheus.NewGaugeVec(
155+
prometheus.GaugeOpts{
156+
Name: "xmaker_split_hedge_weighted_bid_price",
157+
Help: "The weighted bid price calculated by split hedge",
158+
},
159+
[]string{"strategy_type", "strategy_id", "exchange", "symbol"},
160+
)
161+
162+
var splitHedgeWeightedAskPriceMetrics = prometheus.NewGaugeVec(
163+
prometheus.GaugeOpts{
164+
Name: "xmaker_split_hedge_weighted_ask_price",
165+
Help: "The weighted ask price calculated by split hedge",
166+
},
167+
[]string{"strategy_type", "strategy_id", "exchange", "symbol"},
168+
)
169+
154170
func init() {
155171
prometheus.MustRegister(
156172
openOrderBidExposureInUsdMetrics,
@@ -175,5 +191,7 @@ func init() {
175191
directionMean,
176192
directionAlignedWeight,
177193
splitHedgeBidHigherThanAskCounter,
194+
splitHedgeWeightedBidPriceMetrics,
195+
splitHedgeWeightedAskPriceMetrics,
178196
)
179197
}

pkg/strategy/xmaker/strategy.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ type Strategy struct {
310310
alignedWeightMetrics prometheus.Gauge
311311

312312
splitHedgeBidHigherThanAskCounter prometheus.Counter
313+
splitHedgeWeightedBidPrice prometheus.Gauge
314+
splitHedgeWeightedAskPrice prometheus.Gauge
313315

314316
simpleHedgeMode bool
315317

@@ -461,6 +463,8 @@ func (s *Strategy) Initialize() error {
461463
s.directionMeanMetrics = directionMean.With(s.metricsLabels)
462464
s.alignedWeightMetrics = directionAlignedWeight.With(s.metricsLabels)
463465
s.splitHedgeBidHigherThanAskCounter = splitHedgeBidHigherThanAskCounter.With(s.metricsLabels)
466+
s.splitHedgeWeightedBidPrice = splitHedgeWeightedBidPriceMetrics.With(s.metricsLabels)
467+
s.splitHedgeWeightedAskPrice = splitHedgeWeightedAskPriceMetrics.With(s.metricsLabels)
464468

465469
if s.SignalReverseSideMargin != nil && s.SignalReverseSideMargin.Scale != nil {
466470
scale, err := s.SignalReverseSideMargin.Scale.Scale()
@@ -1017,6 +1021,9 @@ func (s *Strategy) updateQuote(ctx context.Context) error {
10171021
hasPrice := false
10181022
bestBidPrice, bestAskPrice, hasPrice = s.SplitHedge.GetBalanceWeightedQuotePrice()
10191023
if hasPrice && !bestBidPrice.IsZero() && !bestAskPrice.IsZero() {
1024+
s.splitHedgeWeightedBidPrice.Set(bestBidPrice.Float64())
1025+
s.splitHedgeWeightedAskPrice.Set(bestAskPrice.Float64())
1026+
10201027
if bestBidPrice.Compare(bestAskPrice) > 0 {
10211028
s.splitHedgeBidHigherThanAskCounter.Inc()
10221029
s.logger.Warnf("split hedge bid price %s is higher than ask price %s, adjust bid price by tick size %s",

0 commit comments

Comments
 (0)