I'm trying to model returns with an ARIMA-GARCH. when I compare one step forecasts for 30 days (of test set) with realized volatility, I find there is a drift between two line-plot:
frcst = result.forecast(horizon=1, start=splitDate, method="simulation", simulations=30 *50)
frcst_variance=frcst.variance .squeeze()
realized_volatility= realized_volatility(n_period=30)
fig, ax = plt.subplots(figsize= (12,6))
ax.plot(np.sqrt(frcst_variance.sort_index()), "red" ,realized_volatility.sort_index(), "blue",linewidth =0.5)

it sounds the forecast is accurate unless the drift which has occurred. why this has occurred?