Files

9.4 KiB

Forecast methods reference

Audience: Operator

Catalog of --method keys for forecast_generate (and related tune/backtest tools): categories, libraries, default --params, and dependencies.

Plain-language method families: Theta · ARIMA · ETS · Monte Carlo / GBM · Foundation models · Ensemble.

Your install is the source of truth. Optional extras change what is available:

mtdata-cli forecast_list_methods --json
mtdata-cli forecast_list_methods --library statsforecast --json

The catalog includes unavailable methods by default and marks them with available=false plus the missing requirement. Pass --show-unavailable false for installed methods only. The default page is 20 methods; use --limit 100 when you need the complete catalog. Defaults below match the code; "auto" parameters are estimated from data unless you override them.

Related: Forecasting concepts · Parameter optimization · forecast_generate · Glossary


Method keys at a glance

Baselines/classical : naive, drift, seasonal_naive, theta, fourier_ols
Exp. smoothing/ARIMA: ses, holt, holt_winters_add, holt_winters_mul, ets, arima, sarima
Monte Carlo         : mc_gbm, hmm_mc
Analog / ensemble   : analog, ensemble
Machine learning    : mlforecast, mlf_rf, mlf_lightgbm
Foundation (pretr.) : chronos2, chronos_bolt, timesfm
Neural              : nhits, nbeatsx, tft, patchtst
StatsForecast       : statsforecast + sf_* family (sf_autoarima, sf_autoets, sf_theta, …)
Sktime              : sktime + skt_theta, skt_naive, skt_autoets

The sf_* and skt_* families are convenience aliases that pin a specific model within the StatsForecast / sktime libraries (e.g. sf_ets → AutoETS). Browse them with forecast_list_methods --library statsforecast.


Categories, libraries & dependencies

Category Methods Library Optional dependency
Baseline / classical naive, drift, seasonal_naive, theta, fourier_ols native none (core stack)
Exp. smoothing / ARIMA ses, holt, holt_winters_add, holt_winters_mul, ets, arima, sarima native statsmodels
Monte Carlo mc_gbm, hmm_mc native none (core stack)
Analog analog native none (scipy/numpy/pandas)
Ensemble ensemble native none
Machine learning mlforecast, mlf_rf, mlf_lightgbm mlforecast mlforecast + scikit-learn / lightgbm
Foundation chronos2, chronos_bolt, timesfm pretrained chronos / timesfm (+ torch)
Neural nhits, nbeatsx, tft, patchtst neuralforecast neuralforecast (+ torch)
StatsForecast statsforecast, sf_* statsforecast statsforecast
Sktime sktime, skt_* sktime sktime

native methods ship with the lean core install. Everything else follows the dependency groups in SETUP.md / README. Use forecast_list_library_models --library <name> to enumerate the concrete models within a library-backed method.


Baseline & classical (native)

Fast, dependency-free references and solid intraday baselines.

Method Key params (default) Notes
naive — Last value carried forward
drift — Last value plus average drift
seasonal_naive requires seasonality Repeats the last seasonal cycle
theta — (no user-settable method parameters) Robust, fast general-purpose baseline; fitted alpha is reported in params_used
fourier_ols terms=auto (≈min(3, m/2)), trend=true OLS on Fourier terms; good for periodic series
mtdata-cli forecast_generate EURUSD --timeframe H1 --horizon 12 --method theta
mtdata-cli forecast_generate EURUSD --method fourier_ols --params "terms=4,trend=true"

Exponential smoothing & ARIMA (statsmodels)

