Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
personal:portfolio:portopt [2015/03/30 14:20]
antonello [Theorical Background]
personal:portfolio:portopt [2016/02/15 11:19]
antonello
Line 21: Line 21:
 In portfolio theory agents attempts to maximise portfolio expected return for a given amount of portfolio risk, or equivalently to minimise risk for a given level of expected return. In portfolio theory agents attempts to maximise portfolio expected return for a given amount of portfolio risk, or equivalently to minimise risk for a given level of expected return.
  
-{{ :personal:portfolio:portfolio_graph.png?nolink |Theoretical framework}}+{{ :personal:portfolio:portfolio_model.png?nolink |Theoretical framework}}
  
 The portfolio management can be portrayed graphically as in the above Figure, where the feasible set of variance-profitability combinations in enclosed by the blue curve and the B-D segment represents the efficient frontier, where no variance can be lowered at productivity's price or equivalently no productivity can be increased at price of increasing variance. The portfolio management can be portrayed graphically as in the above Figure, where the feasible set of variance-profitability combinations in enclosed by the blue curve and the B-D segment represents the efficient frontier, where no variance can be lowered at productivity's price or equivalently no productivity can be increased at price of increasing variance.
Line 81: Line 81:
   g++ -std=c++0x -O -shared -Wl,-soname,_portopt.so -o _portopt.so QuadProg++.o Array.o anyoption.o portopt.o portopt_wrap.o   g++ -std=c++0x -O -shared -Wl,-soname,_portopt.so -o _portopt.so QuadProg++.o Array.o anyoption.o portopt.o portopt_wrap.o
 (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 =====
 +
 +:!: Please notice that the API changed from version 1.1, with the introduction of the ''port_opt_mean'' and ''port_opt_var'' parameters (both by reference). For the old 1.1 call instructions see [[https://lobianco.org/antonello/personal:portfolio:portopt?rev=1441891152|here]].
 +
 +
 == Linux == == Linux ==
   ./portopt [options]   ./portopt [options]
Line 93: Line 105:
  
 Call: Call:
-  double solveport (const vector< vector <double> > &VAR, const vector<double> &MEANS, const double &alpha, vector<double> &x_h, int &errorcode, string &errormessage, const double tollerance = 0.000001)+  double solveport (const vector< vector <double> > &VAR, const vector<double> &MEANS, const double &alpha, vector<double> &x_h, int &errorcode, string &errormessage, double &port_opt_mean, double &port_opt_var, const double tollerance = 0.000001)
      
 == As a lib using Python: == == As a lib using Python: ==
Line 102: Line 114:
   errorcode    = results[2]   errorcode    = results[2]
   errormessage = results[3]   errormessage = results[3]
 +  opt_mean     = results[4]
 +  opt_var      = results[5]
  
 === Options === === Options ===
 <code> <code>
-  -h  --help                                    Prints this help +  -h  --help                                   Prints this help 
   -v  --var-file [input_var_file_name]         Input file containing the variance/covariance matrix (relative path)      -v  --var-file [input_var_file_name]         Input file containing the variance/covariance matrix (relative path)   
   -m  --means-file [input_means_file_name]     Input file containing the means vector (relative path)     -m  --means-file [input_means_file_name]     Input file containing the means vector (relative path)  
Line 133: Line 147:
 You should have received a copy of the GNU Lesser General Public License along with PortOpt.  If not, see [[http://www.gnu.org/licenses]]. You should have received a copy of the GNU Lesser General Public License along with PortOpt.  If not, see [[http://www.gnu.org/licenses]].
  
 +
 +===== Citations =====
 +If you use this program or a derivative of it in an academic framework, please cite it!\\
 +Please cite as:
 +  * A. Dragicevic, A. Lobianco,  A. Leblois (2016), "[[http://dx.doi.org/10.1016/j.forpol.2015.12.010|Forest planning and productivity-risk trade-off through the Markowitz mean-variance model]]", Forest Policy and Economics, Volume 64, March 2016, Pages 25–34.
  
 ===== Acknowledgements ===== ===== Acknowledgements =====
personal/portfolio/portopt.txt · Last modified: 2018/06/18 15:11 (external edit)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0