I think you are introducing forwardlooking bias by selecting the test set samples randomly within the same timeframe as the training set. You should only use test set samples that come after the last point of the training set (plus an extra margin to avoid window overlap). Otherwise it is pretty easy for the model to utilize future information to come up with correct predictions on past testset samples, which is what i suspect the high accuracy of your model stems from.