So I’ve tried a few algorithms on my simple data set. Raw data is 1000 daily close prices for BTC on Binance (BTC/USDT trading pair), up until about a week ago. I then processed this to daily returns, and used a one day lag as the only input (feature), and current daily return as the target. Training set was first 700 rows (after dropping NaNs), and test set was the remainder. I used Root Mean Squared Error (RMSE) as a measure of loss.
| Algorithm | RMSE |
| Persistence | 0.03616 |
| Linear Regression | 0.02478 |
| Support Vector Machine | 0.02548 |
| Multi Layer Perceptron | 0.02477 |
Apart from the persistence model these are all pretty close, which may be a reflection of using only a single input feature. I think further experiments will involve a more complex dataset, rather than trying other algorithms on this one. I’ll have to give some thought to what features I could include. Obviously I could include more lags, but there’s also more data such as high/low prices in addition to close, or perhaps returns over different timeframes. Exogenous data could include some measure of sentiment, perhaps the fear and greed index. I’ll have to give it some thought.