@@ -311,25 +311,16 @@ func applyAdjSeriesList(exs *orm.ExSymbol, adjs []*orm.AdjInfo, rows []*orm.Data
311311 return orm .BarsToSeries (exs , rows [0 ].TimeFrame , orm .ApplyAdj (adjs , bars , adjMode , cutEnd , limit ), nil , rows [0 ].IsWarmUp , true )
312312}
313313
314- func buildOHLCVSeries (exs * orm.ExSymbol , tf string , rows []* orm.DataSeries , toTFMSecs int64 , preFire float64 , prev []* orm.DataSeries , fromTFMS , offMS int64 , opts ... bool ) ([]* orm.DataSeries , bool , * errs.Error ) {
314+ func buildAggSeries (exs * orm.ExSymbol , tf string , rows []* orm.DataSeries , toTFMSecs int64 , preFire float64 , prev []* orm.DataSeries , fromTFMS , offMS int64 , opts ... bool ) ([]* orm.DataSeries , bool , * errs.Error ) {
315315 isWarmUp := false
316316 if len (opts ) > 0 {
317317 isWarmUp = opts [len (opts )- 1 ]
318318 }
319- bars , err := orm .SeriesToBars (exs , rows )
320- if err != nil {
321- return nil , false , err
322- }
323- prevBars , err := orm .SeriesToBars (exs , prev )
319+ aggRows , lastOk , err := orm .ResampleDataSeries (exs , tf , rows , prev , toTFMSecs , preFire , fromTFMS , offMS , isWarmUp )
324320 if err != nil {
325- return nil , false , err
326- }
327- aggBars , lastOk := utils .BuildOHLCV (bars , toTFMSecs , preFire , prevBars , fromTFMS , offMS )
328- targetTF := tf
329- if targetTF == "" {
330- targetTF = utils2 .SecsToTF (int (toTFMSecs / 1000 ))
321+ return nil , false , errs .New (core .ErrInvalidBars , err )
331322 }
332- return orm . BarsToSeries ( exs , targetTF , aggBars , nil , isWarmUp , true ) , lastOk , nil
323+ return aggRows , lastOk , nil
333324}
334325
335326type IDataFeeder interface {
@@ -551,7 +542,7 @@ func (f *SeriesFeeder) onNewData(barTfMSecs int64, rows []*orm.DataSeries) (bool
551542 if state .WaitBar != nil {
552543 olds = append (olds , state .WaitBar )
553544 }
554- ohlcvs , lastOk , err = buildOHLCVSeries (f .ExSymbol , state .TimeFrame , rows , staMSecs , f .PreFire , olds , barTfMSecs , state .AlignOffMS , false , f .isWarmUp )
545+ ohlcvs , lastOk , err = buildAggSeries (f .ExSymbol , state .TimeFrame , rows , staMSecs , f .PreFire , olds , barTfMSecs , state .AlignOffMS , false , f .isWarmUp )
555546 if err != nil {
556547 return false , err
557548 }
@@ -584,7 +575,7 @@ func (f *SeriesFeeder) onNewData(barTfMSecs int64, rows []*orm.DataSeries) (bool
584575 if barTfMSecs < staMSecs {
585576 // The last unfinished data should be kept here
586577 // 这里应该保留最后未完成的数据
587- ohlcvs , _ , err = buildOHLCVSeries (f .ExSymbol , state .TimeFrame , rows , staMSecs , f .PreFire , nil , barTfMSecs , state .AlignOffMS , false , f .isWarmUp )
578+ ohlcvs , _ , err = buildAggSeries (f .ExSymbol , state .TimeFrame , rows , staMSecs , f .PreFire , nil , barTfMSecs , state .AlignOffMS , false , f .isWarmUp )
588579 if err != nil {
589580 return false , err
590581 }
@@ -612,7 +603,7 @@ func (f *SeriesFeeder) onNewData(barTfMSecs int64, rows []*orm.DataSeries) (bool
612603 olds = append (olds , state .WaitBar )
613604 }
614605 bigTfMSecs := int64 (state .TFSecs * 1000 )
615- curOhlcvs , lastDone , err := buildOHLCVSeries (f .ExSymbol , state .TimeFrame , curRows , bigTfMSecs , f .PreFire , olds , srcMSecs , srcAlignOff , false , f .isWarmUp )
606+ curOhlcvs , lastDone , err := buildAggSeries (f .ExSymbol , state .TimeFrame , curRows , bigTfMSecs , f .PreFire , olds , srcMSecs , srcAlignOff , false , f .isWarmUp )
616607 if err != nil {
617608 return false , err
618609 }
0 commit comments