Text this: A self-adaptive step-size search algorithm for the cardinality constrained portfolio optimisation problem