Skip to content

Commit 620381f

Browse files
committed
optimizer: eliminate limitation of number of grid point
1 parent 44f3793 commit 620381f

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

pkg/optimizer/grid.go

+16-9
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ func (o *GridOptimizer) Run(executor Executor, configJson []byte) (map[string][]
195195

196196
var taskC = make(chan BacktestTask, 10000)
197197

198+
var bar = pb.Full.New(cap(taskC))
199+
bar.SetTemplateString(`{{ string . "log" | green}} | {{counters . }} {{bar . }} {{percent . }} {{etime . }} {{rtime . "ETA %s"}}`)
200+
201+
var taskCnt int64 = 0
198202
var app = func(configJson []byte, next func(configJson []byte) error) error {
199203
var labels = copyLabels(o.ParamLabels)
200204
var params = copyParams(o.CurrentParams)
@@ -203,6 +207,8 @@ func (o *GridOptimizer) Run(executor Executor, configJson []byte) (map[string][]
203207
Params: params,
204208
Labels: labels,
205209
}
210+
taskCnt++
211+
bar.SetTotal(taskCnt)
206212
return nil
207213
}
208214

@@ -221,20 +227,17 @@ func (o *GridOptimizer) Run(executor Executor, configJson []byte) (map[string][]
221227
}
222228

223229
ctx := context.Background()
224-
if err := wrapper(configJson); err != nil {
225-
return nil, err
226-
}
227-
228-
bar := pb.Full.Start(len(taskC))
229-
bar.SetTemplateString(`{{ string . "log" | green}} | {{counters . }} {{bar . }} {{percent . }} {{etime . }} {{rtime . "ETA %s"}}`)
230+
var taskGenErr error
231+
go func() {
232+
taskGenErr = wrapper(configJson)
233+
close(taskC) // this will shut down the executor
234+
}()
230235

231236
resultsC, err := executor.Run(ctx, taskC, bar)
232237
if err != nil {
233238
return nil, err
234239
}
235240

236-
close(taskC) // this will shut down the executor
237-
238241
for result := range resultsC {
239242
bar.Increment()
240243

@@ -265,7 +268,11 @@ func (o *GridOptimizer) Run(executor Executor, configJson []byte) (map[string][]
265268
})
266269
}
267270

268-
return metrics, err
271+
if taskGenErr != nil {
272+
return metrics, taskGenErr
273+
} else {
274+
return metrics, err
275+
}
269276
}
270277

271278
func reformatJson(text string) string {

0 commit comments

Comments
 (0)