Implementing Minimum Leverage in an SOCP Portfolio Optimization

I'm optimizing a portfolio of n assets and my optimization variable is of the form $$x = [t,w,w_L,w_S]$$ where $$t:= \text{slack variable for turning my QP objective into SOCP constraint}$$ $$w:=\text{n-length vector of net weights}$$ $$w_L:=\text{n-length vector of gross long positions}$$ $$w_L:=\text{n-length vector of gross short positions}$$

I have constraints which ensure that $w = w_L - w_S$, and am controlling for maximum leverage by $w_L + w_S \le M$. This all works perfectly well.

I want to implement some form of fully-invested constraint. So, I (naively) inserted a minimum leverage constraint that $w_L + w_S \ge m.$ I soon realized that my optimization is generating boxed positions such that $\|w\|_1 \ne w_L + w_s$ and that the results with and without minimum leverage are the same.

I then tried to formulate the constraint as $x^TAx \le 0$ where $x^TAx = w_L^Tw_S$, but $A$ wouldn't be positive semi-definite in this case, so I can't turn this into a cone constraint.

I then thought briefly about setting minimum risk, but this resolves into the complement of a second-order cone which is non-convex: $\|\Sigma^{1/2}w\| \ge \sigma.$

Is there a way to implement this minimum leverage constraint and/or minimum risk constraint, or something very similar?

I'm using python with $\verb |cvxopt.solvers.socp|$ as my solver, in case this further informs any comments. If you need any other info to provide a meaningful response, please let me know.

• maybe we can implement a no-box constraint working with the constraint $\|w_L + w_S\|^2 - \|w\|^2 \le 0$? – erbian Apr 17 '15 at 15:03
• is the fact that i'm not achieving my maximum leverage constraint a sign that there is some sort of scaling issue in my objective function (e.g., risk aversion too large, t_costs on wrong basis, etc?) – erbian Apr 22 '15 at 14:13
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 1, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "math_score": 0.7029117941856384, "perplexity": 693.0771921511714}, "config": {"markdown_headings": false, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 20, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "warc_path": "s3://commoncrawl/crawl-data/CC-MAIN-2019-26/segments/1560628001014.85/warc/CC-MAIN-20190627075525-20190627101525-00002.warc.gz"}