I enjoyed reading this but here is a cautionary review of a project in the same field: https://towardsdatascience.com/what-happened-when-i-tried-ma... Discussed here: https://news.ycombinator.com/item?id=21624907
There looks like a lot of overfitting the validation set going on in that post.
It's also a mistake to conclude that "there was no subtle underlying pattern" just because the author couldn't find one.
Throwing XGBoost at a bunch of technical indicators isn't gonna cut it but I have had some solid real-world success (as have several people I know) applying ensembles of deep learning models (with regime switching based on model residuals) to profit from "subtle underlying patterns".