I am trying to forecast the trading volume along with stock price by using Holt-Winters Exponential Smoothing method, a robust forecasting technique when the data exhibits seasonal patterns along with a long-term trend, making it suitable for predicting stock performance or trading volume that is influenced by cyclic factors. I came up with this code:
(* Define the time series data for volume and price *)
volumeData = TimeSeries[{4.04, 5.05, 6.06, 6.85, 7.81, 9.29, 11.70, 14.60, 18.00, 21.40, 26.30, 30.60, 36.70},
{DateObject[{2024, 9}], DateObject[{2024, 10}], DateObject[{2024, 11}], DateObject[{2024, 12}],
DateObject[{2025, 1}], DateObject[{2025, 2}], DateObject[{2025, 3}], DateObject[{2025, 4}],
DateObject[{2025, 5}], DateObject[{2025, 6}], DateObject[{2025, 7}], DateObject[{2025, 8}],
DateObject[{2025, 9}]}];
priceData = TimeSeries[{0.44, 0.80, 1.10, 1.50, 1.80, 2.00, 2.50, 3.20, 3.80, 4.20, 4.50, 4.80, 5.00},
{DateObject[{2024, 9}], DateObject[{2024, 10}], DateObject[{2024, 11}], DateObject[{2024, 12}],
DateObject[{2025, 1}], DateObject[{2025, 2}], DateObject[{2025, 3}], DateObject[{2025, 4}],
DateObject[{2025, 5}], DateObject[{2025, 6}], DateObject[{2025, 7}], DateObject[{2025, 8}],
DateObject[{2025, 9}]}];
(* Apply Holt-Winters exponential smoothing *)
holtWintersVolume = TimeSeriesModelFit[volumeData, {"HoltWinters", {"Additive"}}];
holtWintersPrice = TimeSeriesModelFit[priceData, {"HoltWinters", {"Additive"}}];
(* Generate forecast for the next 12 months *)
volumeForecast = TimeSeriesForecast[holtWintersVolume, 12];
priceForecast = TimeSeriesForecast[holtWintersPrice, 12];
(* Plot both original and smoothed data *)
volumePlot = DateListPlot[{volumeData, volumeForecast}, PlotLegends -> {"Original Volume", "Forecasted Volume"},
PlotLabel -> "Holt-Winters Volume Forecast", ImageSize -> Medium];
pricePlot = DateListPlot[{priceData, priceForecast}, PlotLegends -> {"Original Price", "Forecasted Price"},
PlotLabel -> "Holt-Winters Price Forecast", ImageSize -> Medium];
{volumePlot, pricePlot}
However, Wolfram can't seem to recognize that I am passing the values from TimeSeries to variables volumeData and priceData. if i retain TimeSeries only, it manages to read at least and move one step forward. What seems to be the issue? It always say no Wolfram Language Translation found.