Optimise type of moving averages (ZLEMA/ZLEMA? ZLEMA/EMA? EMA/SMA?, etc.)

Dear all,
New user, and new on the forum, so please excuse me if my topic belongs somewhere else...
I managed to successfully run the cerebro optimiser to find the optimal length of a moving average crossover.
Now, I'd like to test different combinations of types of moving averages for the crossovers, for example:
SMA/SMA
EMA/SMA
ZLEMA/SMA
EMA/EMA
ZLEMA/EMA
ZLEMA/ZLEMA
etc...I imagine I would need to do that when adding indicators/signals the strategy.
But how can I get cerebro.optstrategy() to try different permutations of:
bt.indicators.sma/zlema/ema/hma/etc...I just have no idea how to start optimising things that are not lists of numbers...
Thanks for your help!

@runout Thanks, will try to adapt your code!
I saw you also gave a very detailed description of the whole process on another thread, I'll check that too.
Thanks!