Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
personal:portfolio:portopt [2014/05/28 14:49] antonello |
personal:portfolio:portopt [2015/09/10 15:19] antonello [Compilation (not needed if using a pre-compiled version)] |
||
---|---|---|---|
Line 28: | Line 28: | ||
In such case the indifference curves can be drawn like a bundle of straight lines having equation $prod = \alpha * var + \beta$, where $\alpha$ is the linear risk aversion coefficient and both $prod$ and $var$ refer to the overall portfolio' | In such case the indifference curves can be drawn like a bundle of straight lines having equation $prod = \alpha * var + \beta$, where $\alpha$ is the linear risk aversion coefficient and both $prod$ and $var$ refer to the overall portfolio' | ||
- | Point $B$ represents the point having the lowest possible portfolio variance. | + | Point $B$ represents the point having the lowest possible portfolio variance. |
\begin{equation} | \begin{equation} | ||
Line 54: | Line 54: | ||
\end{equation} | \end{equation} | ||
- | where $x_i$ is the share of the asset $i$, $p_i$ is its productivity and hence $\sum_i {x_i p_i}$ is the overall portfolio productivity and $\sum_i { \sum_j { x_i x_j \sigma_{i, | + | where $x_i$ is the share of the asset $i$, $p_i$ is its productivity, $\sigma_{i, |
As the only quadratic term arises when $i=j$ and $\sigma_{i, | As the only quadratic term arises when $i=j$ and $\sigma_{i, | ||
Line 81: | Line 81: | ||
g++ -std=c++0x -O -shared -Wl, | g++ -std=c++0x -O -shared -Wl, | ||
(then please refer to the python example for usage) | (then please refer to the python example for usage) | ||
+ | |||
+ | If you want to change the output library name (e.g. you want to create _portopt_p3.so for python3 alongside _portopt.so for python2), do it in the %module variable of portopt.i and in the -soname and -o options of the linking command (and don't forget to use the right python included directory in the compilation command).\\ | ||
+ | You can then load the correct module in your script with something like: | ||
+ | import sys | ||
+ | if sys.version_info < (3, 0): | ||
+ | import portopt | ||
+ | else: | ||
+ | import portopt_p3 as portopt | ||
===== Usage ===== | ===== Usage ===== | ||
Line 93: | Line 101: | ||
Call: | Call: | ||
- | double solveport (const vector< vector < | + | double solveport (const vector< vector < |
| | ||
- | == As a lib ising Python: == | + | == As a lib using Python: == |
import portopt | import portopt | ||
- | results = portopt.solveport(var, | + | results = portopt.solveport(var, |
+ | functioncost = results[0] | ||
+ | shares | ||
+ | errorcode | ||
+ | errormessage = results[3] | ||
=== Options === | === Options === | ||
Line 106: | Line 118: | ||
-a --alpha [alpha_coefficient] | -a --alpha [alpha_coefficient] | ||
-f --field-delimiter [field_delimiter] | -f --field-delimiter [field_delimiter] | ||
- | -s --decimal-separator [decimal-separator] | + | -s --decimal-separator [decimal-separator] |
+ | -t --tollerance [tolerance] | ||
</ | </ | ||
Line 113: | Line 126: | ||
* Higher the alpha, lower the agent risk aversion; | * Higher the alpha, lower the agent risk aversion; | ||
* Set a negative alpha to retrieve the portfolio with the lowest possible variance; | * Set a negative alpha to retrieve the portfolio with the lowest possible variance; | ||
- | * Set alpha to zero to retrieve the portfolio with the highest mean, indipendently | + | * Set alpha to zero to retrieve the portfolio with the highest mean, independently |
- | * Assets shares are returned in the x_h vector, eventual error code (0: all fine, 1: input data error, 2: problem has no solutions, 3: internal | + | * Assets shares are returned in the x_h vector, eventual error code (0: all fine, 1: input data error, 2: no solutions, 3: didn't solve, 4: solver |
+ | * Use option " | ||
| | ||
| | ||
Line 130: | Line 144: | ||
===== Acknowledgements ===== | ===== Acknowledgements ===== | ||
- | This work was supported by the French National Research Agency through the Laboratory of Excellence ARBRE, a part of the " | + | This work was supported by: |
+ | |||
+ | * a grant overseen by Office National des Forêts through the [[http:// | ||
+ | * the French National Research Agency through the [[http:// | ||
+ | |||