An ARIMA time series option would be a useful model; [there is some literature here](https://otexts.com/fpp2/arima.html) that goes into detail explaining what it is and how it works. Unfortunately I haven't seen any ARIMA implementations in Go, so this could end up being a big task.