Hi all,

Hope the administrator doesn't mind that i repost my question in a plain
format. I was told my previous posts were
"scrubbed" since there was "an embedded and charset-unspecified text"...


Best,

Beiting

-------
Hi all,

I am trying to solve a portfolio optimization problem as follows:

Maximize Objective f = w' r - Lamda * w' * Omega * w - Tc * |w- w0|'
Subject to:

|w| < w_max
sum w < net_pos_max
sum|w| < gross_pos_max, where

w: weights for each stock (vector)
r: expected return (vector)
w0: initial weights (vector)
tc: expected transaction costs (vector)
Omega: covariance matrix
Lamda: risk penalty parameter

w_max: given maximum weights for each asset
net_pos_max: given maximum net position for the whole portfolio (long and
short), say 40% (with 120% long and 80% short)
gross_pos_max: given maximum gross position for the whole portfolio (long
and short), say 200% ( with 120% long and 80% short)

Originally I thought this was just a typical optimization problem that takes
into accounts of transaction costs in a very simple form. However,
I then found it was more complicated, at least cannot be solved by directly
calling the QuadProg package ("QP") in R. I would greatly appreciate any
inputs and help, and here are some of my findings:

1, It is the absolute value bars of transaction cost term that gives me the
headache. The objective function is not differentiable any more and cannot
be solved by those converging optimization functions that accepts
differentiable objective functions, the QP in this case. Though it doesn't
destroy the quadratic function form.

2, Possible solution a): Rewrite the absolute values in the obj. function by
using a so called "epi-graph" reformulation. In short, replacing |x| through
introducing new variable like

 x  =  x+  -  x-
|x| = x+  +  x-

while x+, x- >= 0

3, Possible solution b): Construct a differential approximation for |x| by
introducing a "smoothing function |x| with a Gaussian Kernel.

I don't which is easier to implement in R and would be grateful for any
further explanation. Have little experience in optimization except some
simple mean-variance ones (efficient frontier construction) when was at
school.

Thank you!

	[[alternative HTML version deleted]]

