Thanks for your input. Yes it seems to be the best way at the moment.
Also tried with some sort of intermediate strategy that basically acts as a dispatcher that instantiates the underlying "real" strategies and feeds them accordingly.
Would be used as this:
stop_loss=np.arange(0.02, 0.15, 0.20),
profit_target=np.arange(0.03, 0.12, 0.18),
dip_thresh=np.arange(-0.01, -0.5, -0.2),
adx_trend_thresh=np.arange(30, 60, 50),
adx_period=np.arange(12, 16, 10)
build_multidata_strategy would construct a strategy class at runtime. It would also "fake"
self.datas for the underlying strategies so each strategy would only see one data and could act upon
self.data as usual. But I could not get this to work (indicators were not called). I guess the problem is related to the metaclasses that are used by the strategies. I guess constructing strategy objects within other strategies is not supported.