In the shown code, all five windows are scored on the full price series. I could not find the final-20% split used for the out-of-sample claims. Could you add the split date and separate train/test scorecards? Pick the window on training data only, then carry that fixed choice into the holdout with enough earlier bars to warm up the indicator. That would make the out-of-sample result reproducible without choosing the best window after seeing it.