Class MarketImpact1

  • All Implemented Interfaces:
    Function<Vector,​Double>, RealScalarFunction

    public class MarketImpact1
    extends SOCPPortfolioConstraint
    Constructs the constraint coefficient arrays of a market impact term in the compact form. The constraint is generated during the transformation of the objective function.

    This market impact term in the objective function takes this form: \[ \sum_{j=1}^n\left(m_j |x_j|^{\frac{3}{2}}\right)\leq t_2. \] Let \(\bar{x}=|x|\), the market impact term is transformed into: \[ \sum_{j=1}^n\left( m_{j}\bar{x}_{j}^{\frac{3}{2}}\right)\leq t_2 \] By introducing variables \(y=x+w^{0}\), \(\alpha\) and \(\beta\), the above inequality is equivalent to: \[ \sum\beta_{j}\leq t_{2}\\ |y_{j}-w_{j}^{0}|\leq\bar{x}_{j}\;j=1,\cdots,n\\ m_{j}\bar{x}_{j}^{\frac{3}{2}}\leq \beta_{j}\;j=1,\cdots,n\\ \] These constraints can be further transformed into: \[ \sum_{j=1}^{n}\beta_{j}\leq t_{2}\\ y_{j}-w_{j}^{0}\leq\bar{x}_{j},\; j =1,\cdots, n\\ -y_{j}+w_{j}^{0}\leq \bar{x}_{j},\; j=1,\cdots,n\\ \bar{x}_{j}^{\frac{3}{2}}\leq \frac{\beta_{j}}{m_{j}},\; j=1,\cdots,n\\ \] Therefore we have: \[ ||0||_{2}\leq t_{2}-\sum_{j=1}^{n}\beta_{j}\\ ||0||_{2}\leq\bar{x}_{j}-(y_{j}-w_{j}^{0}),\; j =1,\cdots, n\\ ||0||_{2}\leq \bar{x}_{j}-(-y_{j}+w_{j}^{0}),\; j=1,\cdots,n\\ \bar{x}_{j}^{\frac{3}{2}}\leq \frac{\beta_{j}}{m_{j}},\;j=1,\cdots,n. \] The last term, \(\bar{x}_{j}^{\frac{3}{2}}\leq \frac{\beta_{j}}{m_{j}}\), is equivalent to: \[ \bar{x}_{j}^{\frac{3}{2}}\leq \frac{\beta_{j}}{m_{j}},\;\bar{x}_{j}\geq 0\Longleftrightarrow \bar{x}_{j}^2\leq s_{j} \frac{\beta_{j}}{m_{j}},\; s_{j}\leq \sqrt{\bar{x}_{j}},\;\bar{x}_{j}\geq0,\; s_{j}\geq 0\;, \frac{\beta_{j}}{m_{j}}\geq0 \Longleftrightarrow\\ \bar{x}_{j}^2\leq s_{j} \frac{\beta_{j}}{m_{j}},\; s_{j}^{2} \leq \bar{x}_{j},\;\bar{x}_{j}\geq0,\; s_{j}\geq 0\;, \frac{\beta_{j}}{m_{j}}\geq 0 \Longleftrightarrow\\ \bar{x}_{j}^2+\left(\frac{\beta_{j}}{2m_{j}}-\frac{s_{j}}{2}\right)^2\leq \left(\frac{\beta_{j}}{2m_{j}}+\frac{s_{j}}{2}\right)^2,\;s_{j}^{2}+\left(\frac{1-\bar{x}_{j}}{2}\right)^2\leq \left(\frac{1+\bar{x}_{j}}{2}\right)^2,\;\bar{x}_{j}\geq0,\;s_{j}\geq 0\;, \frac{\beta_{j}}{m_{j}}\geq 0. \] Because \(\bar{x}_{j}\geq0,\;s_{j}\geq 0\;, \frac{\beta_{j}}{m_{j}}\geq 0\) can be deduced from other constraints, they can be deleted from the system of constraints. The constraints deduced from \(\bar{x}_{j}^{\frac{3}{2}}\leq \frac{\beta_{j}}{m_{j}}\) can be written as: \[ ||\left(\begin{array}{c}\bar{x}_{j}\\\frac{\beta_{j}}{2m_{j}}-\frac{s_{j}}{2}\end{array}\right)||_{2}\leq\frac{\beta_{j}}{2m_{j}}+\frac{s_{j}}{2},j=1,\cdots,n,\\ ||\left(\begin{array}{c}s_{j}\\\frac{1-\bar{x}_{j}}{2}\end{array}\right)||_{2}\leq\frac{1+\bar{x}_{j}}{2},j=1,\cdots,n. \] Combine all the constraints together, the system of constraints for market impact is: \[ ||0||_{2}\leq t_{2}-\sum_{j=1}^{n}\beta_{j},\\ ||0||_{2}\leq\bar{x}_{j}-(y_{j}-w_{j}^{0}), \;j =1,\cdots, n,\\ ||0||_{2}\leq \bar{x}_{j}-(-y_{j}+w_{j}^{0}),\; j=1,\cdots,n,\\ ||\left(\begin{array}{c}\bar{x}_{j}\\\frac{\beta_{j}}{m_{j}}-\frac{s_{j}}{2}\end{array}\right)||_{2}\leq\frac{\beta_{j}}{m_{j}}+\frac{s_{j}}{2},\;j=1,\cdots,n,\\ ||\left(\begin{array}{c}s_{j}\\\frac{1-\bar{x}_{j}}{2}\end{array}\right)||_{2}\leq\frac{1+\bar{x}_{j}}{2},\;j=1,\cdots,n. \] The standard SOCP form of the constraints are: \[ ||0||_{2}\leq t_{2}-\sum_{j=1}^{n}\beta_{j} \Longleftrightarrow ||A_{1}^{\top}z+C_{1}||_{1}\leq b^{\top}_{1}z+d_{1}\\ A_{1}^{\top}=0_{1\times n},\; C_{1}=0,\; b_{1}=\left(\begin{array}{c}-1_{n\times 1}\\1\end{array}\right),\; d_{1}=0,\; z=\left(\begin{array}{c}\beta\\t_{2}\end{array}\right). \] \[ ||0||_{2}\leq\bar{x}_{j}-(y_{j}-w_{j}^{0}) \Longleftrightarrow ||A_{2,j}^{\top}z+C_{2,j}||_{2}\leq b^{\top}_{2,j}z+d_{2,j},\quad j=1,\cdots,n\\ A_{2,j}^{\top}=0_{1\times 2n},\; C_{2,j}=0,\; b_{2,j}=\left(\begin{array}{c}-e_{j}\\e_{j}\end{array}\right),\; d_{2,j}=w_{j}^{0},\; z=\left(\begin{array}{c}y\\\bar{x}\end{array}\right), \] where \(e_{j}\) is a \(n\) dimensional vector whose \(j\)-th entry is \(1\) and all the other entries are \(0\). \[ ||0||_{2}\leq\bar{x}_{j}-(-y_{j}+w_{j}^{0}) \Longleftrightarrow ||A_{3,j}^{\top}z+C_{3,j}||_{2}\leq b^{\top}_{3,j}z+d_{3,j},\quad j=1,\cdots,n\\ A_{3,j}^{\top}=0_{1\times 2n},\; C_{3,j}=0,\; b_{3,j}=\left(\begin{array}{c}e_{j}\\e_{j}\end{array}\right),\; d_{3,j}=-w_{j}^{0},\; z=\left(\begin{array}{c}y\\\bar{x}\end{array}\right). \] \[ ||\left(\begin{array}{c}\bar{x}_{j}\\\frac{\beta_{j}}{2m_{j}}-\frac{s_{j}}{2}\end{array}\right)||_{2}\leq\frac{\beta_{j}}{2m_{j}}+\frac{s_{j}}{2}\Longleftrightarrow ||A_{4,j}^{\top}z+C_{4,j}||_{2}\leq b^{\top}_{4,j}z+d_{4,j},\quad j=1,\cdots,n\\ A_{4,j}^{\top}=\left(\begin{array}{ccc}e_{j}^{\top}&0_{1\times n}&0_{1\times n}\\0_{1\times n}&\frac{1}{2m_{j}}e_{j}^{\top}& -\frac{1}{2}e_{j}^{\top}\end{array}\right),\; C_{4,j}=0_{2 \times 1},\; b_{4,j}=\left(\begin{array}{c}0_{n\times 1} \\\frac{1}{2m_{j}}e_{j}\\\frac{1}{2}e_{j}\end{array}\right),\; d_{4,j}=0,\; z=\left(\begin{array}{c}\bar{x}\\\beta_{j}\\s\end{array}\right). \] \[ ||\left(\begin{array}{c}s_{j}\\\frac{1-\bar{x}_{j}}{2}\end{array}\right)||_{2}\leq\frac{1+\bar{x}_{j}}{2}\Longleftrightarrow ||A_{5,j}^{\top}z+C_{5,j}||_{2}\leq b^{\top}_{5,j}z+d_{5,j},\quad j=1,\cdots,n\\ A_{5,j}^{\top}=\left(\begin{array}{ccc}0_{1\times n}&e_{j}^{\top}\\-\frac{1}{2}e_{j}^{\top}&0_{1\times n}\end{array}\right),\; C_{5,j}=\left(\begin{array}{c}0\\\frac{1}{2}\end{array}\right),\; b_{5,j}=\left(\begin{array}{c}\frac{1}{2}e_{j}\\0_{n\times 1}\end{array}\right),\; d_{5,j}=\frac{1}{2},\; z=\left(\begin{array}{c}\bar{x}\\s\end{array}\right). \]
    See Also:
    "Section 2.1, Modeling market impact, http://mosek.com/fileadmin/reports/tech/portfolio.pdf"
    • Constructor Detail

      • MarketImpact1

        public MarketImpact1​(Vector w_0,
                             Vector m)
        Constructs a market impact term.
        Parameters:
        w_0 - the initial position
        m - the market impact parameter
    • Method Detail

      • evaluate

        public Double evaluate​(Vector y)
        Description copied from interface: Function
        Evaluate the function f at x, where x is from the domain.
        Parameters:
        y - x
        Returns:
        f(x)
      • dimensionOfDomain

        public int dimensionOfDomain()
        Description copied from interface: Function
        Get the number of variables the function has. For example, for a univariate function, the domain dimension is 1; for a bivariate function, the domain dimension is 2.
        Returns:
        the number of variables
      • dimensionOfRange

        public int dimensionOfRange()
        Description copied from interface: Function
        Get the dimension of the range space of the function. For example, for a Rn->Rm function, the dimension of the range is m.
        Returns:
        the dimension of the range