​
Summary
"Sharing an idea and asking a question"​
​​
​Objective?
​Replicate workflow and results of Bao W, Yue J, Rao Y. A deep learning framework for financial time series using stacked autoencoders and long-short term memory. PLoS One. 2017 Jul 14;12(7):e0180944. doi: 10.1371/journal.pone.0180944. PMID: 28708865; PMCID: PMC5510866 in Wolfram cloud using Mathematica - as opposed to Python.
​​
​Focussing on only the S&P500 workflow/backtest
​​
​Workflow in three phases:
​1. Daily S&P500 daily OHLCV data denoised using Haar Discrete Wavelet Transform and de-noised values passed to a selection of technical indicators that in turn generate time series values that are normalised.
​2. Stacked Auto Encoders (SAE) are the main part of the model to learn deep features of the data set from 1
​3. LSTM for one day/step ahead prediction
​​
​Why do this?
​Results published https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5510866/ look promising using daily forecasting on S&P500 data including:
​95% predictive accuracy
​0.011 Mean Absolute Percentage Error (MAPE)
​45% Ave Annual Profitability
​​
​The paper summarises this as follows:
​​
​
Starting with phase 1 load Adjusted OHLCV data for S&P500 from 1 July 2008 to 30 September 2016
In[]:=
data=FinancialData["SP500","AdjustedOHLCV"{{2008,7,01},{2016,9,30}}]
FinancialData
:{2008AdjustedOHLCV,7AdjustedOHLCV,AdjustedOHLCV} is not a known property for FinancialData. Use FinancialData​[Properties] for a list of properties.
FinancialData
:{{2008AdjustedOHLCV,7AdjustedOHLCV,AdjustedOHLCV},{2016AdjustedOHLCV,9AdjustedOHLCV,30AdjustedOHLCV}} is not a valid date range for FinancialData.
Out[]=
FinancialData[SP500,{{2008AdjustedOHLCV,7AdjustedOHLCV,AdjustedOHLCV},{2016AdjustedOHLCV,9AdjustedOHLCV,30AdjustedOHLCV}}]
Denoise OHLC data using Haar Wavelet - problematic given the error above using the syntax specified in the help page?
​