<div dir="ltr">see comments inline<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Oct 7, 2013 at 8:51 AM, Doug Martin <span dir="ltr"><<a href="mailto:martinrd@comcast.net" target="_blank">martinrd@comcast.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ross,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">OK, I see what you mean.   Do keep in mind the following:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><span>1)<span style="font:7.0pt "Times New Roman"">      </span></span></span><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Before a search is done the code should check that the mean return of the global minimum ETL (under constraints) – I call this GMETL is less than the risk free rate (which may be zero by default).  Otherwise the search is useless as there is no tangent portfolio (well I have to be a little careful, this is definitely the case for the MVO efficient frontier without constraints and most likely with most constraints, and ditto for the mean-ETL efficient frontier).  By this ratio is known as the STARR ratio in the literature.</span></p>
</div></div></blockquote><div style> Thanks for the suggestion, I'll add the check. To clarify, I think you mean that the mean return of the GMETL portfolio should be greater than the risk-free rate, correct?</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p><p><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><span>2)<span style="font:7.0pt "Times New Roman"">      </span></span></span><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">If in your second paragraph do you mean that is the default behavior?  If so there should be a default argument whose default is “maxSTARR”, but the user should also be able to choose GMETL.</span></p>
</div></div></blockquote><div style> Correct. If the portfolio has two objectives, mean and ES, then the optimal portfolio will be the max STARR portfolio. If the user just wants the GMETL portfolio, the portfolio should only have a single objective for ETL. </div>
<div style><br></div><div style>I did make it possible to pass in maxSTARR=TRUE or maxSTARR=FALSE in the dots in optimize.portfolio. I did the same for max sharpe ratio (maxSR). This is important to have for the quadratic utility case because the user may want to specify a risk_aversion parameter and get the optimal portfolio at the given risk_aversion parameter. Setting maxSR=TRUE would override any risk_aversion parameter and find the max sharpe ratio portfolio, so I made maxSR=FALSE the default.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u><u></u></span></p>
<p><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Doug<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a> [mailto:<a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a>] <b>On Behalf Of </b>Ross Bennett<br>
<b>Sent:</b> Monday, October 07, 2013 8:30 AM</span></p><div><div class="h5"><br><b>To:</b> PortfolioAnalytics<br><b>Subject:</b> Re: [GSoC-PortA] Mean-mETL objective?<u></u><u></u></div></div><p></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Doug,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I don't think you were missing anything, perhaps I misunderstood. From previous emails in this thread, I thought that there was a way to formulate the mean/ETL as an LP problem that would avoid having to do a search for the maximum mean/ETL portfolio. There is no need to do this for DEoptim or random portfolios, I was just referring to maximizing mean/ETL using ROI. <u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I implemented this as of commit r3212. If mean and ETL (also ES or CVaR) are objectives and optimize_method="ROI", the optimal portfolio returned is one that maximizes mean/ETL. I use a bisection search to find the portfolio that maximizes mean/ETL.<u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Ross<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">
<u></u> <u></u></p><div><p class="MsoNormal">On Sun, Oct 6, 2013 at 6:11 PM, Doug Martin <<a href="mailto:martinrd@comcast.net" target="_blank">martinrd@comcast.net</a>> wrote:<u></u><u></u></p><div><div><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Maybe I’m missing something, and you are concerned about something more than just mean-ETL optimization, i.e., using random portfolios or DeOptim due to constraints???     </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">As for the STARR ratio Step 3 is fine, and can also be used for max Sharpe ratio.  As long as the efficient frontier is concave  both ratios increase until the maximum and then decrease, so a simple line search will work and converge pretty rapidly.  I have a placeholder for a max SR section in Chapter 2 and will do soon.  </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Am I missing something?</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Doug</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a> [mailto:<a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a>] <b>On Behalf Of </b>Ross Bennett<br>
<b>Sent:</b> Sunday, October 06, 2013 5:56 PM<br><b>To:</b> PortfolioAnalytics</span><u></u><u></u></p><div><div><p class="MsoNormal"><br><b>Subject:</b> Re: [GSoC-PortA] Mean-mETL objective?<u></u><u></u></p></div></div>
<div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">It will be nice if there is a simple way to formulate this as an LP problem to maximize mean/ETL. If there is not a simple formulation, one way to approach this would be similar to finding the tangency portfolio on the efficient frontier. Generating a finite number of portfolios along the frontier and finding the portfolio with the highest mean/ETL will find the approximate tangency portfolio and is what I do for the efficient frontier code.<u></u><u></u></p>
<div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Step 1: Calculate the minimum ETL portfolio given the constraints. This is the minimum possible mean return.<u></u><u></u></p></div><div><p class="MsoNormal">
 <u></u><u></u></p></div><div><p class="MsoNormal">Step 2: Calculate the maximum return portfolio given the constraints. This is the maximum possible mean return.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p>
