Hey Ivan,
your simulation looks sound, there doesn't seem to be a lagging effect such as I describe here. Nevertheless, there are few things that you need to include, in order to make it a more believable backtest:
- most importantly: is the performance that you show out-of-sample (i.e. on a separate training set?). always use a train-test-split, otherwise, your performance is just in-sample optimized.
- trading fees; even though you are trading on a daily timescale, fees can eradicate your gains from the 53% edge classifier.
- i would not rely only on an up/down classification, as it does not give you any information about the magnitude of the return that you can expect. you should try to additionally forecast the size of the return, or the future volatility, with a regressor, in order to know whether a trade is worth being entered (compared to the cost that it will incur).
- you don't necessarily need to focus on forecasting the return only; for instance try forecasting the volume and other features and see how that goes. if you have a good model for forecasting various market variables, you can infer the return from that.
- you could consider computing more additional stationary features (like the indicators you have) and do data augmentation on the training set.
Hope it gives you some additional ideas!