- ago
I love the Autosave feature, but on long optimization runs it significantly impacts optimizer performance. It can quickly reach a point of spending more time saving than optimizing!

I'd like to request support for a boolean switch for the AutoSave feature (similar to the addToResults switch) so that we can manage it via code. This would anable custom optimizers to enable/disable based on a timer interval or set number of runs for better resource management and overall performance of the optimizer.

See discussion of the impact on performance here:
https://www.wealth-lab.com/Discussion/Performance-Bottleneck-in-Optimizer-7524


4
1,124
6 Replies

Reply

Bookmark

Sort
Glitch8
 ( 12.10% )
- ago
#1
I’m not sure putting this into an optimizer parameter is best, i think it would provide more value as a setting the user had some control over.
1
- ago
#3
A user setting on the optimizer settings tab would be helpful for general users. Especially if it is a time based event

However, what I would like is the flexibility to override that setting in code so that I can dynamically manage resources based on variables (ie: average run time) to facilitate the best "balance" of optimizer speed and autosave frequency.

CODE:
'the override could be a property of StrategyOptimizer ' Private Sub my_optimizer_wrapper(PL) ' turn autosave on/off when desired if ConditionMet then MyStrategyOptimizer.AutoSave = false MyStrategyOptimizer.ExecuteOptimizationRun(PL) end sub 'or a seperate call to run the autosave Private Sub my_optimizer_wrapper(PLs as list(of pl)) for thisRun = 0 to PLs.count -1 MyStrategyOptimizer.ExecuteOptimizationRun(PLs(thisRun)) ' trigger autosave based on conditions (x runs, x time since last run) if ConditionMet then MyStrategyOptimizer.AutoSave() next end sub private function ConditionMet () as boolean ' do condition check here and return boolean value end function


0
- ago
#4
I wouldn't make the solution overly complicated if you want people to vote for it. Simply turning optimizer debugging/monitoring off for greater speed is something everyone can understand. It might be worth tiering the monitoring (verbose vs terse) with choices, but keep it simple.
0
- ago
#5
QUOTE:
I wouldn't make the solution overly complicated


Agreed.

The above are possible ways that might work, but they may or may not be valid - I don't know the structure of the StrategyOptimizer (and inherited classes). So I'll leave it to the WL7 team to determine best practice.

The ability to turn autosave on and off (or call it directly when desired) is the goal..
0
- ago
#6
As follow on to the above, if Optimizer AutoSave is timer/timed event based then it would be nice to have a way to set the interval.

I'd be happy with a save every 5 or 10 minutes on optimization that take several hours. :)
0

Reply

Bookmark

Sort