One way of increasing the profitability of an algo is to build different algos for different conditions and contexts.
For example, once the market has shown it was a trend day up, switch on the algo that trades the pullbacks from the long side. When using an algo like this, I set my target and stop to fit the market that day. I don't test that algo on the market in general but look at trend days up and see how the algo would have performed. This making the algo like I would myself.
By making an algo trade like me, I am more able to replicate my own trading profitability. The algo still won't perform exactly as I would, but it's getting closer.