-
-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Portfolio share with 'bad' assets #741
Comments
Yes, we need to handle that case-- I though I did, in fact. It can be done
as an early step: compute E[Risky] and if it's no greater than Rfree, then
ShareFunc should be constant at zero.
Thanks for catching this. Stress testing / "dumb testing" is a good idea.
…On Wed, Jul 1, 2020, 8:12 PM Mateo Velásquez-Giraldo < ***@***.***> wrote:
Hi,
Working with the ConsPortfolioModel tool while trying to fix the
CGMPortfolio remark, I noticed that the solution does not behave well when
the risky asset is bad enough that the agent never wants to hold it (e.g.
setting RiskyAvg = 0.8), and one works with continuous shares. The solution
method in this setting fails because it finds no share satisfying the FOC
so it goes to the line:
print('No optimal controls found for a=' + str(aNrmGrid[j]))
for every aNrm level, at every time period, and does not compute the
consumption function.
I understand this case does not make much sense from a modeling point of
view, but wanted to report the error nonetheless.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#741>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADKRAFPZKFV3D46S5QE4F6TRZPGGRANCNFSM4OOIILSA>
.
|
Mateo,
Could you make a PR with the fix that Matt recommends?
On Wed, Jul 1, 2020 at 8:26 PM Matthew N. White <[email protected]>
wrote:
… Yes, we need to handle that case-- I though I did, in fact. It can be done
as an early step: compute E[Risky] and if it's no greater than Rfree, then
ShareFunc should be constant at zero.
Thanks for catching this. Stress testing / "dumb testing" is a good idea.
On Wed, Jul 1, 2020, 8:12 PM Mateo Velásquez-Giraldo <
***@***.***> wrote:
> Hi,
>
> Working with the ConsPortfolioModel tool while trying to fix the
> CGMPortfolio remark, I noticed that the solution does not behave well
when
> the risky asset is bad enough that the agent never wants to hold it (e.g.
> setting RiskyAvg = 0.8), and one works with continuous shares. The
solution
> method in this setting fails because it finds no share satisfying the FOC
> so it goes to the line:
>
> print('No optimal controls found for a=' + str(aNrmGrid[j]))
>
> for every aNrm level, at every time period, and does not compute the
> consumption function.
>
> I understand this case does not make much sense from a modeling point of
> view, but wanted to report the error nonetheless.
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <#741>, or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/ADKRAFPZKFV3D46S5QE4F6TRZPGGRANCNFSM4OOIILSA
>
> .
>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#741 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAKCK76QYIJAMD55JS4MSZ3RZPH35ANCNFSM4OOIILSA>
.
--
- Chris Carroll
|
Sure, I can give it a go this afternoon. |
I'm getting started on this now. The proposed solution is to -before solving- check if there is an equity premium, and if there isn't set the share to zero. However, checking the code I see that you now allow income shocks and risky returns to be non-independent. This made me think: are there instances where it is optimal to have a positive share even if there is no premium? Maybe if the asset is a very good hedge against income shocks? |
Yes, I was thinking about that, and the fact that future realizations of
non-zero risky share might need to be computed for the "sticky portfolio"
version of the model. Your intuition is correct that if asset returns and
labor income are negatively correlated, then even a negative spread can
result in non-zero share.
Here's how to handle this robustly. In the step where it looks for bounds
of the "first order condition crossing" in Share at some aNrm value (around
line 790), if the value of the "FOC function" at s_t=0 implies that the
agent would like to hold a negative share, choose s_t=0 and don't do the
linear solve step. That is, if FOC_s[j,0] < 0, s_t should be zero and the
stuff in the try/except block need not be done. Likewise, if FOC_s[j,-1] >
0, the agents wants to hold more than 100% of her wealth in the risky
asset, so s_t = 1 for this a_t and the linear solving step can be skipped.
Ideally, that try/except should not be there-- the code should always be
able to find an appropriate solution to s_t \in [0,1] for any a_t. Man, I
really thought I handled this.
…On Thu, Jul 2, 2020 at 2:21 PM Mateo Velásquez-Giraldo < ***@***.***> wrote:
I'm getting started on this now.
The proposed solution is to -before solving- check if there is an equity
premium, and if there isn't set the share to zero.
However, checking the code I see that you now allow income shocks and
risky returns to be non-independent. This made me think: are there
instances where it is optimal to have a positive share even if there is no
premium? Maybe if the asset is a very good hedge against income shocks?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#741 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADKRAFKL2MMB36MRGJMNAVDRZTFZDANCNFSM4OOIILSA>
.
|
Hi,
Working with the ConsPortfolioModel tool while trying to fix the CGMPortfolio remark, I noticed that the solution does not behave well when the risky asset is bad enough that the agent never wants to hold it (e.g. setting RiskyAvg = 0.8), and one works with continuous shares. The solution method in this setting fails because it finds no share satisfying the FOC so it goes to the line:
for every aNrm level, at every time period, and does not compute the consumption function.
I understand this case does not make much sense from a modeling point of view, but wanted to report the error nonetheless.
The text was updated successfully, but these errors were encountered: