Why is TimeSeriesForecast linear?

When I use FinancialData with TimeSeriesForecast, the resulting graph is always linear and thus not very accurate.

data = FinancialData["AAPL", "Close", {{2000, 1, 1}, {2012, 1, 1}, "Week"}, "Value"];
start = DayRound["Jan 1 2000", "BusinessDay", "Next"];
stocks = TimeSeries[data, {start, Automatic, "Week"}];
eproc = TimeSeriesModelFit[stocks];
forecast = TimeSeriesForecast[eproc, {210}];
p1 = DateListPlot[{stocks, forecast}, Filling -> Axis]


p2 = DateListPlot[ FinancialData["AAPL", "Close",  {{2000, 1, 1}, {2015, 12, 1}}],  Filling -> Axis];
Show[{p1, p2}, PlotRange -> All]


I want the forecasting curve to be more similar to the known data.

Any help? Thanks.

• Here is the .nb file. Dec 22, 2015 at 2:33
• It may be that a second order trend is needed. That said, if TSMF could reliably forecast stocks WRI wouldn't release it to the public :p Dec 22, 2015 at 4:46
• Incidentally a second order trend can be achieved in several ways but the following will let it automatically pick the orders of AR and MA components. TimeSeriesModelFit[data,{"ARIMA",2}]. A word of warning though, a second order trend is rarely a good idea in practice Dec 22, 2015 at 4:55
• Using eproc = TimeSeriesModelFit[stocks, {"ARIMA", 2}];, I get TimeSeriesModelFit::tsmfdt: The data stocks cannot be interpreted as real-valued temporal data. Dec 22, 2015 at 5:11
• That's odd. It returns a model for me. I'm using 10.1 on windows 7. Dec 22, 2015 at 5:40

ARIMA family models are Gaussian, and linear.