def METHOD_NAME(
    self, fh, X=None, return_pred_int=False, alpha=DEFAULT_ALPHA
):
    """Make in-sample prediction using single-step moving-cutoff predictions.
    Parameters
    ----------
    fh : np.array
        all non-positive (<= 0)
    X : pd.DataFrame
    return_pred_int : bool
    alpha : float or array-like
    Returns
    -------
    y_pred : pd.DataFrame or pd.Series
    """
    if return_pred_int:
        raise NotImplementedError()
    y_train = self._y
    # generate cutoffs from forecasting horizon, note that cutoffs are
    # still based on integer indexes, so that they can be used with .iloc
    cutoffs = fh.to_relative(self.cutoff) + len(y_train) - 2
    cv = CutoffSplitter(cutoffs, fh=1, window_length=self.window_length_)
    return self._predict_moving_cutoff(y_train, cv, X, update_params=False)