I'm trying to replicate some of the suggestions of this paper. On page 40-41, it's made the following suggestion when it comes to enforcing a minimum trade size:
As a simple example of this approach, consider the minimum nonzero trade requirement $|(z_t)_i| \ge \epsilon$ for $(z_t)i \neq 0$. We first solve the SPO problem without this constraint, finding a solution $\tilde{z}$. We use this tentative trade vector to determine which entries of $z$ will be zero, negative, or positive (i.e., which assets we hold, sell, or buy). We now impose these sign constraints on the trade vector: We require $(z_t)_i = 0$ if $(\tilde{z}_t)_i = 0$, $(z_t)_i \ge 0$ if $(\tilde{z}_t)_i > 0$, and $(z_t)_i \le 0$ if $(\tilde{z}_t)_i < 0$. We solve the SPO again, with these sign constraints, and the minimum trade constraints as well, which are now linear, and therefore convex.
(excuse the latex notations)
In this context, z is the trade vector. When it's time for the second pass, how do you constrain on z being larger than a certain value? The reason I'm asking is that let's say the smallest positive trade in the first pass is 0.01. If the minimum trade is 0.05, this value will most likely drop to 0 (and the average value of all the other positive entries slightly higher). So I can't use u[u_bar > 0] >= min_trade.
A minimal example below (I'm using u instead of z).
Cheers,
Steve