tcloaa / Deep-Portfolio-Theory

Autoencoder framework for portfolio selection (paper published by J. B. Heaton, N. G. Polson, J. H. Witte.)
127 stars 64 forks source link

Use of application #5

Open joaosalvado10 opened 6 years ago

joaosalvado10 commented 6 years ago

Hello, I understand from the paper that it used an autoencoder to decide which stocks use. However, I don't see where you use 5% referred in the paper. Also, isn't it the second part of the paper only using the selected stocks to beat the index? Thank you

tcloaa commented 6 years ago

Hi,

  1. Application 1 is Section 5.2 (Retracing IBB Index), corresponding to Part 1.ipynb in this repo.
  2. Application 2 is Section 5.3 (Beating IBB Index), which currently I didn't code in this repo. (I will name it as Part 2.ipynb)
  3. Replacing all returns smaller than -5% with 5% is only operated during the calibration phase of Application 2 (Section 5.3: Beating IBB Index). So, of course, you won't see it in retracing IBB Index.

The paper is clear on its structure but ambiguous on details. Spending more time on it may help.

Thanks,

joaosalvado10 commented 6 years ago

Thanks for your answer. From what I got, the main difference between section 5.2 and section 5.3 is the fact that in section 5.3 the index is changed(5%) so the most communal stocks and the most no communal stocks will change and the network will change as the output.

I don't understand in the paper if when they are comparing the IBB with the S.25, S.45, S.65 if they are only buying those stocks and compare the results with the index. Also, I do not understand how this could be used in a real-world scenario.

As I understood the paper, in fact, the graphs do not show anything because they are plotting the output of the network which is something that you can't buy and they are comparing it with the real stock, well in the part 2 the network was trained to perform better than the index so of course it will but in fact you can not buy the output of that autoencoder so, or I am not understanding correctly the idea or this does not make any sense at all.

tcloaa commented 6 years ago

Before answering your questions, I have to say that, me either, have no idea whether this is a workable portfolio selection method or just an "academic" paper.

  1. S25, S45, S65 are 3 different portfolios. From my understanding, the authors just wanted to show the tradeoff between the number of stocks and accuracy (MSE).
  2. I guess that the reason the authors use ReLU is that, it is very similar to the return function of Options. And that corresponds to the fact they only use 1 hidden layer.

And yes, as you do, I tend to believe that this may not be a workable solution towards real finance industry.

joaosalvado10 commented 6 years ago

Well, I understand why a ReLu has a behavior similar to CALL and PUT option, however, I do not understand how to apply the weights to a real world. The article does not cover how to use in a real-world scenario. Also, Imagine that instead of changing the losses smaller than 5% to 5% they had changed them to exactly 15% they would get even better results which do not mean that would be possible to replicate in investing, and if it is not possible is kind of useless. Or maybe I am not getting it correctly.

tcloaa commented 6 years ago

I have never applied this method in reality. I will leave this issue open for discussion.

ZhiqiangFong commented 6 years ago

As the paper says, the model builds a non-linear mapping from the stocks to a certain portfolio. In reality, it seems impossible to make non-linear investment. I think we can just do some linear combinations of the stocks. So I think it is just a 'academic' paper.

mcadhoc commented 4 years ago

I just sent the author an email so I could figure out information that we need. I'm also going to go through your code. I very clearly understand your issue.

I want to test it against a traditional Markowitz portfolio allocation model as the benchmark.

First question: At any point did you compare against an equal variance portfolio (or supposed)? I found that point unclear in the article. You had superior results in draw down scenarios.

Second question: does your code allow you to vary the target return? I want to gage how flexible it would be to use versus a Markowitz model that I have.

reche800 commented 4 years ago

@mcadhoc I have got the same question with you. Do you reveive any feedbacks from the author? By the way, I found another solution for deep portfolio, but I don't understand the weights part. https://github.com/DLColumbia/DL_forFinance/blob/master/IBB-Replication.ipynb Thank you.

XRZeng423 commented 3 years ago

I think this paper might be workable in reality if we can get the weights of each input. Then it is possible to use investable products(like stocks or funds, etc.) to reproduce benchmark and beat the benchmark. The problem is that whether it is possible to get the weights