4.9k stars · Apache-2.0 · v2.1.1 (2026-07-16) — GitHub and PyPI agree
Fast classical forecasting models (ARIMA, ETS, Theta, naive) that give a strategy a floor it has to clear.
▶Repo detailsthe review · specs · pros & cons · install
What it is
StatsForecast is a Python library of classical statistical forecasting models, including ARIMA, ETS and Theta. It is written for speed and can fit thousands of series in the time other libraries take for one.
Why it matters
Your goal is one working pattern at about 2% a month. That is a small enough number that noise can look like a result. My records already gave you tools that search: stumpy (Ed. 1 #12) finds repeated shapes, skforecast (Ed. 5 #12) validates forward in time, Optuna (Ed. 7 #12) searches settings. Search tools always find something. What is missing is the line they have to clear. Run a naive forecast and a seasonal naive forecast over the same period, write the numbers down, and treat them as the floor. Any strategy that does not clear the floor gets deleted rather than tuned.
- Extremely fast, so a baseline is cheap to re-run every time you change the data.
- The models are old, well understood and boring. That is what makes them a fair comparison.
- Apache-2.0 licence and steady releases. Version 2.1.1 came out on 16 July 2026.
- These are forecasting models, not a trading system. They predict a number. You still decide the trade, the size and the stop.
- Currency prices do not behave like the sales data these models were designed for. Treat the output as a floor to beat, never as a signal to trade.
- It wants your data in a particular shape, with columns named
unique_id,dsandy. Reshaping your EURUSD table takes a little work the first time.
source venv/bin/activate pip install statsforecast