The quesiton is - if we'll do it in this automatic way, how will we allow configuring it like it is now?
If indicator is callibrated automatically, it will automatically compute min, max, step.
Then there will be no way to configure them in UI. It is either automatic callibration or manual configuration. Or do you have some idea?
If the user answers YES, SQX will go ahead and run a test for all indicators (that actually use levels that can vary, so, for example, RSI will not need that) on the selected symbol(s) and timeframe, with various periods (50 / 150 / 300 / 600 would be good values) on several random places of the history data (to exclude that it just selects a flat period or a highly volatile period which gives useless values), puts the results into an array, then uses MathMax / MathMin on the array and adjusts the min / max values in the Building Blocks accordingly. This way the user can still manually adjust the values in the Building Blocks if needed and can easily verify if the auto-adjustment worked fine too.
Of course this procedure can take a while to finish (or maybe I am wrong as the backtesting engine is really fast and actually can calculate millions of values in a few milliseconds), especially since we need to run several periods at several places on the history data, but SQX could cache those values too, so that it would only ask for a new run if the symbol is new or its data has been updated/changed. Otherwise, it could just use the values from a previous selected run. And of course, it´s important that it handles each timeframe of the symbol separately, as a M5 chart will have very different values to a H1 chart of the same symbol. Also the multi-symbol handling is important. As you´ve noticed, if someone wants to build a strategy on EURUSD that should also work on XAUUSD, indicators like StdDev will have HUGE variations in levels (EURUSD ~ 0.314, XAUUSD ~12.000), so the min and max values SQX adds to the building blocks need to be adjusted accordingly.
Update: Seeing how quick the backtests really are, I think the cache might not really be needed, as a new adjustment should finish in seconds, if not milliseconds.