From 31555633ca7e41fd8fb513f2f00474d24e5f98ba Mon Sep 17 00:00:00 2001 From: strange Date: Sat, 14 Feb 2026 15:30:52 +0000 Subject: [PATCH] vrvp stream --- internal/trading/sig/indicator_summary.go | 35 +++++++++++------------ internal/trading/trading_service.go | 3 ++ pkg/indicator/vrvp.go | 5 ++-- pkg/strategy/bollgrid.go | 5 ++++ 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/internal/trading/sig/indicator_summary.go b/internal/trading/sig/indicator_summary.go index 5338602..ddee1c2 100644 --- a/internal/trading/sig/indicator_summary.go +++ b/internal/trading/sig/indicator_summary.go @@ -1,7 +1,6 @@ package sig import ( - "fmt" "sig-pub/pkg/indicator" ) @@ -22,30 +21,30 @@ func NewIndicatorSummary(summaryIndicatorNewer func() indicator.ISummaryIndicato // Summary 0 10, 0 20, 1 30 func (s *IndicatorSummary) Summary(offset, count int16) (summary any, rok bool) { - key := fmt.Sprintf("%d,%d", offset, count) - summaryIndicator, ok := s.cachedSummaryIndicators[key] + // key := fmt.Sprintf("%d,%d", offset, count) + // summaryIndicator, ok := s.cachedSummaryIndicators[key] - if ok { - s.indicatorContext.AddOffset(offset + count + 1) - eliminater, ok := summaryIndicator.(indicator.ISummaryIndicatorEliminater) - if ok { - eliminater.Eliminate(s.indicatorContext) - } - s.indicatorContext.AddOffset(-(offset + count + 1)) + // if ok { + // s.indicatorContext.AddOffset(offset + count + 1) + // eliminater, ok := summaryIndicator.(indicator.ISummaryIndicatorEliminater) + // if ok { + // eliminater.Eliminate(s.indicatorContext) + // } + // s.indicatorContext.AddOffset(-(offset + count + 1)) - s.indicatorContext.AddOffset(offset) - summaryIndicator.Accumulate(s.indicatorContext) - summary, ok = summaryIndicator.Summary(s.indicatorContext) - s.indicatorContext.AddOffset(-offset) - return - } + // s.indicatorContext.AddOffset(offset) + // summaryIndicator.Accumulate(s.indicatorContext) + // summary, ok = summaryIndicator.Summary(s.indicatorContext) + // s.indicatorContext.AddOffset(-offset) + // return + // } // 初始化, 计算全量数据 - summaryIndicator = s.summaryIndicatorNewer() + summaryIndicator := s.summaryIndicatorNewer() if err := summaryIndicator.Init(s.indicatorContext.Input()); err != nil { panic(err) } - s.cachedSummaryIndicators[key] = summaryIndicator + // s.cachedSummaryIndicators[key] = summaryIndicator // 设置当前相对offset offset = offset + count diff --git a/internal/trading/trading_service.go b/internal/trading/trading_service.go index b62e819..efb4201 100644 --- a/internal/trading/trading_service.go +++ b/internal/trading/trading_service.go @@ -19,6 +19,7 @@ import ( "sig-pub/pkg/utils/times" "sig-pub/pkg/zlog" "sort" + "time" "sig-pub/internal/trading/backtest" "sig-pub/internal/trading/sig" @@ -449,6 +450,8 @@ func (svc *TradingService) StrategySeries(ctx context.Context, req *pb.ReqStrate rsp.Times = append(rsp.Times, ktime) return }) + lastK := iiks.Get(driverInstId, interval).MustGet(0) + fmt.Println("lastK: ", lastK, lastK.Ts, time.UnixMilli(lastK.Ts)) return } diff --git a/pkg/indicator/vrvp.go b/pkg/indicator/vrvp.go index c831354..87c96a0 100644 --- a/pkg/indicator/vrvp.go +++ b/pkg/indicator/vrvp.go @@ -3,7 +3,6 @@ package indicator import ( "math" "sig-pub/pkg/types" - "sig-pub/pkg/zlog" ) const ( @@ -202,8 +201,8 @@ func (v *VRVP) halveResolution() { // Summary 计算最终的成交量分布结果 // 在所有K线Accumulate完成后调用 func (v *VRVP) Summary(ctx IIndicatorContext) (summary any, ok bool) { - zlog.Debugf("VRVP Summary: klines=%d, skts=%d, ekts=%d, minPrice=%.2f, maxPrice=%.2f, baseStep=%.2f", - v.klines, v.skts, v.ekts, v.minPrice, v.maxPrice, v.baseStep) + // zlog.Debugf("VRVP Summary: klines=%d, skts=%d, ekts=%d, minPrice=%.2f, maxPrice=%.2f, baseStep=%.2f", + // v.klines, v.skts, v.ekts, v.minPrice, v.maxPrice, v.baseStep) if v.minPrice >= v.maxPrice { return nil, false } diff --git a/pkg/strategy/bollgrid.go b/pkg/strategy/bollgrid.go index 7d867ff..1402da7 100644 --- a/pkg/strategy/bollgrid.go +++ b/pkg/strategy/bollgrid.go @@ -2,6 +2,7 @@ package strategy import ( "sig-pub/pkg/types" + "sig-pub/pkg/zlog" ) // BollGrid 布林带网格策略 @@ -50,6 +51,10 @@ func (s *BollGrid) Update(ctx ISingleSigStrategyContext) (side types.Side) { // 128 根k线的成交量分布图 summary, ok := ctx.SummaryIndicator("VRVP", types.Input{"buckets": 48}).Summary(0, 128) _, _ = summary, ok + ts := ctx.Get(0).Ts + if ts == 1763685000000 { + zlog.Infof("last summary: %#v", summary) + } // 获取指标数据 // BOLL指标 Calculate 返回值为 mb (中轨)