The real problem with TC is Optimizer Misalignment

I think we are then. When I talked about “costs” in the original post I meant the sum of every penalty that the optimizer uses ie Optimizer(p) = argmax_q( p.T q - costs(q) ). It is my contention that all of these costs should be subtracted from return including those for feature exposure, volatility exposure, factor exposure, trading cost, and whatever others the optimizer uses.

The tournament participants need to be more concerned about the penalties the optimizer uses (including the penalty for trading costs) if they are not subtracted from returns. Here is a proof of that:

A proof that an aligned objective is maximized when the input to the optimizer is the expected value of the target:

Suppose our target y is a probabilistic random variable with expected value ym. Our optimizer has costs C(q) and performs O(p) = argmax_q( p.T q – C(q) ). Our aligned objective is L(q,y) = y.T q – C(q)

Our expected aligned objective value with respect to the optimizer output is then:

Lm(q) = mean[ y.T q – C(q)]
= mean[ y.T q ] – C(q)
= mean[ y ].T q – C(q)
= ym.T q – C(q)

The optimizer output that maximizes the expected value of the objective is then:

argmax_q[Lm] = argmax_q[ ym.T q – C(q) ] = O(ym) ( by the definition of our optimizer function O(x) )

Thus I have shown that the expected value of an aligned objective is maximized when the output of the optimizer is that output that is produced when the input is the expected value of the target. My previous post already gave an example that demonstrates that this isn’t necessarily the case with an unaligned objective.

So when the objective is aligned with the optimizer, the incentive is to create a meta-model that is a good estimate of expected returns. When the optimizer is unaligned, the incentive is create a meta-model with properties that are dependent on the penalties in the optimizer.

Users have to worry about the penalties in the optimizer when they are not subtracted from returns.

4 Likes