LSTM model bad forecasts
Your loss function estimates the conditional expectation and the predictions mainly hover around the mean of the time series. I would argue that predictions are good, but the problem is poorly designed. One approach would be to partition the problem into two subproblems: probability of your series being $\mathbb{P}(Y&gt;0)$ and predicting the conditional expectation by training only on non-zero values $\mathbb{E}[Y|Y&gt;0]$. The final prediction would then be $\mathbb{P}(Y&gt;0)\mathbb{E}[Y|Y&gt;0]$