Method Key params (default) Notes
ses alpha=auto Simple exponential smoothing
holt damped=false; alpha,beta=auto Linear-trend smoothing
holt_winters_add damped=false; alpha,beta,gamma=auto; requires seasonality Additive seasonality
holt_winters_mul damped=false; alpha,beta,gamma=auto; requires seasonality Multiplicative seasonality
ets trend=add, seasonal=auto, damped=false; smoothing params auto State-space ETS
arima (p,d,q)=(1,1,1), trend=c when omitted Non-seasonal ARIMA
sarima (p,d,q)=(1,1,1); seasonal order defaults to (0,1,1,m) when seasonality > 1 Seasonal ARIMA
mtdata-cli forecast_generate EURUSD --method ets --params "trend=add,damped=true"

Monte Carlo simulation (native)

Simulation methods return distributional forecasts (paths + intervals), which pair naturally with the barrier tools.

Method Key params (default) Notes
mc_gbm n_sims=500, seed=42, mu=auto, sigma=auto, ci_alpha=0.05 Geometric Brownian motion paths
hmm_mc n_states=2, n_sims=500, seed=42, ci_alpha=0.05 Hidden-Markov regime-switched simulation
mtdata-cli forecast_generate EURUSD --method mc_gbm --params "n_sims=2000,seed=7"

Set seed explicitly for reproducible simulation runs.


Analog & ensemble (native)

Method Key params (default) Notes
analog window_size=64, search_depth=5000, top_k=20, metric=euclidean, min_separation=window_size/4, ci_alpha=0.05 Nearest-neighbour analogs from history
ensemble combines multiple methods Blends member forecasts
mtdata-cli forecast_generate EURUSD --method analog --params "window_size=96,top_k=30"

Machine learning (mlforecast)

Gradient-boosted / tree models over lagged features. All MLForecast methods default their lags to 1..min(30, seasonality or 24) when lags is omitted.

Method Key params (default) Notes
mlforecast model (required), lags=auto Generic MLForecast wrapper; pick the underlying model
mlf_rf n_estimators=200, max_depth=None, lags=auto Random-forest regressor
mlf_lightgbm n_estimators=200, learning_rate=0.05, num_leaves=31, max_depth=-1, lags=auto LightGBM regressor
mtdata-cli forecast_generate EURUSD --method mlf_lightgbm --params "n_estimators=400,learning_rate=0.03"

Foundation models (pretrained)

Zero-shot pretrained forecasters. These download model weights on first use and benefit from a GPU (see ENV_VARS.md § Forecasting & GPU). Heavyweight fits are best run through the async training / model store.

Method Key params (default) Notes
chronos2 model_name=amazon/chronos-2 Amazon Chronos-2
chronos_bolt model_name=amazon/chronos-bolt-base Faster Chronos-Bolt
timesfm model defaults Google TimesFM (install via pip install -e .[forecast-timesfm])
mtdata-cli forecast_generate EURUSD --library pretrained --method chronos2 --horizon 24

Neural (neuralforecast)

Deep models via NeuralForecast. Not installed by requirements.txt or any extra today — install manually with pip install neuralforecast torch where the dependency stack resolves. On Windows Python 3.14 this currently fails because ray has no Windows cp314 wheels.

Method Key params (default) Notes
nhits input_size=auto, max_steps=50, batch_size=32 N-HiTS
nbeatsx input_size=auto, max_steps=50, batch_size=32 N-BEATSx
tft input_size=auto, max_steps=50, batch_size=32 Temporal Fusion Transformer
patchtst input_size=auto, max_steps=50, batch_size=32 PatchTST

StatsForecast & sktime families

Method Key params (default) Notes
statsforecast model_name=autoarima, season_length=auto Generic StatsForecast wrapper; pick the model
sf_* fixed model per alias (e.g. sf_autoets, sf_theta, sf_garch) season_length=auto
sktime estimator=ThetaForecaster, estimator_params pass-through Generic sktime wrapper
skt_theta / skt_naive / skt_autoets fixed estimator per alias Seasonality injected as sp when supported
mtdata-cli forecast_generate EURUSD --method sf_autoets --params "season_length=24"
mtdata-cli forecast_list_methods --library statsforecast --limit 100 --json  # full sf_* catalog

See Also