Utility-free optimization finds the trade that moves as close as possible to an ideal target portfolio while still obeying the specified constraints.
This avoids the need to make explicit predictions of the expected returns of the assets. It also eliminates the need for a variance matrix unless there are constraints (such as a tracking error constraint) that depend on variance.
This is done with the
trade.optimizer function where the target portfolio is specified by the dist.center argument.