</div><div><p class="MsoNormal">Step 3: Increase or decrease the target return constraint and run the optimization.<u></u><u></u></p></div><div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">
Repeat step 3 until we get convergence within a specified tolerance or reach the maximum number of iterations.<u></u><u></u></p></div></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">I'm not sure what the right approach or method would be for step 3. Maybe split the frontier in two equal spaces and iteratively shrink the search space until we find a solution. <u></u><u></u></p>
</div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Am I on the right track here? Any thoughts on how to do step 3?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div>
<div><p class="MsoNormal">Thanks,<u></u><u></u></p></div><div><p class="MsoNormal">Ross<u></u><u></u></p></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> <u></u><u></u></p><div><p class="MsoNormal">On Sun, Oct 6, 2013 at 8:44 AM, Doug Martin <<a href="mailto:martinrd@comcast.net" target="_blank">martinrd@comcast.net</a>> wrote:<u></u><u></u></p>
<p class="MsoNormal">Will need to do an in-depth comparison of Rglpk versus Symphony LP (withMIP)<br>solvers.<br><br>I think you mentioned a project for evaluating the various solvers against<br>commonly used benchmark problems? What is the status and timing of that?<u></u><u></u></p>
<div><p class="MsoNormal"><br>Doug<br><br><br><br>-----Original Message-----<br>From: <a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a><br>[mailto:<a href="mailto:gsoc-porta-bounces@lists.r-forge.r-project.org" target="_blank">gsoc-porta-bounces@lists.r-forge.r-project.org</a>] On Behalf Of Brian<br>
G. Peterson<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Sent: Sunday, October 06, 2013 8:19 AM<br>To: <a href="mailto:gsoc-porta@r-forge.wu-wien.ac.at" target="_blank">gsoc-porta@r-forge.wu-wien.ac.at</a><br>
Subject: Re: [GSoC-PortA] Mean-mETL objective?<u></u><u></u></p></div><div><div><p class="MsoNormal">On 10/06/2013 10:00 AM, Doug Martin wrote:<br>> P.S. Chapter 4 in the 2nd edition on mean-ETL optimization via LP with<br>
> Rglpk, with some nice examples (will send when available).   I will also<br>use<br>> this for the MIP examples in an advanced constraints chapter (since we<br>> don't have a QP solver available with MIP capability, unless I can<br>
> find time to do a chapter using CPLEX via PortfolioAnalytics via ROI).<br><br>there is also a ROI front end to the MILP Symphony solver.<br><br>I'm not sure iof the Symphony solver includes QP constraints.<br><br>
--<br>Brian G. Peterson<br><a href="http://braverock.com/brian/" target="_blank">http://braverock.com/brian/</a><br>Ph: <a href="tel:773-459-4973" target="_blank">773-459-4973</a><br>IM: bgpbraverock<br>_______________________________________________<br>
GSoC-PortA mailing list<br><a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">GSoC-PortA@lists.r-forge.r-project.org</a><br><a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><br>
<br>_______________________________________________<br>GSoC-PortA mailing list<br><a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">GSoC-PortA@lists.r-forge.r-project.org</a><br><a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><u></u><u></u></p>
</div></div></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>_______________________________________________<br>GSoC-PortA mailing list<br><a href="mailto:GSoC-PortA@lists.r-forge.r-project.org" target="_blank">GSoC-PortA@lists.r-forge.r-project.org</a><br>
<a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p>
</div></div></div></div></div><br>_______________________________________________<br>
GSoC-PortA mailing list<br>
<a href="mailto:GSoC-PortA@lists.r-forge.r-project.org">GSoC-PortA@lists.r-forge.r-project.org</a><br>
<a href="http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta" target="_blank">http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/gsoc-porta</a><br>
<br></blockquote></div><br></div></div>